网上Mysql部署相关的博客虽然很多,但要么是系统有差异,要么MySQL版本不同,要么有些博客本身就有错误,导致每次部署都难免要浪费一些时间。所以想着记录下部署步骤与遇到的问题,提升工作效率。
部署环境:Linux版本是CentOS 7.7,Mysql版本是5.7.32,使用rpm方式部署
下载
通过RPM方式安装,需要先下载.rpm安装包。
进入Mysql官网下载页面。左边是最新版本,右边是历史版本,选择历史版本
找到对应的版本,我这里选的是mysql 5.7.32,Linux 7,x86,64位
下载四个.rpm文件,分别是:server
, client
, common
, libs
安装
清理mariadb
centos7会自带一个mariadb,需要先清理掉
检查
1 | rpm -qa|grep mariadb |
如果有则需要清理,参数-e
表示卸载(erase)
1 | rpm -e mariadb-libs-5.5.65-1.el7.x86_64 |
如果存在依赖关系,导致清理失败,需要加上--nodeps
,表示忽略依赖关系
1 | rpm -e --nodeps mariadb-libs-5.5.65-1.el7.x86_64 |
上传rpm包
先上传.rpm文件到服务器 /opt/mysql/
目录
安装
依次安装四个文件,四步顺序不可乱,有依赖关系
所有操作都是rpm –ivh
+ .rpm包。其中
-i:安装;-v:查看更详细的安装信息;-h:显示安装进度
1 | rpm -ivh mysql-community-common-5.7.32-1.el7.x86_64.rpm |
出现以下信息表示已安装成功
检查
最后检查下
1 | rpm -qa | grep mysql |
四个.rpm包都已安装完毕
启动
启动Mysql
1 | service mysqld start |
问题1:启动失败
按步骤安装好后,启动失败,让执行 journalctl -xe
执行后,显示缺少libaio.so.1
库
原因是部分centos版本缺少libaio.so.1文件。我在CentOS 7.9
版本启动可以,CentOS 7.7
版本不行。
检查是否存在
1 | whereis libaio.so.1 |
没有则手动安装
1 | yum install -y libaio |
执行rpm -ev
卸载依赖,删除mysql目录,重新安装一遍
配置
获取临时密码
Mysql服务起来后执行
1 | grep 'temporary password' /var/log/mysqld.log |
会出现
A temporary password is generated for root@localhost: %6HRN:)k<.Y2
其中 %6HRN:)k<.Y2
即为root用户临时密码
此时登录后不可操作,否则会报
1 | mysql> show databases; |
提示必须要先重置密码
修改密码
修改密码
1 | alter user 'root'@'localhost' identified by 'xxxxxxxx'; |
如果失败了,试试这个(v5.6.51)
1 | mysqladmin -uroot -p12345 password xxxxxxxx; |
授权root远程访问
允许navicat等工具远程连接
1 | grant all privileges on *.* to 'root'@'%' identified by '1qazXSW@'; |
刷新更改
1 | flush privileges; |