MySQL 8.0 安装

前提

本地环境需要删除老环境的mysql或mariadb,可以用rpm -qa | grep mysqlrpm -qa | grep mariadb查看是否有安装。

如果有安装,用rpm -e mysql-community-server --nodeps等方式删除。

安装

方式一:yum安装

需要先安装官方源

根据系统版本不同官网下载不同yum源:https://dev.mysql.com/downloads/repo/yum/

下载好后yum安装源

1
yum localinstall mysql80-community-release-el7-1.noarch.rpm

如果之前已经有装过低版本的官方源比如mysql57-community,会提示你需要先删除低版本的官方源。

源安装好后,直接运行

1
yum install mysql-community-server -y

此时便已开始下载安装。

但是MySQL官方源的下载速度很慢,我下载时速度差不多15 kB每秒,需要下载近10小时,所以还是推荐下面方式安装。

方式二:RPM包安装

首先从网易源下载MySQL 8.0的RPM包,总共需要下载4个必要安装包:

1
2
3
4
wget https://mirrors.163.com/mysql/Downloads/MySQL-8.0/mysql-community-common-8.0.17-1.el7.x86_64.rpm
wget https://mirrors.163.com/mysql/Downloads/MySQL-8.0/mysql-community-libs-8.0.17-1.el7.x86_64.rpm
wget https://mirrors.163.com/mysql/Downloads/MySQL-8.0/mysql-community-client-8.0.17-1.el7.x86_64.rpm
wget https://mirrors.163.com/mysql/Downloads/MySQL-8.0/mysql-community-server-8.0.17-1.el7.x86_64.rpm

安装时需要按照以下顺序执行:

1
2
3
4
yum install mysql-community-common-8.0.17-1.el7.x86_64.rpm -y
yum install mysql-community-libs-8.0.17-1.el7.x86_64.rpm -y
yum install mysql-community-client-8.0.17-1.el7.x86_64.rpm -y
yum install mysql-community-server-8.0.17-1.el7.x86_64.rpm -y

安装后比如想要添加其它MySQL相关包,可以如方式一添加官方源,再用yum安装,比如mysql-community-devel,可以这么装:

1
yum install mysql-community-devel -y

初始化

安装后需要初始化才能使用。

如果不想要使用MySQL的默认数据目录/var/lib/mysq的话,需要自己新建用于存放MySQL数据的空目录,加入到/etc/my.cnf配置成datadir。

1
2
3
4
5
# /etc/my.cnf
[mysqld]
datadir=/data/db/mysql
socket=/data/db/mysql/mysql.sock
...

运行mysqld --initialize初始化并获取root密码。

1
2
3
...
[Server] A temporary password is generated for root@localhost: 4U;xr3Zsz:Wd
...

执行后会自动生成一个root密码,比如这里密码是4U;xr3Zsz:Wd,用该密码进入MySQL。

1
mysql -uroot -p

进入后需要先改密码,才能执行其它命令。

1
2
# 修改密码
alter user 'root'@'localhost' identified by 'password'

其它

MySQL之前版本的一些配置在MySQL 8时已经不推荐,比如expire_logs_days=7,在8版本可以改成binlog_expire_logs_seconds=604800,保留logbin日志时间从天数细化到秒数。
如果你还在使用老的配置,你可以用systemctl status mysqld -l查看Warning里提示哪些相关配置是不推荐的。

还有分配权限:
以前可以直接使用grant privileges,从5.7开始需要新建用户再分配权限。

1
2
3
create user 'remote'@'%' identified with mysql_native_password by 'password';
grant all privileges on game.* to 'remote'@'%';
flush privileges;

新的默认用户密码加密方式是caching_sha2_password,如果不改成mysql_native_password,无法使用Native远程连接。


- - END - -


腾讯云
0%