MySQL 在 Linux (Ubuntu/Debian) 上的安装与配置完整教程
本教程将引导您完成以下步骤:

- 更新系统包列表
- 安装 MySQL 服务器
- 启动并启用 MySQL 服务
- 运行安全脚本进行安全配置
- 验证安装
- (可选) 远程连接配置
- (可选) 卸载 MySQL
第一步:更新系统包列表
在安装任何新软件之前,最好先更新系统的包管理器缓存,以确保您能获取到最新的软件包信息。
打开终端,运行以下命令:
sudo apt update sudo apt upgrade -y
第二步:安装 MySQL 服务器
我们可以使用 apt 包管理器来安装 MySQL 服务器。
sudo apt install mysql-server -y
这个过程会自动下载并安装 MySQL 服务器核心文件以及一个名为 mysql-community-server 的配置包,安装过程可能需要几分钟,具体取决于您的网络速度和系统性能。

第三步:启动并启用 MySQL 服务
安装完成后,MySQL 服务通常会自动启动,但为了确保它在系统重启后也能自动运行,我们需要手动启用它。
-
启动 MySQL 服务
sudo systemctl start mysql
-
启用 MySQL 服务(开机自启)
sudo systemctl enable mysql
-
检查 MySQL 服务状态 您可以随时运行以下命令来检查 MySQL 是否正在运行:
(图片来源网络,侵删)sudo systemctl status mysql
如果看到绿色的
active (running)字样,说明服务运行正常,按q键退出状态查看界面。
第四步:运行安全脚本进行安全配置
MySQL 提供了一个交互式的安全脚本,它会帮助您:
- 设置
root用户的密码(如果安装时未自动设置)。 - 移除匿名用户。
- 禁止
root用户远程登录(提高安全性)。 - 移除测试数据库。
- 重新加载权限表使更改生效。
强烈建议您运行此脚本:
sudo mysql_secure_installation
您会看到一系列的交互式提示,以下是推荐的回答(根据您的需求调整):
// 1. 设置密码验证策略
// 会提示您选择密码验证的强度,0代表低(只检查长度),1代表中(默认),2代表强(检查字典文件等),建议选择1或2。
// 输入 1 然后回车
// 2. 为 root 用户设置密码?
// 如果您之前没有设置过,这里会提示您设置,输入 Y 并按回车,然后输入两次您想要的密码。
// 3. 移除匿名用户?
// 推荐移除,以提高安全性,输入 Y。
// 4. 允许 root 用户远程登录?
// 默认是 N,为了安全,不建议让 root 用户远程登录,输入 N。
// 注意:如果您需要通过工具(如 Navicat, DBeaver)从另一台电脑连接,请不要使用 root 用户,而是创建一个专用的数据库用户并授予其远程访问权限。
// 5. 移除 test 数据库?
// 推荐移除,因为它可能被用于未授权的访问,输入 Y。
// 6. 重新加载权限表?
// 这一步会应用所有刚才的更改,输入 Y。
脚本执行完毕后,您的 MySQL 安装就更加安全了。
第五步:验证安装
最直接的验证方法就是尝试登录到 MySQL。
-
使用
sudo登录 在较新版本的 Ubuntu 中,root用户被系统禁用了直接登录,推荐使用sudo来以root用户身份登录 MySQL:sudo mysql -u root -p
然后输入您在第四步中设置的
root密码。 -
登录成功后 如果您成功看到了
mysql>提示符,说明安装和配置都成功了!您可以输入一些简单的命令来测试:-- 查看当前数据库 SHOW DATABASES; -- 退出 MySQL EXIT;
第六步:(可选) 配置远程连接
默认情况下,MySQL 只监听本地的 0.0.1 地址,禁止远程连接,如果您需要从另一台电脑连接到这台 MySQL 服务器,请按以下步骤操作。
⚠️ 安全警告: 强烈建议不要使用 root 用户进行远程连接,请创建一个专用的、权限受限的用户。
-
登录到 MySQL
sudo mysql -u root -p
-
创建一个用于远程连接的新用户 将
'your_remote_user'替换为您想要的用户名,'your_strong_password'替换为一个强密码。CREATE USER 'your_remote_user'@'%' IDENTIFIED BY 'your_strong_password';
'your_remote_user'@'%': 是一个通配符,表示“任何主机”,如果您只想允许特定的 IP 地址连接,可以将 换成具体的 IP,'your_remote_user'@'192.168.1.100'。
-
为新用户授予访问权限 授予该用户对所有数据库的访问权限(生产环境应授予最小权限)。
GRANT ALL PRIVILEGES ON *.* TO 'your_remote_user'@'%' WITH GRANT OPTION;
-
刷新权限使更改生效
FLUSH PRIVILEGES;
-
退出 MySQL
EXIT;
-
修改 MySQL 配置文件以允许远程连接 编辑 MySQL 的主配置文件
/etc/mysql/mysql.conf.d/mysqld.cnf:sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
找到
bind-address = 127.0.0.1这一行,并将其注释掉或修改为0.0.0(监听所有网络接口)。# 将这行 # bind-address = 127.0.0.1 # 修改为 bind-address = 0.0.0.0
保存文件并退出 (
Ctrl+X, 然后按Y, 最后按Enter)。 -
重启 MySQL 服务以应用配置
sudo systemctl restart mysql
您就可以从网络上的另一台计算机使用您创建的 your_remote_user 和密码连接到这台 MySQL 服务器了,请确保您的服务器的防火墙(如 ufw)已经开放了 MySQL 的默认端口 3306。
# 开放 3306 端口 sudo ufw allow 3306/tcp
第七步:(可选) 卸载 MySQL
如果您需要完全卸载 MySQL(包括数据),请按以下步骤操作:
-
停止 MySQL 服务
sudo systemctl stop mysql
-
卸载 MySQL 软件包
sudo apt purge mysql-server mysql-client mysql-common mysql-server-core-* mysql-client-core-*
purge命令会删除软件包及其配置文件。 -
自动清理残留的依赖
sudo apt autoremove -y sudo apt autoclean
-
手动删除残留的数据目录(可选但推荐)
sudo rm -rf /var/lib/mysql
至此,MySQL 已被完全从您的系统中移除。
恭喜!您已经成功在 Linux 系统上安装、配置并验证了 MySQL 服务器,现在您可以开始创建数据库、用户,并开始您的项目了,如果您遇到任何问题,请检查 /var/log/mysql/error.log 日志文件,它通常会提供有用的错误信息。
