香港VPS部署MySQL 8.0:安装、远程访问配置与性能调优实操

为什么 MySQL 配置比安装更重要?

MySQL 装好后直接用,是很多人的习惯。但默认配置存在两个严重问题:安全隐患(root 账户弱密码、匿名账户)和性能问题(默认参数为通用场景设计,不适合 VPS 低内存环境)。本文覆盖从安装到调优的完整流程。


一、安装 MySQL 8.0

sudo apt update
sudo apt install mysql-server -y

# 验证安装并查看版本
mysql --version

# 启动并设置开机自启
sudo systemctl start mysql
sudo systemctl enable mysql

二、安全初始化

sudo mysql_secure_installation

按提示依次操作:

  • 设置 root 密码(选择强密码)
  • 删除匿名用户:Y
  • 禁止 root 远程登录:Y(root 只允许本地登录)
  • 删除 test 数据库:Y
  • 重新加载权限表:Y

三、创建业务数据库和专用用户

sudo mysql -u root -p
-- 创建数据库
CREATE DATABASE myapp_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 创建专用用户(只能访问指定数据库)
CREATE USER 'myapp_user'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON myapp_db.* TO 'myapp_user'@'localhost';

-- 如需允许从指定远程 IP 访问(替换为实际 IP)
CREATE USER 'myapp_user'@'1.2.3.4' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON myapp_db.* TO 'myapp_user'@'1.2.3.4';

FLUSH PRIVILEGES;
EXIT;

四、配置远程访问(可选)

默认 MySQL 只监听 127.0.0.1,如需允许远程连接:

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

找到 bind-address,修改为:

# 监听所有接口(配合防火墙限制来源 IP)
bind-address = 0.0.0.0

在防火墙中只放行特定 IP 的 3306 端口(切勿对所有 IP 开放):

sudo ufw allow from 你的IP地址 to any port 3306
sudo systemctl restart mysql

五、针对低内存 VPS 的性能调优

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

根据内存大小调整以下参数:

# ===== 1G 内存 VPS 参考配置 =====
innodb_buffer_pool_size = 256M      # 通常设为可用内存的 50%–70%
innodb_log_file_size = 64M
innodb_flush_log_at_trx_commit = 2  # 性能优先(非金融级业务可用)
innodb_flush_method = O_DIRECT

max_connections = 50                # 低内存环境降低连接数
thread_cache_size = 8
table_open_cache = 200
query_cache_type = 0                # MySQL 8.0 已移除查询缓存

# ===== 2G 内存 VPS 参考配置 =====
# innodb_buffer_pool_size = 512M
# max_connections = 100

# 开启慢查询日志
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 1
sudo systemctl restart mysql

六、常用管理命令

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

# 查看正在执行的查询
mysql -u root -p -e "SHOW PROCESSLIST;"

# 查看 InnoDB 状态
mysql -u root -p -e "SHOW ENGINE INNODB STATUS\G"

# 分析慢查询日志
sudo mysqldumpslow -s t -t 10 /var/log/mysql/slow.log

总结

VPS 上部署 MySQL 的关键步骤:安装 → 安全初始化 → 创建业务专用用户(不用 root)→ 根据内存调整性能参数 → 开启慢查询日志。这套流程完成后,MySQL 既安全又针对低内存环境做了优化,可以稳定支撑中小型 Web 应用。

IDC.Net 香港云服务器香港独立服务器均提供 SSD 硬盘保障 MySQL I/O 性能,CN2 GIA 直连大陆,支付宝付款即可开通。

THE END