CentOS 7 安装 mysql5.7(rpm)
1.事前准备
关于虚拟机的下载和安装,可以参考我之前的博客↓
VMware下载,安装及创建虚拟机
VMware安装Centos7 究极逐步详细图文流程
还有就是mysql5.7的rpm包下载:
下载地址:
MySQL Product Archives
下载链接:
mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar
关于rpm就不做多介绍了,就是RedHat Package Manager(RedHat软件包管理工具)
2.开始安装
- 卸载系统自带mysql(可选项)
这里我使用的centos系统是没有自带Mysql的,使用命令查看:
rpm -qa | grep mysql
这一步我是跳过了,但是如果你下的系统中自带有mysql,而你又不想使用此版本,可以使用如下命令卸载:
rpm -e --nodeps mysql.xxx # 后边卸载的内容是上方grep命令的输出结果
- 文件上传
创建一个目录:/usr/local/mysql5.7 ,将文件上传,上传的方式有很多,这里简单附上一个:
【Linux】1.Xshell如何连接虚拟机实现文件上传
上传完毕:
- 解压文件
使用命令:
tar -xvf mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar
解压完毕:
文件是有很多,但是我们使用到的只有上述红框中的四个文件,你也可以单独讲这四个文件下载下来,只要版本没有问题也是OK的。
- 依次安装
按照依赖关系依次安装rpm包 依赖关系依次为common→libs→client→server
rpm -ivh mysql-community-common-5.7.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.30-1.el7.x86_64.rpm
注:ivh中, i-install安装;v-verbose进度条;h-hash哈希校验
第一个文件common的安装没有问题,在libs的安装时发生了依赖错误的问题:
解决方案就是将依赖全部清空,命令如下(我使用的是第二种情况的命令,可以从上图最后一行看出):
rpm -qa | grep mysql
yum remove mysql-libs
注意:
有的系统可能不太一样,没有mysql-libs,而是mariadb-libs,此时要移除的则是mariadb-libs
rpm -qa | grep mariadb
yum remove mariadb-libs
再次安装libs,还是有问题:
但我们仔细一看,其实这个文件是我们刚才刚刚安装的common包,应该是没有问题的,这是怎么回事呢,我们需要重新再执行一次common的安装,再进行libs的安装。。。
最后完成server和client的安装:
发现client的安装没有问题,而server的安装再次发生了错误依赖的情况:
从最后一句话可以看出需要net-tools工具
我们下载安装net-tools工具,使用命令如下:
yum -y install net-tools
这里还是不够的,因为还有错误是关于libaio的,所以我们这里还是需要下载安装或更新一下libaio组件
命令如下:
yum -y install libaio
当上述两个文件安装完毕后再次执行server的安装,就没问题了:
这个还挺曲折的hhh
这里总算是安装先告一段落了。
3.修改密码和连接测试
- 关于启动和停止的命令
这里5.7版本的服务名确实是mysqld,而不是mysql
systemctl start mysqld.service # 启动mysql
systemctl status mysqld.service # 查看mysql状态
systemctl stop mysqld.service # 关闭mysql
这里启动是没有问题的:
- 登录mysql
MySQL5.7.4之前的版本中默认是没有密码的,登录后直接回车就可以进入数据库,后来因为安全性问题改变了这种方式,是会生成一个临时密码的,我们需要找到此密码然后登录修改,
该密码在log文件中,我们使用命令可以快速将其打印出:
grep 'temporary password' /var/log/mysqld.log
然后复制粘贴登录mysql:
mysql -u root -p
- 修改root用户密码
在5.6后,mysql内置密码增强机制,低强度密码会报错:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
这里之前参照的博客有非常完整的解答,这里附上链接,不在赘述:
安装MySQL报错 : Your password does not satisfy the current policy requirements
最后我们成功将密码设置为123456:
暂时退出mysql
- 赋予远程访问权限
首先关闭防火墙,附上一系列命令:
systemctl status firewalld #查看firewall防火墙状态
firewall-cmd --list-ports #查看firewall防火墙开放端口
systemctl start firewalld.service #打开firewall防火墙
systemctl stop firewalld.service #关闭firewall防火墙
firewall -cmd --reload #重启firewal防火墙
systemctl disable firewalld.service #禁止firewall开机启动
关闭结果确认:
然后使用新密码登录mysql,然后授予远程访问权限,并及时刷新权限:
grant all privileges on *.* to 'root' @'%' identified by '123456';
flush privileges;
- 远程连接测试
连接成功!
4.自启动设置
附上链接:
【开机自启】Linux下设置MySql自动启动