Linux(8.3)下安装mysql8.0
- 下载mysql包的详细图解(此处不需要下载,了解就好):https://www.jb51.net/article/204591.htm
- 检查原有服务器是否安装mysql并将其删除
删除 MySQL
yum remove mysql mysql-server mysql-libs mysql-server;
find / -name mysql 将找到的相关东西delete掉(rm -rf /var/lib/mysql)
rpm -qa|grep mysql(查询出来的东东yum remove掉)
rm /etc/my.cnf
查看是否还有mysql软件:
rpm -qa|grep mysql
如果存在的话,继续删除即可。
[root@localhost opt]# rpm -qa | grep -i mysql
MySQL-server-5.6.17-1.el6.i686
MySQL-client-5.6.17-1.el6.i686
卸载mysql
[root@localhost local]# rpm -e MySQL-server-5.6.17-1.el6.i686
[root@localhost local]# rpm -e MySQL-client-5.6.17-1.el6.i686
删除mysql服务
[root@localhost local]# chkconfig --list | grep -i mysql
[root@localhost local]# chkconfig --del mysql
删除分散mysql文件夹
[root@localhost local]# whereis mysql 或者 find / -name mysql
mysql: /usr/lib/mysql /usr/share/mysql
清空相关mysql的所有目录以及文件
rm -rf /usr/lib/mysql
rm -rf /usr/share/mysql
rm -rf /usr/my.cnf
通过以上几步,mysql应该已经完全卸载干净了.
安装mysql
1.卸载完成后,使用以下命令:
wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
dnf -y install mysql80-community-release-el8-1.noarch.rpm
2.检查数据源:
yum repolist enabled | grep "mysql.*-community.*"
3.禁用自带模块:
dnf module disable mysql -y
4.安装mysql服务:
yum -y install mysql-community-server
#解决下面这个问题
sudo dnf install --nogpgcheck mysql-community-server
5.启动mysql:
systemctl start mysqld
6.检测mysql是否启动:
ps -elf | grep mysqld
systemctl status mysqld
7.查看mysql的密码:
grep 'temporary password' /var/log/mysqld.log
8.登录mysql:
mysql -uroot -pG%=e7pgNOncf
9.修改mysql的密码(更改原有密码的策略):
ALTER USER 'root'@'localhost' IDENTIFIED BY '123.com'; //因为我们随便修改密码时,一般都不满足它的策略
会报以下错误:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
解决办法:
一定要先修改默认密码为: Root_21root 满足它的策略,再进行下面的操作:
SHOW VARIABLES LIKE 'validate_password%'; //查看密码策略
修改密码长度:
set global validate_password.length=1; //(长度)
修改密码等级:
set global validate_password.policy=0; //(等级)
设置成自己想要的密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
命令行修改密码:
mysqladmin -uroot -p123456 password 123.com
10.开放远程,不然是不被允许登录数据库的:
如果不开放的话,他是被拒绝不让连接的
解决办法,授权,允许任何网段的来访问,如果想限制得话,把%号换成指定的网段或者指定的ip地址
create user 'root'@'%' identified by '123.com'; //1、先创建权限记录
grant all privileges on *.* to 'root'@'%' with grant option; //2、授权
第二种报错
use mysql;
# 查看当前用户的连接规则
select host,user,plugin,authentication_string from mysql.user;
解决办法
1.修改mysql的加密规则
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root@123.com';
2 或者:升级连接mysql客户端的可视化工具,提高版本。
11.如果是用工具连接得话,在安全组放行3306端口,还是不行的话,就添加一个防火墙规则
firewall-cmd --zone=public --add-port=3306/tcp --permanent
一般来讲是没啥问题的,上面这些步骤做完以后
12.其它连接问题,参考别人的
解决办法:
从错误信息可知caching_sha2_password不能加载。
以上报错是由于目前已有的客户端连接软件还不支持Mysql8新增加的加密方式caching_sha2_password,所以我们需要修改用户的加密方式,将其改为老的加密验证方式。可以看到当前用户的加密方式为caching_sha2_password。执行以下命令:
use mysql;
select user,plugin from user where user='root';
alter user 'root'@'%' identified with mysql_native_password by '123.com';//将用户的加密方式改为mysql_native_password。
flush privileges;//这个一定要执行,执行命令使权限配置项立即生效。
-----附加
mysql-7.8安装mysql8.0
https://www.jb51.net/article/186499.htm