有来项目的数据库在此之前使用的是 Docker 部署的,具体可见文章 Docker 安装 MySQL8 ,服务器是阿里云 2C2G 的ECS轻量服务器,可能是配置问题有时不论查什么都要等很长很长时间,原因一直未明。网上也有相关资料说不推荐使用 Docker 跑数据库的,主要原因是IO和网络性能问题,可参考 你在 Docker 中跑 MySQL?恭喜你,好下岗了!,但是也有阿里、同程等使用容器部署数据库的案例,各执己见也没有个明确的结果,自己对这方面知之甚少所以不站队,因为没资格。
再申明一下,慢的离谱的原因猜测是自己的配置和服务器的问题,和容器部署关系不大。本篇补充 yum部署 MySQL 是没有找到具体原因换种部署方式,同样写本篇的目的也是为了下一篇文章 Canal 数据同步做准备。
如果已经安装请先卸载
rpm -qa | grep -i mysql
yum remove -y mysql*
删除 MySQL 文件
find / -name mysql
官方下载地址 https://dev.mysql.com/downloads/repo/yum/
根据操作系统选择对应的版本,我这里是 Centos8
选择第一个
点击 Download
进入下载页面复制链接地址: https://repo.mysql.com//mysql80-community-release-el8-1.noarch.rpm
下载源
wget https://repo.mysql.com//mysql80-community-release-el8-1.noarch.rpm
安装源
yum localinstall mysql80-community-release-el8-1.noarch.rpm
禁用 Centos 8 自带的 MySQL 模块
yum module disable mysql
安装 MySQL 服务
yum install mysql-community-server
启动 MySQL
systemctl start mysqld
查看 MySQL 状态
systemctl status mysqld
MySQL 开机自启
systemctl enable mysqld systemctl daemon-reload
获取临时密码
grep 'temporary password' /var/log/mysqld.log
登录 MySQL
mysql -uroot -pqvysykoyf4=R
修改 MySQL 新密码 123456
ALTER USER 'root' @'localhost' IDENTIFIED BY '123456';
密码简单不满足密码策略
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
查看当前密码策略
SHOW VARIABLES LIKE 'validate_password%';
降低密码策略
set global validate_password.length=4; set global validate_password.special_char_count=0; set global validate_password.policy =LOW;
update user set host = '%' where user ='root'; alter user 'root'@'%' identified by '123456' password expire never; alter user 'root'@'%' identified with mysql_native_password by '123456'; flush privileges;
短暂测试的效果查询没有出现像之前的容器部署 MySQL 出现查询非常久的问题。