在工作中实际的生产环境一般都是不连接外网的,所以安装MySQL的时候都是离线安装,显然yum的安装就不合适了, 因为yum安装需要连网,所以本文介绍rpm离线的方式安装MySQL
为啥要卸载自带的Mariadb 因为CentOS的默认数据库已经不再是MySQL了,而是MariaDB,如果我们不卸载在安装的过程中将会产生冲突 MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护 开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。 MariaDB的目的是完全兼容MySQL,使之能轻松成为MySQL的代替品。
# 查询自带的Mariadb qa 可以理解为quary all 列出所有的安装包 grep 代表搜索的意思 rpm -qa | grep mariadb
# 卸载自带的Mariadb(vh 显示卸载的进度 --nodeps 只卸载本身,不卸载和本身相关的依赖) rpm -evh --nodeps mariadb-libs-5.5.64-1.el7.x86_64
# 查看Mariadb有没有被卸载干净 rpm -qa | greap mariadb #如下图表示卸载干净
#因为我的centos中之前没有安装过mysql,如果之前安装过mysql可以使用以下的命令去卸载 #查询和mysql有关的安装包 rpm -qa | grep mysql #卸载 rpm -e --nodeps 文件名
https://www.mysql.com/downloads/
我们选择社区版本
我们点击Looking for previous GA version 按钮, 下载官网推荐的5.7稳定的版本
选择我们需要下载的版本
其实我们只需要下载这4个rpm包即可,但是为了方便我们下载RPM Bundle (这个包里面包含了以下的四个包, 我们不需要一一下载的),如果访问官网下载慢,可以访问我的百度云盘直接获取
链接:https://pan.baidu.com/s/1Tr3oPmOKCqUiHU6Riuf6KQ
提取码:zcc2
我们选择打包下载
mkdir -p /usr/soft/mysq
#解压 tar -xvf mysql-5.7.34-1.el7.x86_64.rpm-bundle.tar
查看这个目录中有哪些文件
因为安装包和安装包之间存在依赖关系,所以我们要安装下面的顺序来安装
rpm -ivh mysql-community-common-5.7.34-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.34-1.el7.x86_64.rpm rpm -ivh mysql-community-client-5.7.34-1.el7.x86_64.rpm rpm -ivh mysql-community-server-5.7.34-1.el7.x86_64.rpm rpm -ivh mysql-community-devel-5.7.34-1.el7.x86_64.rpm
以上mysql就安装成功了, 安装成功之后会在我们的本地形成一个mysqld 这个服务
我们首先查看mysql的状态
systemctl status mysqld
开启mysql服务
systemctl start mysqld
MySQL5.7会在安装后默认会有一个root用户,同时也会为root用户生成一个随机密码,而不是像以往版本的空密码
临时密码放在了/var/log/mysqld.log文件中
我们通过下面命令来查询临时密码
grep 'temporary password' /var/log/mysqld.log
若执行命令后,找不到临时密码
先删掉/var/lib/mysql
rm -rf /var/lib/mysql
在重启mysql服务
systemctl restart mysqld
再去获取临时密码即可
mysql -uroot -ph.uwnnjch0:G
进入之后修改密码
#root为你的新密码 set password=password('root');
如上图,会报你的密码不满足安全策略,默认的安全策略密码长度超过8位,包含数字大小写
所以我们要不更改成满足默认策略的密码,要不改mysql的默认配置
我们更改mysql的默认配置
设置密码验证强度
set global validate_password_policy=LOW;
设置密码长度为 4,默认8位
set global validate_password_length=4;
然后我们在重新设置密码
然后我们退出,再以我们设置的新密码重新登录
mysql -uroot -proot
我们可以查看mysql中的库有哪些
show databases
默认安装的mysql服务没有开启远程连接
我们查看mysql库中的user表,发现都是localhost, 只允许本机访问 ,我们只要将localhost改成%%,这样所有的客户机就可以连接了
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
flush privileges;
查看防火墙的状态
开启防火墙mysql 3306端口的外部访问
firewall-cmd --add-port=3306/tcp --permanent firewall-cmd --reload
systemctl enable mysqld.service
虚拟机重新启动,查看mysql的状态