如何在Linux服务器部署mysql_mysql Linux部署完整流程

Linux部署MySQL需安装、初始化、安全配置和服务管理:CentOS需添加官方YUM源后安装,Ubuntu直接apt安装;启动服务后运行mysql_secure_installation加固;如需远程访问,需修改bind-address、创建远程用户并开放3306端口。

在Linux服务器上部署MySQL,核心是安装、初始化、安全配置和基础服务管理。不同发行版命令略有差异,但逻辑一致。下面以主流的CentOS/RHEL 8+ 和 Ubuntu 22.04+ 为例,给出清晰、可操作的完整流程。

确认系统环境与准备权限

确保你有root或sudo权限,并检查系统版本:

  • 运行 cat /etc/os-release 查看发行版和版本号
  • 关闭或配置防火墙(如firewalld或ufw),避免端口被拦截
  • 确保系统已更新:sudo dnf update -y(CentOS)或 sudo apt update && sudo apt upgrade -y(Ubuntu)

安装MySQL服务

推荐使用官方源安装,保障版本稳定性和安全性:

  • CentOS/RHEL 8+:MySQL不默认提供,需添加官方YUM源
      → 下载并安装MySQL YUM仓库:
      sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el8-5.noarch.rpm -y
      → 启用MySQL 8.0系列:
      sudo dnf config-manager --enable mysql80-community
      → 安装MySQL服务器:
      sudo dnf install mysql-community-server -y
  • Ubuntu 22.04+:MySQL 8.0 已包含在官方源中
      → 直接安装:
      sudo apt install mysql-server -y

启动并初始化MySQL服务

安装完成后必须启动服务并完成首次安全初始化:

  • 启动服务并设为开机自启:
      sudo systemctl start mysqld(CentOS)或 sudo systemctl start mysql(Ubuntu)
      sudo systemctl enable mysqldsudo systemctl enable mysql
  • 查看初始密码(仅CentOS/RHEL):
      sudo grep 'temporary password' /var/log/mysqld.log
      Ubuntu默认无临时密码,首次登录用 sudo mysql(免密进入)
  • 运行安全脚本(强烈建议):
      sudo mysql_secure_installation
      按提示设置root密码、禁用匿名用户、禁止远程root登录、删除test数据库、重载权限表

配置远程访问与基础使用

如需从其他机器连接MySQL,需调整绑定地址和用户权限:

  • 编辑MySQL配置文件:
      CentOS:/etc/my.cnf.d/mysql-server.cnf
      Ubuntu:/etc/mysql/mysql.conf.d/mysqld.cnf
      找到 bind-address = 127.0.0.1,改为 bind-address = 0.0.0.0(或指定内网IP)
  • 重启服务:sudo systemctl restart mysqldsudo systemctl restart mysql
  • 登录后创建远程用户(示例):
      CREATE USER 'admin'@'%' IDENTIFIED BY 'StrongPass123!';
      GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION;
      >FLUSH PRIVILEGES;
  • 开放防火墙端口(如3306):
      CentOS:sudo firewall-cmd --add-port=3306/tcp --permanent && sudo firewall-cmd --reload
      Ubuntu:sudo ufw allow 3306

部署完成即可用客户端连接测试,例如:mysql -u admin -h your_server_ip -p。注意生产环境务必限制IP范围、启用SSL、定期备份,并避免直接暴露3306到公网。