我来详细介绍在服务器上安装MySQL 8.0的步骤:
1. 系统准备
更新系统包
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
# CentOS/RHEL/Rocky Linux
sudo yum update -y
# 或者对于较新版本
sudo dnf update -y
2. 安装MySQL 8.0
Ubuntu/Debian 方法
# 添加MySQL官方APT仓库
wget https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.24-1_all.deb
# 更新包列表
sudo apt update
# 安装MySQL服务器
sudo apt install mysql-server -y
CentOS/RHEL/Rocky Linux 方法
# 添加MySQL YUM仓库
sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el$(rpm -E %{rhel})-1.noarch.rpm
# 安装MySQL服务器
sudo yum install -y mysql-server
# 或者使用dnf
sudo dnf install -y mysql-server
3. 启动并设置开机自启
# 启动MySQL服务
sudo systemctl start mysqld
# 设置开机自启
sudo systemctl enable mysqld
# 检查状态
sudo systemctl status mysqld
4. 安全配置
获取临时密码
# 查看临时root密码
sudo grep 'temporary password' /var/log/mysqld.log
# 或者
sudo cat /var/log/mysqld.log | grep "temporary password"
运行安全脚本
sudo mysql_secure_installation
按照提示进行以下设置:
- 输入临时密码
- 设置新的root密码(强密码策略)
- 移除匿名用户
- 禁止root远程登录(生产环境建议)
- 移除test数据库
- 重新加载权限表
5. 基本配置优化
编辑配置文件
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
# 或 CentOS: /etc/my.cnf
添加或修改以下配置:
[mysqld]
# 基础设置
bind-address = 0.0.0.0 # 允许远程连接(生产环境谨慎使用)
port = 3306
# 字符集设置
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
# 性能优化(根据服务器内存调整)
innodb_buffer_pool_size = 1G # 推荐为物理内存的50-70%
max_connections = 200
table_open_cache = 2000
tmp_table_size = 64M
max_heap_table_size = 64M
# 日志设置
log-error = /var/log/mysql/error.log
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2
# 其他优化
innodb_flush_log_at_trx_commit = 2
sync_binlog = 1000
重启MySQL
sudo systemctl restart mysqld
6. 创建用户和数据库
# 登录MySQL
mysql -u root -p
# 创建数据库
CREATE DATABASE myapp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
# 创建用户并授权
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON myapp.* TO 'myuser'@'localhost';
# 远程访问用户(谨慎使用)
CREATE USER 'myuser'@'%' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON myapp.* TO 'myuser'@'%';
# 刷新权限
FLUSH PRIVILEGES;
7. 防火墙配置
# Ubuntu/Debian (ufw)
sudo ufw allow 3306/tcp
# CentOS/RHEL (firewalld)
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload
8. 验证安装
# 检查MySQL版本
mysql --version
# 登录测试
mysql -u root -p -e "SELECT VERSION();"
# 检查服务状态
sudo systemctl status mysqld
9. 常用管理命令
# 查看MySQL进程
ps aux | grep mysql
# 查看端口监听
netstat -tlnp | grep :3306
# 查看错误日志
sudo tail -f /var/log/mysql/error.log
# 备份数据库
mysqldump -u root -p myapp > myapp_backup.sql
# 恢复数据库
mysql -u root -p myapp < myapp_backup.sql
注意事项
- 安全第一:生产环境不要使用root远程访问
- 密码强度:MySQL 8.0默认启用强密码策略
- 备份策略:定期备份重要数据
- 监控:设置监控告警
- 更新:定期更新MySQL版本修复安全漏洞
这样就完成了MySQL 8.0的完整安装和基础配置!
CDNK博客