最近要在centos8.0下面安装一个mysql作为测试环境数据库,遇到一些坑,记录一下正确打开方式
1、官网下载mysql集成安装包,并解压
mysql-8.0.23-1.el8.x86_64.rpm-bundle.tar
2、检查是否安装过mariadb,有的话移除
rpm -qa | grep -i mariadb
rpm -e --nodeps ……
3、依次安装客户端common,libs,client,server
- rpm -ivh mysql-community-common-8.0.23-1.el8.x86_64.rpm
- rpm -ivh mysql-community-libs-8.0.23-1.el8.x86_64.rpm
- rpm -ivh mysql-community-client-8.0.23-1.el8.x86_64.rpm
- rpm -ivh mysql-community-server-8.0.23-1.el8.x86_64.rpm
此处有坑,warning: mysql-community-server-8.0.23-1.el8.i686.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
遇到此坑在rpm语句后面加上--force --nodeps即可正常安装;
参考链接
4、常用的环境配置
安装成功后打开/etc/my.cnf,加上lower_case_table_names=1,该配置不区分数据表大小写(mysql在linux下默认区分)
5、初始化mysql
mysqld --initialize
此处可能会报错:mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
需安装libaio相关包:yum install -y libaio
6、启动mysql服务
systemctl start mysqld
此处也有坑,启动失败,因为默认安装的/var/lib/mysql目录权限不够
chown -R mysql:mysql /var/lib/mysql/
随后启动成功
7、查看初始化生成的root密码并使用初始密码登录
cat /var/log/mysqld.log | grep password
mysql -uroot -p
此处也有坑,登陆后需立即用alter user修改密码,否则报错:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement
ALTER USER "root"@"localhost" IDENTIFIED BY "自己的密码";
8、使用新密码登录并设置远程连接
use mysql;
update user set host = '%' where user ='root';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password;#更改加密方式
ALTER USER "root"@"%" IDENTIFIED BY "123456";#更改加密方式后从新设置一下密码
ALTER USER 'root'@'%' PASSWORD EXPIRE NEVER;