悠悠楠杉
CentOS安装MySQL8.0图文详解:从小白到精通的完整指南
一、为什么选择MySQL 8.0?
作为2023年最流行的开源关系型数据库,MySQL 8.0相比5.7版本有着显著的性能提升:
- 事务吞吐量提升2倍
- JSON功能增强
- 窗口函数支持
- 默认字符集改为utf8mb4(完美支持emoji)
二、环境准备
系统要求
- CentOS 7/8(本文以CentOS 7.9演示)
- 至少2GB内存(实测1GB会报错)
- 20GB可用磁盘空间
bash
查看系统版本
cat /etc/redhat-release
清理已有MariaDB(如有)
sudo yum remove mariadb*
三、分步安装教程
步骤1:添加官方YUM源
bash
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-6.noarch.rpm
验证源是否添加成功:
bash
yum repolist enabled | grep "mysql.*-community.*"
步骤2:安装MySQL服务端
bash
sudo yum --enablerepo=mysql80-community install mysql-community-server
遇到Public key for mysql-community-client-8.0.34-1.el7.x86_64.rpm is not installed
报错时:
bash
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
步骤3:启动服务并设置开机自启
bash
sudo systemctl start mysqld
sudo systemctl enable mysqld
检查运行状态:
bash
systemctl status mysqld
四、初始配置关键步骤
1. 获取临时密码
bash
sudo grep 'temporary password' /var/log/mysqld.log
输出示例:A temporary password is generated for root@localhost: Jqkf3z!aG12,
2. 安全配置向导
bash
sudo mysql_secure_installation
重要提示:
- 修改密码需包含大小写字母+数字+特殊字符
- 先输入上述获取的临时密码
- 建议禁用root远程登录(选择Y)
3. 调整密码策略(开发环境)
sql
-- 查看当前策略
SHOW VARIABLES LIKE 'validate_password%';
-- 降低复杂度要求(仅测试环境)
SET GLOBAL validate_password.policy=LOW;
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
五、远程连接配置
1. 创建专用用户
sql
CREATE USER 'devuser'@'%' IDENTIFIED BY 'StrongPass!2023';
GRANT ALL PRIVILEGES ON *.* TO 'devuser'@'%';
FLUSH PRIVILEGES;
2. 开放防火墙
bash
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd --reload
六、验证安装结果
bash
mysql -u root -p -e "SELECT VERSION();"
正常应显示:8.0.34
七、常见问题解决
Q1:无法通过Navicat连接
- 检查bind-address
配置(应设为0.0.0.0
)
- 确认防火墙状态
- 查看/var/log/mysqld.log
错误日志
Q2:忘记root密码bash
sudo systemctl stop mysqld
sudo mysqld_safe --skip-grant-tables &
mysql -u root
执行密码修改后重启服务
八、性能优化建议
修改
/etc/my.cnf
配置:
ini [mysqld] innodb_buffer_pool_size = 1G # 建议物理内存的50-70% max_connections = 200
定期维护:bash
每周自动优化
sudo crontab -e
0 3 * * 0 /usr/bin/mysqlcheck --all-databases --optimize -u root -p