这得追溯到刚过完年那会儿,现在想想都心酸。

环境:

CentOS7.3

千万别装最新版的MySQL8!

我亲测,去了官网下了最新版的安装文件,很开心的装结果装到一半,依赖版本不够,装新依赖版本,然后牵扯出其他依赖版本不够。崩溃🤢🤢🤢

目前比较稳妥的版本应该是8.0.13

删掉自带的数据库

在安装MySQL之前先要把CentOS自带的mariadb,如果不卸载的话,在下面的安装中会报错。

查看mariadb版本
rpm -qa | grep mariadb

卸载mariadb
rpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodeps

去官网找Archives

下载网址:https://dev.mysql.com/downloads/mysql/

下载历史版本网址:https://downloads.mysql.com/archives/community/

选择红帽,然后 version就是8.0.13,你要够大胆可以尝试稍微新一点的版本,但是我装8.0.19就失败了。

下下来名字大概是mysql-8.0.13-1.el7.x86_64.rpm-bundle.tar字样,那说明咱俩下到了同一个版本👍

安装

解压

tar -xvf mysql-8.0.13-1.el7.x86_64.rpm-bundle.tar

解压以后差不多是这么几个文件

1
2
3
4
5
6
7
8
mysql-community-client-8.0.17-1.el7.x86_64.rpm 
mysql-community-common-8.0.17-1.el7.x86_64.rpm
mysql-community-devel-8.0.17-1.el7.x86_64.rpm
mysql-community-embedded-compat-8.0.17-1.el7.x86_64.rpm
mysql-community-libs-8.0.17-1.el7.x86_64.rpm
mysql-community-libs-compat-8.0.17-1.el7.x86_64.rpm
mysql-community-server-8.0.17-1.el7.x86_64.rpm
mysql-community-test-8.0.17-1.el7.x86_64.rpm
必须安装(注意安装顺序‼)

我只装了必须安装

1
2
3
4
rpm -ivh mysql-community-common-8.0.13-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.13-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.13-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.13-1.el7.x86_64.rpm
非必须安装(注意安装顺序‼)
1
2
3
4
rpm -ivh mysql-community-libs-compat-8.0.13-1.el7.x86_64.rpm
rpm -ivh mysql-community-embedded-compat-8.0.13-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.13-1.el7.x86_64.rpm
rpm -ivh mysql-community-test-8.0.13-1.el7.x86_64.rpm

安装过程中可能出现很多错误,但基本上逃不过就是依赖问题,诸如:

1
2
error:
Failed dependencies:

然后缺什么装什么就好 yum install.

初始化

装好之后就是初始化了,跟再Windows平台类似。

初始化数据库
1
mysqld --initialize --console
目录授权,这一步不能放过嗷

chown -R mysql:mysql /var/lib/mysql/

启动MySQL服务

systemctl start mysqld

停止MySQL服务

service mysqld stop

查看初始密码

cat /var/log/mysqld.log

登录

mysql -u root -p,输入初始密码

更改初始密码

alter USER 'root'@'localhost' IDENTIFIED BY '新密码(必须包含:数字大小写字母特殊字符,长度最小为8位)';

MySQL8授权

对于8的MySQL,新建用户并授权写在一句会报错。所以

1
2
3
mysql> CREATE USER 'username'@'%' IDENTIFIED BY 'yourpassword';          //创建账户
mysql> GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION; //赋予权限
mysql> flush privileges; //刷新权限
配置navicat

配置如下:(username和password写成刚授权的用户的)

连接测试,如果正常配置,没有手残敲错是会成功的。👍

小结

MySQL装了我两天左右,主要还是版本问题,以及依赖关系,以及centOS不推荐用MySQL等等等等。。那一阵心态都崩了,现在想想还好。人家TX云都给的centOS7.6的,为啥阿里还活在7.3?!?!?