用Yum在Linux安装MySQL8
前言
我们通过Yum几乎全自动的快速安装MySQL服务,这里演示的是8.0版本,给出了具体步骤、脚本、图例,和相关资料来源,以及解决远程连接相关问题。
准备工作
更换国内yum源提速
参考CentOS更换YUM源更换yum源,国内下载速度更快。
找MySQL官方yum仓库地址
这一步只是告诉大家后面安装脚本中MySQL Yum 仓库来源,可以跳过。
打开页面MySQL - yum 下载源找到跟当前系统版本匹配的yum源,点击【Download】。
鼠标右击【No thanks, just start my download】来复制链接地址,安装的时候要使用。
安装、启停MySQL
echo "安装MySQL Yum Repository仓库" > /dev/null
yum -y localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
echo "安装MySQL,这一步需要时间较长" > /dev/null
yum -y install mysql-community-server
# 启动
systemctl start mysqld
# 重启
systemctl restart mysqld
# 停止
systemctl stop mysqld
卸载MySQL
yum -y remove mysql-community-server
相关文件路径
配置文件在/etc/my.cnf
目录下,查看内容(cat /etc/my.cnf
)可以看到数据目录(/var/lib/mysql)、错误日志(log-error)等路径。
登陆并修改root密码
要得先启动服务。
echo "通过日志查看初始密码" > /dev/null
cat /var/log/mysqld.log | grep password
echo "登陆MySQL,输入密码后回车" > /dev/null
mysql -u root -p
修改root密码。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Pwd666666.';
如果提示下图中的错误,是因为密码强度不够,需要包含大小写英文、数字和符号。
远程连接问题
连接不允许
如果连接报下图中的错误,是因为root用户默认只能通过本机(localhost)来访问。
1130 - Host '192.168.0.1' is not allowed to connect to this MySQL server
通过mysql库中user表可以看到个每个用户允许的host。
# 指定使用mysql库
use mysql
# 查询user表信息
select Host, User from user;
我们可以对root用户添加一条允许其他或者所有(%)主机的配置,只要保证主键(主键字段是user+host)不重复,可以用一个用户配置多条。
# 创建允许所有主机使用root访问的记录,并指定密码
CREATE USER 'root'@'%' IDENTIFIED BY 'Pwd666666.';
# 赋予这个配置特权
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
可以看到user新增的配置。这时候任何主机都可以可以使用root远程连接了。
鉴权插件无法加载
有的同学远程连接会报这个错:
authentication plugin 'caching_sha2_password' cannot be loaded;
是因为MySQL 8默认使用的鉴权插件为caching_sha2_password插件,而有的客户端环境不支持。执行下面的语句可以通过plugin栏看到各用户配置的插件。
select Host,User,plugin from user;
我们将插件改成客户端支持的mysql_native_password就行了。
# 指定User为root,Host为%的记录使用的插件为mysql_native_password,并指定密码为Pwd666666.
alter user 'root'@'%' identified with mysql_native_password by 'Pwd666666.';
参考链接
MySQL - Installing MySQL on Linux Using the MySQL Yum Repository