云服务器配置mysql?

在云服务器上配置 MySQL 是一个常见的操作,适用于部署 Web 应用、数据库服务等。以下是基于 Linux 系统(如 Ubuntu/CentOS) 的云服务器配置 MySQL 的完整步骤。


一、准备工作

  1. 登录云服务器
    使用 SSH 登录你的云服务器:

    ssh root@your_server_ip
  2. 更新系统包

    # Ubuntu/Debian
    sudo apt update && sudo apt upgrade -y
    
    # CentOS/RHEL
    sudo yum update -y

二、安装 MySQL

1. Ubuntu 系统

# 安装 MySQL 服务器
sudo apt install mysql-server -y

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

2. CentOS 系统(以 CentOS 7/8 为例)

# 添加 MySQL 官方 Yum 仓库(以 MySQL 8.0 为例)
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm

# 安装 MySQL 服务器
sudo yum install mysql-server -y

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

注意:CentOS 8 可能使用 dnf 替代 yum


三、初始化安全配置

运行 MySQL 自带的安全脚本,设置 root 密码、移除匿名用户等:

sudo mysql_secure_installation

按照提示操作:

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

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

默认情况下,MySQL 只允许本地连接。如需从外部连接(如本地程序连接云数据库),需做以下配置。

1. 修改 MySQL 配置文件

# Ubuntu 路径
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

# 或 CentOS 路径
sudo nano /etc/my.cnf
# 或 /etc/my.cnf.d/server.cnf

找到 bind-address 行,修改为:

bind-address = 0.0.0.0

注意:0.0.0.0 表示监听所有 IP,生产环境建议绑定具体 IP 或使用防火墙限制。

保存并退出。

2. 重启 MySQL 服务

sudo systemctl restart mysql
# 或 CentOS
sudo systemctl restart mysqld

3. 创建远程访问用户

登录 MySQL:

mysql -u root -p

执行 SQL 创建用户并授权:

-- 创建用户(允许从任意 IP 连接)
CREATE USER 'admin'@'%' IDENTIFIED BY 'YourStrongPassword123!';

-- 授予所有权限(生产环境建议按需授权)
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;

-- 刷新权限
FLUSH PRIVILEGES;

更安全做法:使用 'admin'@'your_ip' 限制特定 IP。


五、配置云服务器安全组/防火墙

确保云服务器的 安全组(Security Group) 或防火墙放行 MySQL 端口(默认 3306)。

1. 开放防火墙端口

# Ubuntu(UFW)
sudo ufw allow 3306

# CentOS(firewalld)
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload

2. 配置云平台安全组

登录云服务商控制台(如阿里云、腾讯云、AWS、华为云等),在实例的安全组中添加入站规则:

  • 协议:TCP
  • 端口:3306
  • 源 IP:建议限制为你的 IP(如 123.123.123.123/32),避免 0.0.0.0/0

六、测试连接

使用 MySQL 客户端或工具(如 Navicat、DBeaver、MySQL Workbench)从本地连接:

  • 主机:你的云服务器公网 IP
  • 端口:3306
  • 用户名:你创建的用户(如 admin
  • 密码:对应密码

七、其他建议

  1. 定期备份

    mysqldump -u root -p --all-databases > backup.sql
  2. 使用强密码
    避免使用弱密码,防止暴力破解。

  3. 考虑使用 SSL 加密连接
    提高安全性,防止数据被窃听。

  4. 监控日志
    查看日志排查问题:

    sudo tail -f /var/log/mysql/error.log

常见问题

  • 连接被拒绝? 检查 bind-address、防火墙、安全组、MySQL 用户权限。
  • 忘记 root 密码? 可通过跳过权限验证方式重置。
  • 性能问题? 可优化 my.cnf 配置,如调整 innodb_buffer_pool_size

如你使用的是特定云平台(如阿里云 RDS、腾讯云 CDB),建议直接使用其 托管数据库服务,更安全、易管理。

需要我提供某个平台(如阿里云、AWS)的具体配置示例吗?

未经允许不得转载:云计算HECS » 云服务器配置mysql?