目录
- 第一步:环境准备
- 更新系统包
- 检查并卸载旧版 MySQL/MariaDB
- 第二步:安装 MySQL (CentOS/RHEL)
- 添加官方 Yum 仓库
- 安装 MySQL 服务器
- 启动并设置开机自启
- 第三步:安装 MySQL (Ubuntu/Debian)
- 添加官方 APT 仓库
- 安装 MySQL 服务器
- 启动并设置开机自启
- 第四步:安全配置向导 (至关重要)
- 运行
mysql_secure_installation - 详细解释每一步
- 运行
- 第五步:登录 MySQL 并进行基本操作
- 首次登录
- 修改 root 密码
- 创建新用户和数据库
- 第六步:配置远程访问 (可选,不推荐)
- 修改配置文件
- 防火墙设置
- 安全风险提示
- 第七步:常用管理命令
- 服务管理
- 日志查看
- 数据库备份
- 总结与最佳实践
第一步:环境准备
在安装之前,请确保你的服务器满足以下基本要求:

- 操作系统: CentOS 7/8, Ubuntu 20.04/22.04 或其他类似发行版。
- 内存: 至少 2GB (推荐 4GB 或以上)。
- CPU: 1 核或以上。
- 权限: 需要
root或sudo权限。
更新系统包
对于 CentOS/RHEL:
sudo yum update -y
对于 Ubuntu/Debian:
sudo apt update sudo apt upgrade -y
检查并卸载旧版 MySQL/MariaDB
如果系统上已安装旧版本的 MySQL 或其分支 MariaDB,必须先卸载,否则会引发冲突。
检查是否已安装:

# CentOS rpm -qa | grep -i "mysql\|mariadb" # Ubuntu dpkg -l | grep -i "mysql\|mariadb"
如果已安装,请卸载: 对于 CentOS:
sudo yum remove mysql-community-server mysql-community-client mysql-community-common mysql-community-libs -y # 如果是 MariaDB sudo yum remove mariadb-server mariadb-client -y
对于 Ubuntu:
sudo apt remove --purge mysql-server mysql-client mysql-common -y # 如果是 MariaDB sudo apt remove --purge mariadb-server mariadb-client -y
卸载后,最好清理一下残留的配置文件和目录:
# CentOS sudo rm -rf /var/lib/mysql # Ubuntu sudo rm -rf /var/lib/mysql /etc/mysql
第二步:安装 MySQL (CentOS/RHEL)
添加官方 Yum 仓库
MySQL 官方提供了 Yum 仓库,方便我们安装最新、最稳定的版本。

# 下载并添加 MySQL 官方仓库 sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm -y # 如果是 CentOS 8, 使用 el8 # sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm -y # 验证仓库是否添加成功 sudo yum repolist enabled "mysql*-community*"
安装 MySQL 服务器
sudo yum install mysql-community-server -y
启动并设置开机自启
# 启动 MySQL 服务 sudo systemctl start mysqld # 设置开机自启 sudo systemctl enable mysqld # 查看服务状态 sudo systemctl status mysqld
第三步:安装 MySQL (Ubuntu/Debian)
添加官方 APT 仓库
# 首先安装一些必要的工具 sudo apt install -y wget # 下载 MySQL APT 仓库配置包 wget https://dev.mysql.com/get/mysql-apt-config_0.8.22-1_all.deb # 安装下载的配置包 (过程中会弹窗选择版本,选择 "Ok" 即可) sudo dpkg -i mysql-apt-config_0.8.22-1_all.deb # 更新 apt 包列表,使新仓库生效 sudo apt update
安装 MySQL 服务器
sudo apt install mysql-server -y
启动并设置开机自启
# 启动 MySQL 服务 sudo systemctl start mysql # 设置开机自启 sudo systemctl enable mysql # 查看服务状态 sudo systemctl status mysql
第四步:安全配置向导 (至关重要)
MySQL 提供了一个交互式的脚本 mysql_secure_installation,它会引导你完成一系列重要的安全设置。
运行脚本:
sudo mysql_secure_installation
这个脚本会按顺序执行以下步骤,并给出建议,通常选择 Y (是) 是最安全的选择。
-
Securing the MySQL server deployment.Press y|Y for Yes, any other key for No: Y- 继续。
-
Would you like to set up VALIDATE PASSWORD plugin?Press y|Y for Yes, any other key for No: YPlease set the password for root here.设置一个强密码,脚本会评估密码强度。
There are three levels of password validation policy:0 = LOW(长度)1 = MEDIUM(长度 + 数字/小写/大写/特殊字符)2 = STRONG(长度 + 数字/小写/大写/特殊字符 + 字典检查)Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1(推荐选择 1)
- 再次输入你设置的密码。
-
Remove anonymous users?Disallow root login remotely?Remove test database and access to it?Reload privilege tables now?- 对于以上所有问题,都回答
Y(是),这些操作会移除不安全的默认设置,增强服务器安全性。
-
Success! All done!脚本执行完毕,你的 MySQL 实例现在已经非常安全了。
第五步:登录 MySQL 并进行基本操作
首次登录
在完成安全配置后,你可以使用以下命令登录 MySQL,注意,在 CentOS 8+ 和一些新版本中,首次登录可能需要使用 auth_socket 插件,所以不需要密码。
sudo mysql
如果提示输入密码,可以直接按回车,因为你是以 root 用户通过 sudo 登录的。
修改 root 密码 (可选)
如果你忘记了密码,或者想更改密码,可以这样做:
-- 退出 MySQL
exit;
-- 停止 MySQL 服务
sudo systemctl stop mysqld
-- 以安全模式启动,跳过权限表
sudo mysqld_safe --skip-grant-tables &
-- 登录 MySQL (此时不需要密码)
mysql -u root
-- 在 MySQL 命令行中执行以下命令
-- 注意:如果你的 MySQL 版本是 8.0+,需要使用 'authentication_string' 字段
UPDATE mysql.user SET authentication_string=PASSWORD('你的新密码') WHERE User='root';
FLUSH PRIVILEGES;
exit;
-- 重启 MySQL 服务,使其加载新的权限表
sudo systemctl restart mysqld
创建新用户和数据库
强烈建议不要直接使用 root 用户进行日常操作!
-- 登录 MySQL
sudo mysql -u root -p
-- 创建一个新数据库
CREATE DATABASE myapp_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 创建一个新用户,并允许其从任何主机访问 ('%' 表示任何主机)
CREATE USER 'myapp_user'@'%' IDENTIFIED BY '一个强密码';
-- 给新用户授予对数据库的所有权限
GRANT ALL PRIVILEGES ON myapp_db.* TO 'myapp_user'@'%';
-- 刷新权限,使更改生效
FLUSH PRIVILEGES;
-- 退出
exit;
第六步:配置远程访问 (可选,不推荐)
出于安全考虑,默认情况下 MySQL 只允许 localhost (本机) 访问,如果你需要从其他机器连接到这台 MySQL 服务器,需要进行如下配置。
⚠️ 安全警告: 开启远程访问会增加服务器的攻击面,请确保你的数据库密码足够强大,并且只允许受信任的 IP 地址访问。
修改配置文件
# 编辑 MySQL 主配置文件 sudo vi /etc/my.cnf # CentOS sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf # Ubuntu
找到 bind-address = 127.0.0.1 这一行,将其注释掉或修改为 0.0.0,表示监听所有网络接口。
# 将这行 # bind-address = 127.0.0.1 # 修改为 bind-address = 0.0.0.0
保存并退出 (wq)。
防火墙设置
你需要开放 MySQL 的默认端口 3306。
对于 CentOS (使用 firewalld):
sudo firewall-cmd --permanent --add-port=3306/tcp sudo firewall-cmd --reload
对于 Ubuntu (使用 ufw):
sudo ufw allow 3306/tcp
重启 MySQL 服务
sudo systemctl restart mysqld
你可以从其他机器使用 myapp_user 和你设置的密码连接到这台 MySQL 服务器了。
第七步:常用管理命令
服务管理
# 启动 sudo systemctl start mysqld # 停止 sudo systemctl stop mysqld # 重启 sudo systemctl restart mysqld # 查看状态 sudo systemctl status mysqld # 查看开机自启状态 sudo systemctl is-enabled mysqld
日志查看
MySQL 的错误日志通常位于 /var/log/ 目录下。
# CentOS sudo tail -f /var/log/mysqld.log # Ubuntu sudo tail -f /var/log/mysql/error.log
数据库备份
使用 mysqldump 工具进行备份。
# 备份单个数据库 mysqldump -u [用户名] -p [数据库名] > backup.sql # 备份所有数据库 mysqldump -u [用户名] -p --all-databases > all_backup.sql # 示例:备份我们创建的 myapp_db mysqldump -u myapp_user -p myapp_db > myapp_db_backup.sql
执行后会提示输入密码。
第八步:总结与最佳实践
恭喜!你已经成功在 Linux 服务器上部署并配置了 MySQL。
回顾一下关键点:
- 使用官方仓库:确保安装的是稳定、安全的官方版本。
- 安全配置向导:
mysql_secure_installation是新部署的必经之路,请务必运行。 - 创建专用用户:永远不要在生产环境中使用
root用户连接应用数据库。 - 强密码策略:为所有用户设置复杂且唯一的密码。
- 谨慎开放远程访问:如果必须开放,请严格限制 IP,并使用防火墙。
- 定期备份:制定并执行定期的数据库备份计划,这是数据安全的最后一道防线。
遵循这些步骤和最佳实践,你的 MySQL 数据库将拥有一个坚实、安全的基础。
