centos7 安装mysql8 亲测有效
1、清理历史安装的mysql【初次安装可以跳过】
查看mysql安装了哪些东西 rpm -qa |grep -i mysql 开始卸载 yum remove [上述命令查看到的包] 查看是否卸载完成 rpm -qa |grep -i mysql 查找mysql相关目录 find / -name mysql 删除相关目录 rm -rf [上述命令查看到的目录] 删除/etc/my.cnf rm -rf /etc/my.cnf 删除/var/log/mysqld.log(如果不删除这个文件,会导致新安装的mysql无法生存新密码,导致无法登陆) rm -rf /var/log/mysqld.log
2、安装
1)在 root 目录下,安装 mysql 和 mysql-devel yum install mysql yum install mysql-devel 2)安装 mysql-server wget http://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm rpm -ivh mysql80-community-release-el7-5.noarch.rpm yum install mysql-community-server 3)安装成功后重启mysql服务 service mysqld restart
4)进入 /etc/my.cnf 配置编码规则(无需配置的话,可跳过本步骤)
注: 这里的字符编码必须和 /usr/share/mysql/charsets/Index.xml 中一致 [mysql] default-character-set =utf8 配置远程连接授权设置(配置后即可用navicat建立连接),至此完成安装!
注:
# 如果要授权的用户是新用户,而不是root账户,则要先新建用户;
如果要授权的是root用户,则跳过此命令 CREATE USER '这里填你要新建的账户'@localhost IDENTIFIED BY '这里填要新建账户的密码';
# 授权,以root账户为例
GRANT ALL PRIVILEGES ON *.* TO 'root'@localhost WITH GRANT OPTION; FLUSH PRIVILEGES;
使用 navicat 连接时报错
报错:1045 - Access denied for user ‘root’@‘xxx’(using password: YES),解决方式见上述步骤6
报错:1130 - Host ‘xxx’ is not allowed to connect to this MySQL server,解决方式见下第4点_过程遇到的问题
3、改密码
设置密码 # 登录mysql并输入密码【mysql8初次安装后,需要先通过cat /var/log/mysqld.log | grep password 命令查看密码】——我安装的时候,这个文件是空的,所以我用了另一种方法【使用问题一中,跳过验证登陆mysql,然后修改root密码,无法修改密码的问题也在问题2、3中解决】
mysql -u root -p
# mysql8 修改密码方式
alter user 'root'@'localhost' identified by '这里填你要的密码';
修改密码后,退出mysql,注释掉 /etc/my.cnf 中的 “skip-grant-tables” ,然后重启mysql服务
问题:
1、无法登陆mysql【不知道密码】
1)在 /etc/my.cnf 中,在【mysqld】 下面添加
skip-grant-tables
2)无法修改密码

5.6 版本:
① update mysql.user set password=password('123456') where User="root"
and Host = "localhost";
② set password for root@localhost = password('123456');
5.7 以上版本,password 字段被设置为了authentication_string,因此更新命令为:
update mysql.user set authentication_string=password('123456')
where User="root" and Host="localhost";
8.0 以上的版本,以上的命令都不支持,有以下两个命令可用(MySQL的安装与配置——详细教程(转载)里面修改密码用的就是这个最新的命令):
① alter user 'root'@'localhost' identified by '123456';
② set password for root@localhost = '123456';
2、无法修改密码

这是由于没刷新权限造成的,解决方法:登陆mysql后,输入:
flush privileges;
3、密码修改报错

该问题是由于密码强度不够造成的,使用字母大写+小写+数字+符号等,尽量复杂
参考:
https://blog.csdn.net/weixin_45242865/article/details/118227786
https://blog.csdn.net/qq_43305175/article/details/126841890
https://blog.csdn.net/qq_43305175/article/details/126841890