首先,先到mysql的官方网址找到mysql8的yum下载地址
官网:https://dev.mysql.com/downloads/repo/yum/

这里,我选择的是社区版本

下载mysql
wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
sudo rpm -ivh mysql80-community-release-el7-1.noarch.rpm

安装mysql
yum install mysql mysql-server
启动mysql
sudo systemctl start mysqld
检查mysql状态
sudo systemctl status mysqld

有红框的时间就是状态正常
查看临时密码
sudo grep ‘temporary password’ /var/log/mysqld.log

配置mysql
sudo mysql_secure_installation

密码就设置为(设置了半天)
MyNewPass4!
然后后面是一系列的初始化设置,默认就好了
查询mysql版本号
mysqladmin -u root -p version

开放其他地址连接
mysql -u root -p
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>grant all privileges on *.* to root@'%' identified by "MyNewPass4!";
mysql>flush privileges;

开放端口-防火墙
firewall-cmd --get-active-zones
添加端口到防火墙中
firewall-cmd --zone=public --add-port=3306/tcp --permanent
防火墙重新读取端口列表
firewall-cmd --reload
随后测试连接会出现以下错误

经查,是mysql8.0启用caching_sha2_password作为首选的身份验证插件
解决方法一:
登陆mysql
mysql -uroot -pMyNewPass4!
查询登陆方式
use mysql;
select host, user, plugin from user;

发现新版MySQL都是默认用caching_sha2_password这个plugin来加密密码了
执行修改验密方式
ALTER USER ‘root’@’%’ IDENTIFIED WITH mysql_native_password BY ‘MyNewPass4!’;
flush privileges;

这时登陆验密方式改变了,再测试链接就可以成功了

ps:MYSQL8.0版本sql_mode=only_full_group_by问题
先用select @@sql_mode;查询,复制这个值,在my.cnf中添加配置项(把查询到的值删掉only_full_group_by这个选项,其他的都复制过去):
vi /etc/my.cnf
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
重启mysql服务
重启服务:systemctl restart mysqld.service
停止服务:systemctl stop mysqld.service
启动服务:systemctl start mysqld.service
查看服务:systemctl status mysqld.service

本文详细介绍了如何在Linux环境下从MySQL官方网站下载并安装MySQL 8.0,包括通过YUM源安装、启动与检查服务状态、配置安全设置、更改密码策略、开放远程连接、调整防火墙设置及解决常见连接问题。
816

被折叠的 条评论
为什么被折叠?



