----------- 注意安装mysql-8.0.20前要先删除本机安装的mariadb
0. 防火墙放行3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
1. 检查已经安装的mariadb,若安装了,先删除
1.1 查看
rpm -qa | grep mariadb
1.2 删除
- 方法一:
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
- 方法二:
yum -y remove mariadb-libs-5.5.60-1.el7_5.x86_64
2. 安装
2.1 更新yum源
yum update
2.2 下载MySQL yum包
比较难的就是找 yum源的地址,其实mysql官方已经给出了,就在安装包的下载页面:
下载,只要更新后面的yum包就行:
wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
2.3 安装软件源
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
2.4 安装MySQL
yum install mysql-community-server -y
2.5 启动服务
systemctl start mysqld
systemctl status mysqld
3. 修改密码
3.1 查看MySQL默认密码
grep 'temporary password' /var/log/mysqld.log
3.2 登录MySQL
mysql -u root -p
3.3 修改新密码, 顺便设置加密方式
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
若报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements,看下面
3.4 mysql8密码策略
-
查看策略:
SHOW VARIABLES LIKE 'validate_password%';
关于 mysql 密码策略相关参数; 1. validate_password_length 固定密码的总长度; 2. validate_password_dictionary_file 指定密码验证的文件路径; 3. validate_password_mixed_case_count 整个密码中至少要包含大/小写字母的总个数; 4. validate_password_number_count 整个密码中至少要包含阿拉伯数字的个数; 5. validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM; 关于 validate_password_policy 的取值: 0/LOW:只验证长度; 1/MEDIUM:验证长度、数字、大小写、特殊字符; 2/STRONG:验证长度、数字、大小写、特殊字符、字典文件; 6. validate_password_special_char_count 整个密码中至少要包含特殊字符的个数;
若不做修改,则新密码要包含数字、大小写、特殊字符,且长度至少为8。不建议做修改,用默认的密码策略就行。
-
可修改密码策略
- 设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW 即可:
set global validate_password_policy=LOW;
- 设置密码长度:
set global validate_password_length=6;
- 设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW 即可:
4. 设置远程连接
4.1 添加新root账号
CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '上面新设置的密码';
4.2 给予root权限
grant all privileges on *.* to 'root'@'%';
4.3 刷新权限
FLUSH PRIVILEGES;
4.4 退出mysql,重启一下mysql
quit;
systemctl restart mysqld
5. 设置mysql自启
systemctl enable mysqld
6. 修改mysql端口号
- mysql安装好以后,配置文件位置
/etc/my.cnf
- 在配置文件中添加如下:
[mysqld] port=12345
- 重启服务
systemctl restart mysqld
- 进入mysql,查看端口
mysql -u root -p mysql> show global variables like 'port';
- 配置文件中还可以配置其他,自己按需修改
[mysql] #设置mysql客户端默认字符集 default-character-set=utf8mb4 [mysqld] #设置3306端口 port=3306 #允许最大连接数 max_connections=1000 #允许连接失败的次数。 max_connect_errors=10 #最大允许包 max_allowed_packet=10M #服务端使用的字符集默认为utf8mb4 character-set-server=utf8mb4 collation_server = utf8mb4_general_ci #创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # mysql8中“mysql_native_password”插件认证不让用了,改成默认的caching_sha2_password default_authentication_plugin=caching_sha2_password