一、下载 MySQL for Linux 通用二进制包
1.1 登录Oracle 软件交给云。
如果您没有帐户,请创立一个帐户。这儿我就直接登录,开始下载过程。
1.2 预备下载
登录后自动跳转到以下页面。
到这儿,MySQL的下载器即下载完结,找到下载的文件目录,有个以下图标的文件。
咱们打开该下载器,即可下载MySQL的二进制装置包。
下载之后的文件,便是咱们上面选择的 V1020516-01.zip
文件,咱们需求解压文件。将解压后文件中的mysql-commercial-8.0.29-linux-glibc2.12-x86_64.tar.xz
上传到Linux上进行装置。
二、装置 MySQL
2.1 装置前提
2.1.1 以root用户登录CentOS7
2.1.2 装置依赖库
$ yum install libaio
$ yum install ncurses-compat-libs
2.2 创立 mysql 用户和组
# 增加 mysql 组
$ groupadd -g 27 -o -r mysql
# 增加 mysql 用户
$ useradd -M -N -g mysql -o -r -d datadir -s /bin/false -c "MySQL Server" -u 27 mysql
2.3 解包分发
阐明:咱们将上面的装置包 mysql-commercial-8.0.29-linux-glibc2.12-x86_64.tar.xz
文件上传到 /usr/local
目录下面。
$ cd /usr/local
$ tar xvf mysql-commercial-8.0.29-linux-glibc2.12-x86_64.tar.xz
# 为了后面操作便利,咱们创立一个软链接
$ ln -s mysql-commercial-8.0.29-linux-glibc2.12-x86_64 mysql
# 设置PATH
$ export PATH=/usr/local/mysql/bin:$PATH
至此,MySQL 即装置完结。
三、装置后的设置
3.1 为导入和导出操作创立安全目录
$ cd /usr/local/mysql
$ mkdir mysql-files
$ chown mysql:mysql mysql-files
$ chmod 750 mysql-files
3.2 装备服务器发动选项
$ cd /etc
$ touch my.cnf
$ chown root:root my.cnf
$ chmod 644 my.cnf
# 修改 my.cnf 文件并输入以下内容
$ vim my.cnf
# 输入内容
[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
port=3306
# 这儿留意一下:后面MySQL发动后的初始暗码即在该文件中 是 A temporary passwords...最后随机那一串
log-error=/usr/local/mysql/data/localhost.localdomain.err
user=mysql
secure_file_priv=/usr/local/mysql/mysql-files
local_infile=OFF
3.3 初始化数据目录
$ cd /usr/local/mysql
$ mkdir data
$ chmod 750 data
$ chown mysql:mysql data
$ cd /usr/local/mysql
$ bin/mysqld --defaults-file=/etc/my.cnf --initialize
3.4 运用 systemd 发动服务器
1、首要创立 mysql 服务
$ cd /usr/lib/systemd/system
$ touch mysqld.service
$ chmod 644 mysqld.service
2、修改 mysqld.service
文件,输入以下内容。
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
# Have mysqld write its state to the systemd notify socket
Type=notify
# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0
# Start main service
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf $MYSQLD_OPTS
# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql
# Sets open_files_limit
LimitNOFILE = 10000
Restart=on-failure
RestartPreventExitStatus=1
# Set environment variable MYSQLD_PARENT_PID. This is required for restart.
Environment=MYSQLD_PARENT_PID=1
PrivateTmp=false
敞开一些必要的系统设置。
# 敞开开机自动发动服务
$ systemctl enable mysqld.service
Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service
to /usr/lib/systemd/system/mysqld.service.
# 发动mysql服务
$ systemctl start mysqld
# 检查 mysql 状态
$ systemctl status mysqld
3.5 重置 MySQL root 帐户暗码
上面随机生成的暗码明显是不合适的。
$ cd /usr/local/mysql
$ bin/mysql -u root -p
# 这儿输入生成的随机暗码,在上面 my.cnf 中设置的log-error=.../localhost.localdomain.err文件中检查
Enter password: (enter the random root password here)
这儿,即进入了mysql操作指令
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '这儿是咱们自定义的暗码';
到这儿,MySQL即完全装置完结。不过此刻,咱们只能在本地拜访数据库,若需求远程拜访数据库,还需求设置一切客户端都可以拜访。
3.6 MySQL err:1130
mysql> use mysql;
# 让一切的主机,运用root用户都可以衔接数据库
mysql> update user set host = ‘%' where user =’root’;
mysql> flush privileges;
\