速卖通素材
努力

如何在云服务器上手动安装和配置MySQL数据库?

服务器

在云服务器上手动安装和配置MySQL数据库的详细步骤如下(以Ubuntu系统为例,其他Linux发行版类似):

1. 系统准备

更新系统包

sudo apt update
sudo apt upgrade -y

安装必要的工具

sudo apt install -y wget curl gnupg2 software-properties-common

2. 安装MySQL

添加MySQL官方GPG密钥

wget https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
sudo gpg --dearmor < RPM-GPG-KEY-mysql-2022 > mysql.gpg
sudo mv mysql.gpg /etc/apt/trusted.gpg.d/mysql.gpg

添加MySQL APT仓库

echo "deb http://repo.mysql.com/apt/ubuntu/ $(lsb_release -cs) mysql-8.0" | sudo tee /etc/apt/sources.list.d/mysql.list

安装MySQL服务器

sudo apt update
sudo apt install -y mysql-server

3. 启动并启用MySQL服务

# 启动MySQL服务
sudo systemctl start mysql

# 设置开机自启
sudo systemctl enable mysql

# 检查服务状态
sudo systemctl status mysql

4. 安全初始化配置

sudo mysql_secure_installation

按照提示进行以下设置:

  • 设置root用户密码
  • 移除匿名用户
  • 禁止root远程登录
  • 移除test数据库
  • 重新加载权限表

5. 配置MySQL

编辑MySQL配置文件

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

常用配置修改

[mysqld]
# 绑定地址(允许远程连接)
bind-address = 0.0.0.0

# 字符集设置
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

# 最大连接数
max_connections = 200

# 内存相关设置
innodb_buffer_pool_size = 1G
key_buffer_size = 256M

# 日志设置
log_error = /var/log/mysql/error.log
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2

重启MySQL服务

sudo systemctl restart mysql

6. 用户和权限管理

登录MySQL

sudo mysql -u root -p

创建新用户

-- 创建新用户
CREATE USER 'your_username'@'%' IDENTIFIED BY 'your_password';

-- 授予所有权限(生产环境建议使用更精细的权限)
GRANT ALL PRIVILEGES ON *.* TO 'your_username'@'%' WITH GRANT OPTION;

-- 刷新权限
FLUSH PRIVILEGES;

创建特定数据库

-- 创建数据库
CREATE DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 为特定数据库授予权限
GRANT ALL PRIVILEGES ON your_database_name.* TO 'your_username'@'%';
FLUSH PRIVILEGES;

7. 防火墙配置

开放MySQL端口

# Ubuntu默认防火墙
sudo ufw allow 3306/tcp

# 或者使用iptables
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

云服务商安全组配置

在云控制台中:

  • 找到安全组设置
  • 添加入站规则:端口3306,协议TCP
  • 源IP可根据需要设置为特定IP或0.0.0.0/0

8. 远程连接测试

从本地测试连接

mysql -h 你的云服务器IP -P 3306 -u your_username -p

使用客户端工具连接

  • MySQL Workbench
  • Navicat
  • DBeaver等

9. 备份与恢复

创建备份脚本

#!/bin/bash
# backup_mysql.sh
BACKUP_DIR="/backup/mysql"
DATE=$(date +%Y%m%d_%H%M%S)
DATABASE="your_database_name"

mkdir -p $BACKUP_DIR
mysqldump -u root -p$MYSQL_ROOT_PASSWORD $DATABASE | gzip > "$BACKUP_DIR/$DATABASE-$DATE.sql.gz"

# 保留最近7天的备份
find $BACKUP_DIR -name "*.sql.gz" -mtime +7 -delete

设置定时备份

crontab -e
# 添加每天凌晨2点备份
0 2 * * * /path/to/backup_mysql.sh

10. 性能优化建议

监控命令

# 查看MySQL进程
ps aux | grep mysql

# 查看连接数
mysql -u root -p -e "SHOW STATUS LIKE 'Threads_connected';"

# 查看慢查询
mysql -u root -p -e "SHOW VARIABLES LIKE 'slow_query%';"

优化参数(根据服务器配置调整)

[mysqld]
# 内存分配(建议为物理内存的50-70%)
innodb_buffer_pool_size = 2G
# 临时表大小
tmp_table_size = 256M
max_heap_table_size = 256M
# 查询缓存(MySQL 8.0已移除)
query_cache_type = 0

故障排除

常见问题解决

# 检查错误日志
sudo tail -f /var/log/mysql/error.log

# 重置root密码
sudo systemctl stop mysql
sudo mysqld_safe --skip-grant-tables &
mysql -u root
-- 在MySQL中执行:
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root';
FLUSH PRIVILEGES;
EXIT;
sudo killall mysqld
sudo systemctl start mysql

安全最佳实践

  1. 定期更新:保持MySQL版本最新
  2. 强密码策略:使用复杂密码
  3. 最小权限原则:按需分配权限
  4. 定期备份:确保数据安全
  5. 监控日志:及时发现异常
  6. SSL连接:启用加密连接

这样就完成了MySQL在云服务器上的完整安装和配置。记得根据实际需求调整各项参数。

未经允许不得转载:轻量云Cloud » 如何在云服务器上手动安装和配置MySQL数据库?