centos rpm方式安装mysql8.x
离线环境下安装mysql8.x ,本次安装选择的包是mysql8.0.27
1.安装包下载
下载链接:
MySQL :: Download MySQL Yum Repository
2.将安装包上传到centos7服务器解压
tar -xvf mysql-8.0.27-1.el7.x86_64.rpm-bundle.tar
3.安装前环境检测
1.mariadb为mysql分支,一些Linux分发版就将mariadb作为系统默认安装的数据库系统
rpm -qa | grep -i mariadb
可能结果显示
mariadb-libs-5.5.65-1.el7.x86_64
去除依赖
rpm -ev --nodeps mariadb-libs-5.5.65-1.el7.x86_64
2.libaio
rpm -qa|grep libaio
如果无依赖需要安装
yum install libaio -y
3.net-tools
rpm -qa|grep net-tools
如果无依赖需要安装
yum install net-tools -y
4.按顺序安装
按照顺序安装
rpm -ivh mysql-community-common-8.0.27-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.27-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.27-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.27-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.27-1.el7.x86_64.rpm
第三个出现错误
需要解除之前安装过的依赖即可,执行命令
yum remove mysql-libs -y
第五个安装出现错误
需要安装libnuma依赖,执行命令
yum install libnuma* -y
检查安装
rpm -qa|grep -i mysql
5个安装包均已安装
5.启动与修改密码
启动
systemctl start mysqld
查看状态
systemctl status mysqld
查看初始随机密码
cat /var/log/mysqld.log | grep password
root登录,使用密码
mysql -u root -p
初始登陆后修改密码
ALTER user 'root'@'localhost' IDENTIFIED BY '123456';
6.开放远程登录
use mysql; select host,user from user; update user set host='%' where user ='root';
grant all privileges on *.* to 'root'@'%' with grant option;
刷新权限
flush privileges;
远程连接"caching_sha2_password"报错
由于mysql8.0的加密方法变了。mysql8.0默认采用caching_sha2_password的加密方式。sqlyog不支持这种加密方式。
1.修改密码过期(可不执行) ALTER USER'root'@'localhost' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;
2.修改规则 ALTER USER'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
3.刷新权限(不做可能无法生效) FLUSH PRIVILEGES;
7.开放防火墙端口
开启root远程登录权限后,还无法直接被外界连接,因为MySQL的端口号3306在Linux中默认关闭的。
注意:使用阿里云等云服务器还需要在控制台中安全组策略打开端口,此处省略。
查询3306端口是否开启
firewall-cmd --query-port=3306/tcp
开启3306
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重新加载防火墙
firewall-cmd --reload
8.密码规则设置
查看密码规则
SHOW VARIABLES LIKE 'validate_password.%';
validate_password.policy的值
可以使用数字值0、1、2或相应的符号值LOW,MEDIUM,STRONG来指定validate_password.policy值
Policy | Tests Performed |
---|---|
0 or LOW |
Length |
1 or MEDIUM |
Length; numeric, lowercase/uppercase, and special characters |
2 or STRONG |
Length; numeric, lowercase/uppercase, and special characters; dictionary file |
如果想使用类似于123456形式的简单密码,需要更改密码规则和密码长度
mysql8.0及以后的版本
set global validate_password.policy=0; set global validate_password.length=1;
实际上,密码长度即使设为1,其最小长度也不会小于下面函数的值,即默认长度始终不会小于4
validate_password.number_count+ validate_password.special_char_count+ (2 * validate_password.mixed_case_count)
5.7及以前版本
set global validate_password_policy=0; set global validate_password_length=1;
9.更改密码
ALTER user 'root'@'localhost' IDENTIFIED BY '新密码';
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix