CentOS Linux 7.6安装Mysql8.0
要求:
- 操作系统:CentOS 7.6 x86_64
- 数据库版本:mysql 8.0.39
- 字符集:utf8mb4
- 字符序:utf8mb4_general_ci,不区分大小写
环境准备
- 准备一台主机(ip:10.10.10.200 255.255.255.0)
- 安装CentOS Linux 7.6(桌面)
- 下载Mysql8.0并上传Mysql8.0至服务器
官网:https://dev.mysql.com/downloads
安装步骤:
- 配置hosts文件
Plain Textecho "10.10.10.200 linux.test.com" >>/etc/hostscat /etc/hosts vim /etc/hosts10.10.10.200 linux.test.com
卸载主机自带的mysql
Plain Text rpm -qa | grep mysqlrpm -e --nodeps *mysql*rpm -qa | grep mariadbrpm -e --nodeps mariadb*
安装mysql8.0
Plain Text
cd /mysql/
tar -xvf mysql-8.0.39-linux-glibc2.17-x86_64.tar
rm -f mysql-8.0.39-linux-glibc2.17-x86_64.tar
xz -d mysql-8.0.39-linux-glibc2.17-x86_64.tar.xz
tar -xvf mysql-8.0.39-linux-glibc2.17-x86_64.tar
mv mysql-8.0.39-linux-glibc2.17-x86_64 /usr/local/
mv /usr/local/mysql-8.0.39-linux-glibc2.17-x86_64 /usr/local/mysql
mkdir /var/lib/mysql
mkdir -p /usr/local/mysql/log
mkdir /usr/local/mysql/data
设置环境变量
vim ~/.bash_profile: PATH=$PATH:/usr/local/mysql/bin
验证:环境变量
[root@Linux ~]# which mysql
/usr/local/mysql/bin/mysql
创建mysql用户和组,目录授权
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /var/lib/mysql
配置参数文件
vim /etc/my.cnf
[mysql]
default-character-set=utf8mb4
socket=/var/lib/mysql/mysql.sock
[mysqld]
port = 3306
socket=/var/lib/mysql/mysql.sock
basedir=/usr/local/mysql
character-set-server=utf8mb4
default-storage-engine=INNODB
innodb_buffer_pool_size = 200M
max_allowed_packet=16M
explicit_defaults_for_timestamp=1
log-output=FILE
general_log = 0
general_log_file=/usr/local/mysql/log/Linux.test.com.err
slow_query_log = ON
slow_query_log_file=/usr/local/mysql/log/Linux.test.com-query.err
long_query_time=10
log-error=/usr/local/mysql/log/Linux.test.com-error.err
default-authentication-plugin=mysql_native_password
Mysql数据库初始化
usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
cd /usr/local/mysql/log
tail -100f Linux.test.com-error.err
配置CentOS linux启动和停止脚本
vim /usr/lib/systemd/system/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
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 65536
LimitNPROC = 65536
配置systemctl启动和停止方法
systemctl daemon-reload
systemctl stop mysqld
systemctl start mysqld
systemctl enable mysqld
systemctl status mysqld
修改root密码
alter user 'root'@'localhost' identified by 'abc..123';
grant all privileges on . to 'root'@'localhost' with grant option;
flush privileges;
设置允许root用户远程登录
mysql> create user 'root'@'10.10.10.%' identified by 'abc..123';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all privileges on . to 'root'@'10.10.10.%' with grant option;
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
配置hosts文件
echo "10.10.10.200 linux.test.com" >>/etc/hosts
cat /etc/hosts
vim /etc/hosts
10.10.10.200 linux.test.com
远程连接需要关闭防火墙
firewall-cmd --state
systemctl stop firewalld.service
systemctl disable firewalld.service