注意:本文的命令均在root下执行。
一、卸载旧版本
需要先使用yum卸载,在使用命令
rpm -qa | grep mysql
然后把包都卸载干净。
二、安装新版本
1. 到mysql官网找到最新的rpm
找到下载链接:
然后复制链接,在centios终端中执行: (下载链接依找到的版本为准)
wget https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
然后安装下载好的包
rpm -ivh mysql80-community-release-el7-2.noarch.rpm
安装完成后,就可以使用yum安装了
yum install mysql-server
按照提示完成mysql的安装后,执行rpm 命令
rpm -qa | grep mysql
可以看到安装的软件包
如果报错,可以参照以下链接排除错误:
如果正常显示可以进行下一步了。
2.初始化配置
打开/etc/my.cnf文件,在任意位置另起一行,输入
skip-grant-tables
然后保存并退出。这个配置的含义是跳过权限验证,首次登录时不用输入密码。
执行mysql启动命令
service mysqld start
查询mysql是否启动
netstat -apln | grep mysql 或者 ps -ef | grep mysql
如果能够查找到mysql的进程,说明正常启动
然后直接登陆 mysql
mysql -u root -p
下方会有输入密码的提示,这里设置了跳过权限验证,所以直接回车就行。
接下来需要修改root密码,但是由于直接使用update命令修改密码容易造成问题,故先设置root的密码为空。
use mysql;
update user set authentication_string='' where user='root';
然后应该使用alter命令,但是由于现在设置了跳过权限验证,是无法使用alter的,所以要先去除skip-grant-tables
exit退出mysql,然后修改/etc/my.cnf,去除skip-grant-tables,保存后重启mysql服务
service mysqld restart
再次登陆 mysql,和上一次一样,不需要输入密码
然后就可以使用alter命令了
ALTER user 'root'@'localhost' IDENTIFIED BY 'Xhiu123#'
注意,这里的密码需要满足包含大写字母,小写字母,数字,特殊符号。
现在已经修改成功了。
3.外部连接数据数据库
再次进入mysql,这次需要输入刚刚设置的密码了
然后执行命令
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
FLUSH PRIVILEGES;
然后修改host的值,允许外部连接
update user set host = '%' where user ='root';
flush privileges;
现在使用刚才的密码就可以外部连接mysql了。
这里需要再次设置的原因是这样的:
在MySQL 8.04前,执行:SET PASSWORD=PASSWORD('[新密码]');但是MySQL8.0.4开始,这样默认是不行的。因为之前,MySQL的密码认证插件是“mysql_native_password”,而现在使用的是“caching_sha2_password”。
so,我们这里需要再次修改一次root密码。
参考链接:
https://www.jb51.net/article/142025.htm
https://www.cnblogs.com/shuangzikun/p/taotao_linux_mysql_install.html
https://www.cnblogs.com/devan/p/7055339.html
https://blog.youkuaiyun.com/a774630093/article/details/79270080