首先执行命令rpm -qa|grep mariadb
查看是否有mariadb的安装包,没有可以无视
接下来,执行 rpm -e --nodeps mariadb-libs
删除
mkdir /usr/local/mysql
新建一个mysql文件夹
执行
wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
进行下载
执行
rpm -ivh mysql80-community-release-el7-1.noarch.rpm
命令
接下来可以通过
yum repolist all | grep mysql
查看yum源中的mysql安装包
可以看到yum源中默认启用的安装包版本为MySQL8.0,如果需要切换为5.7,需要运行以下命令;
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community
注意:yum-config-manager
默认使用的是python2版本环境,如果用户使用这个命令时报错,可能是因为当前默认python版本为python3版本。需要在/bin/yum-config-manager
文件中修改文件头#!/usr/bin/python -tt
为#!/usr/bin/python2 -tt
如果找不到,可以直接修改mysql的yum源文件,yum配置文件里从5.5版本到8.0都有,只不过默认只开启了mysql8.0。更改别的版本记得将mysql8.0的源 enable=0
vim /etc/yum.repos.d/mysql-community.repo
接下来可以开始进行安装步骤,执行命令
yum install mysql-community-server
进行安装,需要依赖安装时选择y
就ok
执行命令
systemctl start mysqld.service
来启动mysql服务,
systemctl status mysqld.service
可查看mysql服务运行状态
MySQL服务器初始化(从MySQL 5.7开始):在服务器初始启动时,如果服务器的数据目录为空,则会发生以下情况:
服务器已初始化。
在数据目录中生成SSL证书和密钥文件。
该validate_password插件安装并启用。
将'root'@'localhost'
创建一个超级用户帐户。设置超级用户的密码并将其存储在错误日志文件中。要显示它,请使用以下命令:
grep 'temporary password' /var/log/mysqld.log
通过使用生成的临时密码登录并为超级用户帐户设置自定义密码,尽快更改root密码:
mysql -u root -p
输入以上临时密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '您的密码';
注意
MySQL的 validate_password 插件默认安装。这将要求密码包含至少一个大写字母,一个小写字母,一个数字和一个特殊字符,并且密码总长度至少为8个字符。
如果您需要修改简单密码,可以依次执行以下操作步骤:
set global validate_password_policy=0;
set global validate_password_length=1;
set global validate_password_mixed_case_count=2;
-- 然后进行密码更改
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
上面方法踩坑,这样是可以快速修改成简单的,但是navicat连接时会报错
这里建议不要图方便
解决办法:
1、查看 mysql 初始的密码策略,
输入语句
SHOW VARIABLES LIKE 'validate_password%';
进行查看,
2、首先需要设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW 即可,
输入设值语句 “
set global validate_password_policy=LOW;
” 进行设值,
3、当前密码长度为 8 ,如果不介意的话就不用修改了,按照通用的来讲,设置为 6 位的密码,设置 validate_password_length 的全局参数为 6 即可,
输入设值语句 “
set global validate_password_length=6;
” 进行设值,
4、现在可以为 mysql 设置简单密码了,只要满足六位的长度即可,
输入修改语句 “
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
” 可以看到修改成功,表示密码策略修改成功了!!!
use mysql;
grant all on *.* to root@'%' identified by '123456' with grant option;
flush privileges;
首先查看firewall是否已开启:
systemctl status firewalld.service
开放端口(开放后需要更新规则才能生效):
firewall-cmd --zone=public --add-port=3306/tcp --permanent
更新防火墙规则:
firewall-cmd --reload
先掌握下 systemctl+firewall 命令
描述 | 命令 |
查看firewall状态 | systemctl status firewalld.service |
启动firewall | systemctl start firewalld |
停止firewall | systemctl stop firewalld |
开机启动firewall | systemctl enable firewalld |
开机禁止firewall | systemctl disable firewalld |
额外学习下systemctl命令^_^ | |
查看服务是否开机启动 | systemctl is-enabled firewalld.service |
查看已启动的服务列表 | systemctl list-unit-files|grep enabled |
查看启动失败的服务列表 | systemctl --failed |
其次掌握 firewall-cmd 命令
描述 | 命令 |
查看firewall全部信息 | firewall-cmd --list-all |
查看已开放的端口 | firewall-cmd --list-ports |
更新防火墙规则 | firewall-cmd --reload |
开放端口 | firewall-cmd --zone=public --add-port=3000/tcp --permanent |
关闭端口 | firewall-cmd --zone=public --remove-port=3000/tcp --permanent |
完成
填坑:
我第一次写这个的时候是完美解决1045-Access denied for user 'root'@'localhost'的,第二次竟然不行了,后面发现改完之后重启了mysql服务,可以了。。。
再填坑,上面修改的方法正常情况是没问题的,就怕服务挂掉,还是修改配置文件靠谱:
想要关闭mysql默认策略,则在配置文件(/etc/my.cnf)中加入以下并重启mysqld即可:
[mysqld]
validate_password=off
或者
UNINSTALL PLUGIN validate_password;
即可