mysql官网:https://dev.mysql.com/downloads/
whereis mysql
systemctl stop mysqld
rpm -qa|grep mysql
yum remove mysql mysql-server mysql-libs mysql-server
rpm -qa|grep mysql
rpm -ev mysql-community-release-el7-5.noarch
rpm -ev mysql-community-common-5.6.51-2.el7.x86_64
# 除了django目录里面带的mysql不要删,其他的都删除(移除第7步查询残留文件)
rm -rf mysql*
find / -name mysql
rm -rf /run/lock/subsys/mysql /etc/selinux/targeted/active/modules/100/mysql /usr/lib64/mysql /data/mysql /data/mysql/mysql
rpm -qa|grep mysql
find / -name mysql
下载 MySQL yum包
cd ~
yum install wget
wget http://repo.mysql.com/mysql80-community-release-el7-7.noarch.rpm
安装MySQL源
rpm -Uvh mysql80-community-release-el7-7.noarch.rpm
安装mysql服务端
yum -y install mysql-community-server --nogpgcheck
启动mysql、查看是否启动,加入开机启动
systemctl start mysqld.service
systemctl status mysqld.service
systemctl enable mysqld.service
获取临时密码,mysql8.0为root用户随机生成了一个密码,首次安装查询只有一条记录
grep 'temporary password' /var/log/mysqld.log
通过临时密码登录mysql,进行修改密码操作
mysql -u root -p
全局修改一下mysql的密码规则,mysql8.0 执行如下代码会报错:mysql5.7 进行如下设置,即可解决问题
set global validate_password_policy=0;
set global validate_password_length=1;
# 执行上面两条语句返回如下
ERROR 1193 (HY000): Unknown system variable 'validate_password_policy'
ERROR 1193 (HY000): Unknown system variable 'validate_password_length'
查看数据表密码
SHOW VARIABLES LIKE 'validate_password%';
# 分析:可以看到,修改 policy 和 length 的值,在MySQL5.7中好使,在MySQL8.0中无效。‘validate_password_policy’ 变量不存在。
解决:先修改一个满足规则的密码(如:Root_root123)
alter user 'root'@'localhost' identified by 'Root_root123';
# 默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符
查看数据表密码
SHOW VARIABLES LIKE 'validate_password%';
# 可以看到length和policy为8和MEDIUM,从上面的命名可以看到MySQL 8.0 调整了密码的验证规则,再次执行和查看,
# 就可以修改密码长度和安全等级了
执行–查看
set global validate_password.policy=0;
set global validate_password_length=1;
SHOW VARIABLES LIKE 'validate_password%';
授权Navicat客户端远程登录并修改mysql密码为123456
usr mysql;
select host, user, authentication_string, plugin from user;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
update user set host='%' where user='root'; # 执行2次
update user set host='%' where user='root';
刷新授权
flush privileges;
再次查看
select host, user, authentication_string, plugin from user;
如果navicat连接不上可以先查看防火墙配置—需要先把3306端口加入防火墙或者关闭防火墙
第一种方法直接全部关闭
查看防火墙状态
systemctl status firewalld 或 firewall-cmd --state
关闭防火墙
systemctl stop firewalld
第二种方法(推荐) 添加某一端口加入防火墙规则里面
sudo firewall-cmd --add-port=3306tcp --permanent --加上--permanent永久生效,没有此参数重启后失效
重新加载防火墙(刷新防火墙的配置)
firewall-cmd --reload