奋斗
努力

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

云计算

在云服务器上手动安装和配置 MySQL 数据库,通常分为以下几个关键步骤(以 Ubuntu/Debian 为例,CentOS/RHEL 类似):


一、更新系统并安装依赖

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl gnupg2 lsb-release ca-certificates

✅ 建议先确保服务器防火墙已开放 3306 端口(MySQL 默认端口),否则远程无法连接。


二、添加 MySQL 官方 APT 仓库(推荐方式)

1. 下载 MySQL 官方 GPG 密钥与仓库源

访问 https://dev.mysql.com/downloads/repo/apt/
选择对应版本(如 mysql-8.0),复制下载命令:

# 示例:MySQL 8.0(请根据实际需求替换版本号)
wget https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.29-1_all.deb
# 按提示选择 MySQL 版本(如 8.0),确认即可

⚠️ 若不想交互,可提前设置默认版本:

echo "mysql-apt-config select server-version string mysql-8.0" | sudo debconf-set-selections
sudo dpkg -i mysql-apt-config_0.8.29-1_all.deb

2. 更新包索引并安装 MySQL Server

sudo apt update
sudo apt install -y mysql-server

安装过程中会提示设置 root 密码(强烈建议设置强密码)。


三、基础安全配置(必须执行!)

MySQL 安装后自带 mysql_secure_installation 脚本,用于加固安全:

sudo mysql_secure_installation

按提示操作:

  • 输入当前 root 密码(刚设置的)
  • 是否切换为 auth_socket?→ 选 Y(更安全可靠)
  • 删除匿名用户?→ Y
  • 禁止 root 远程登录?→ Y
  • 删除测试数据库?→ Y
  • 重新加载权限表?→ Y

🔐 若需允许远程连接,后续需单独配置(见第五步)。


四、验证安装状态

# 检查服务状态
sudo systemctl status mysql

# 查看版本
mysql --version

# 登录 MySQL(使用 socket 认证时可直接 sudo mysql)
sudo mysql

在 MySQL 命令行中:

SHOW DATABASES;
EXIT;

五、(可选)允许远程连接

方法一:修改绑定地址 + 创建远程用户

  1. 编辑 MySQL 配置文件:

    sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
    # 或 /etc/my.cnf(取决于发行版)

    找到并修改:

    bind-address = 0.0.0.0   # 默认是 127.0.0.1,改为 0.0.0.0 允许所有 IP
  2. 重启 MySQL:

    sudo systemctl restart mysql
  3. 登录 MySQL 创建远程用户(注意安全风险!):

    CREATE USER 'your_user'@'%' IDENTIFIED BY 'StrongPassword123!';
    GRANT ALL PRIVILEGES ON *.* TO 'your_user'@'%' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    EXIT;
  4. 重要:确保云服务器安全组/防火墙放行 3306 端口(TCP),例如:

    • AWS Security Group:添加入站规则 TCP 3306
    • 阿里云/腾讯云控制台 → 安全组 → 添加入方向规则

❗ 生产环境建议使用特定 IP 限制访问(如 'user'@'1.2.3.4'),而非 %;并启用 SSL 加密连接。


六、备份与监控建议

  • 定期备份:
    mysqldump -u root -p your_db > backup.sql
  • 启用慢查询日志(优化性能):
    在 [mysqld] 段添加:

    slow_query_log = 1
    slow_query_log_file = /var/log/mysql/slow.log
    long_query_time = 2

常见问题排查

问题 解决方法
Can't connect to MySQL server 检查 systemctl status mysql、防火墙、安全组、bind-address
忘记 root 密码 跳过授权表启动:sudo systemctl stop mysql → sudo mysqld_safe --skip-grant-tables & → 重置密码
中文乱码 修改 /etc/mysql/mysql.conf.d/mysqld.cnf 添加:
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

需要我提供 CentOS 7/8 的安装脚本、Docker 部署方案,或自动化 Ansible playbook 吗?

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