系统: CentOS 7(在CentOS 7中默认有安装MariaDB,这个是mysql的分支,一般来说还是使用自己安装的MySQL比较好)
1、下载并安装MySQL
wget -i -c https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
下载到指定位置后,就可以执行安装了
yum -y install mysql80-community-release-el7-3.noarch.rpm
yum -y install mysql-community-server
安装完成后,之前的MariaDB就会被覆盖掉
2、启动MySQL
启动MySQL服务:systemctl start mysqld.service
查看MySQL服务:systemctl status mysqld.service
查看MySQL是不是开机自启,可以执行命令查看开机自启列表
systemctl list-unit-files|grep enabled
此时如果要进入MySQL得找出root用户的密码,输入命令
grep "password" /var/log/mysqld.log
得到密码后,登录mysql,输入命令
mysql -uroot -p
然后回车,提示你输入密码,记得不要输错,输入时密码是不显示的。登录成功如下图
此时,你需要给你的MySql重新设置密码,因为MySQL默认的就是必须修改密码后才能操作数据库。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Left@zuo123.';
设置密码的时候需要遵守MySQL密码设置规范,如果不符合规范是不能修改成功的。
如下图,我将密码设置为123456,它提示我 密码不符合规范
总之呢,我们先将密码设置成比较复杂的就好,比如 Abc@123...,先登录了再说。
如果想要设置简单好记的密码,可以修改密码设置规范,毕竟你不登录你就不能修改规范。
查看密码规范
SHOW VARIABLES LIKE 'validate_password%';
密码的长度是由validate_password_length决定的,而validate_password_length的计算公式是: validate_password_length = validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count) 这时候我们将密码设置规范修改一下: set global validate_password.policy=0; set global validate_password.length=1;
这时候就可以设置简单的密码了,比如123456
最后一步,设置允许远程连接。
如果直接使用命令:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password'; 会提示一个语法错误,有人说是mysql8的分配权限不能带密码隐士创建账号了,要先创建账号再设置权限。也有的说8.0.11之后移除了grant 添加用户的功能。
创建新用户 admin
创建用户:CREATE USER 'admin'@'%' IDENTIFIED BY '123456';
允许远程连接:GRANT ALL ON *.* TO 'admin'@'%';
本人测试过,使用 update user set host = '%' where user = 'root'; 也可以修改
如果使用客户端连接提示了plugin caching_sha2_password错误,这是因为MySQL8.0的密码策略默认为caching_sha2_password
使用命令修改策略
ALTER USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
箭头指的两个用户是我修改过的
然后关闭防火墙,测试连接成功!!
文章为学习记录,如有错误,还望指出!!