在云服务器上手动安装和配置MySQL数据库的详细步骤如下(以Ubuntu/Debian系统为例):
1. 系统准备
更新系统包
sudo apt update
sudo apt upgrade -y
安装必要的工具
sudo apt install -y wget curl net-tools
2. 安装MySQL
添加MySQL官方仓库(推荐)
# 下载并添加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
安装MySQL服务器
sudo apt update
sudo apt install -y mysql-server
启动并设置开机自启
sudo systemctl start mysql
sudo systemctl enable mysql
3. 初始安全配置
运行安全脚本
sudo mysql_secure_installation
按照提示设置:
- 设置root密码强度
- 移除匿名用户
- 禁止root远程登录
- 删除测试数据库
- 重新加载权限表
4. 基本配置
登录MySQL
sudo mysql -u root -p
创建新用户(推荐)
-- 创建新用户
CREATE USER 'admin'@'localhost' IDENTIFIED BY 'your_strong_password';
-- 授予所有权限
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
-- 刷新权限
FLUSH PRIVILEGES;
-- 退出
EXIT;
5. 配置文件优化
编辑MySQL配置文件
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
常用配置项
[mysqld]
# 基本设置
port = 3306
bind-address = 0.0.0.0 # 允许远程连接
# 内存配置(根据服务器内存调整)
innodb_buffer_pool_size = 1G
key_buffer_size = 256M
max_allowed_packet = 64M
thread_stack = 192K
thread_cache_size = 8
# 连接设置
max_connections = 200
wait_timeout = 28800
interactive_timeout = 28800
# 日志设置
log_error = /var/log/mysql/error.log
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2
# 字符集
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
重启MySQL服务
sudo systemctl restart mysql
6. 防火墙配置
开放MySQL端口
# 使用ufw防火墙
sudo ufw allow 3306/tcp
# 或使用iptables
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
7. 远程访问配置
修改绑定地址
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
将 bind-address 改为:
bind-address = 0.0.0.0
授予远程访问权限
mysql -u root -p
-- 创建允许远程访问的用户
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
8. 性能优化建议
调整InnoDB设置
[mysqld]
# InnoDB配置
innodb_log_file_size = 256M
innodb_log_buffer_size = 64M
innodb_flush_log_at_trx_commit = 2
innodb_file_per_table = 1
innodb_flush_method = O_DIRECT
# 查询缓存(MySQL 8.0已移除)
query_cache_type = 1
query_cache_size = 64M
连接池优化
[mysqld]
max_connections = 500
max_connect_errors = 10000
connect_timeout = 10
wait_timeout = 28800
interactive_timeout = 28800
9. 备份与恢复
创建备份脚本
#!/bin/bash
# backup_mysql.sh
BACKUP_DIR="/backup/mysql"
DATE=$(date +%Y%m%d_%H%M%S)
DB_NAME="your_database"
mkdir -p $BACKUP_DIR
mysqldump -u root -p"your_password"
--single-transaction
--routines
--triggers
--events
$DB_NAME > $BACKUP_DIR/${DB_NAME}_${DATE}.sql
# 压缩备份
gzip $BACKUP_DIR/${DB_NAME}_${DATE}.sql
# 删除7天前的备份
find $BACKUP_DIR -name "*.sql.gz" -mtime +7 -delete
设置定时备份
crontab -e
# 每天凌晨2点备份
0 2 * * * /path/to/backup_mysql.sh
10. 监控与维护
查看MySQL状态
# 查看服务状态
sudo systemctl status mysql
# 查看进程
ps aux | grep mysql
# 查看端口监听
netstat -tlnp | grep :3306
日常维护命令
-- 查看数据库大小
SELECT table_schema "Database",
SUM(data_length + index_length) / 1024 / 1024 "Size (MB)"
FROM information_schema.TABLES
GROUP BY table_schema;
-- 优化表
OPTIMIZE TABLE your_table_name;
-- 分析表
ANALYZE TABLE your_table_name;
11. 安全加固
修改默认端口(可选)
[mysqld]
port = 3307 # 修改为非标准端口
启用SSL连接
[mysqld]
ssl-ca=/etc/mysql/ca.pem
ssl-cert=/etc/mysql/server-cert.pem
ssl-key=/etc/mysql/server-key.pem
定期更新
sudo apt update
sudo apt upgrade mysql-server
注意事项
- 密码安全:使用强密码,定期更换
- 权限最小化:按需分配权限,避免过度授权
- 定期备份:确保数据安全
- 监控资源:关注CPU、内存、磁盘使用情况
- 日志管理:定期清理日志文件
- 云安全组:配合云服务商的安全组规则
完成以上步骤后,你的MySQL数据库就成功安装并配置好了。建议根据实际业务需求进一步调整配置参数。
CLOUD云计算