一、安装前准备
1. 系统更新:在安装 MySQL 之前,确保你的 Ubuntu 系统软件包是最新的,这能避免因软件包版本问题导致的安装错误,并获取最新的安全补丁。打开终端,执行以下两条命令:
sudo apt update
sudo apt upgrade -y
sudo apt update命令用于更新软件包索引,让系统知晓可用软件包的最新版本信息。sudo apt upgrade -y则会自动安装系统中已安装软件包的可用更新,-y参数表示自动回答 “是”,避免逐个确认的麻烦。
2. 检查是否已安装 MySQL:有些情况下,系统可能已经预装了 MySQL 或者之前安装过残留文件。通过以下命令检查:
dpkg -l | grep mysql
如果有相关软件包列出,可能需要先卸载。例如,若要卸载mysql-server,可执行:
sudo apt - get remove mysql - server
若要彻底清除包括配置文件在内的所有内容,使用:
sudo apt - get purge mysql - server
卸载后,还需手动删除可能残留的相关目录,如/etc/mysql和/var/lib/mysql等(操作时需谨慎,确认无重要数据留存)。
二、安装 MySQL
1.使用 Ubuntu 官方仓库安装:
sudo apt install -y mysql - server
该命令会从 Ubuntu 官方软件源下载并安装 MySQL 服务器及其依赖项。安装过程中,系统会提示设置root用户的密码。请设置一个强密码,包含字母(大小写)、数字和特殊字符,以增强安全性。例如:MyS3cur3P@ssw0rd!
sudo apt install -y libmysqlclient - dev
- 安装 MySQL 服务器软件包:在终端执行以下命令:
- 安装 MySQL 开发包(可选):若你计划进行 MySQL 相关开发工作,还需安装开发包,它包含用于开发的头文件和动态库文件。执行:
2.使用 MySQL 官方仓库安装(获取最新版本):
sudo apt update
然后安装 MySQL 服务器:
sudo apt install -y mysql - server
- 下载并添加 MySQL APT 仓库:
wget https://dev.mysql.com/get/mysql - apt - config_0.8.26 - 1_all.deb
sudo dpkg -i mysql - apt - config_0.8.26 - 1_all.deb
安装过程中,会弹出一个配置界面,可根据需求选择要安装的 MySQL 版本系列(如 MySQL 8.0、MySQL 5.7 等)以及其他相关选项,一般保持默认即可。
- 首先,访问MySQL APT Repository 页面,找到最新版本的mysql - apt - config包下载链接。例如,当前最新版本为mysql - apt - config_0.8.26 - 1_all.deb,使用wget命令下载:
- 下载完成后,安装该配置包:
- 更新 APT 仓库并安装 MySQL 服务器:添加完 MySQL 官方仓库后,更新系统软件包索引:
三、启动与配置 MySQL 服务
1.启动 MySQL 服务:安装完成后,MySQL 服务默认自动启动。但如果安装后未自动启动,或者你手动停止了服务,可通过以下命令启动:
sudo systemctl start mysql
2.设置开机自启:为确保系统每次启动时 MySQL 服务都能自动运行,执行:
sudo systemctl enable mysql
3.检查服务状态:使用以下命令查看 MySQL 服务是否正常运行:
sudo systemctl status mysql
若服务正常运行,输出中会显示Active: active (running)等字样。例如:
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2025 - 04 - 18 10:30:00 UTC; 1min ago
Main PID: 1234 (mysqld)
Status: "Server is operational"
Tasks: 38 (limit: 4687)
Memory: 200.0M
CGroup: /system.slice/mysql.service
└─1234 /usr/sbin/mysqld
四、MySQL 初始设置与安全加固
- 处理初始自动生成的用户名和密码(部分版本适用):在某些最新版本的 MySQL 安装过程中,系统会自动为root用户生成一个临时密码。需找到该临时密码并进行更改。
sudo grep 'temporary password' /var/log/mysql/error.log
输出类似如下:
(2025 - 04 - 18T10:30:00.123456Z) (Note) A temporary password is generated for root@localhost: xXxXxXxXxXx
记下该临时密码(例如xXxXxXxXxXx)。
sudo mysql_secure_installation
执行该脚本后,会被提示执行以下操作:
- 查找临时密码:安装完成后,MySQL 会将临时密码记录在日志文件中。使用以下命令查看日志并获取临时密码:
- 运行安全性脚本:为提高 MySQL 的安全性,并修改初始密码,建议运行官方提供的安全性脚本:
- 输入当前root密码:使用上一步骤中获取的临时密码。
- 设置新root密码:根据提示设置一个强密码,例如包含大写字母、小写字母、数字和特殊字符的组合,如MyNewP@ss123!。
- 移除匿名用户:建议选择移除,以提高安全性。
- 禁止远程root登录:建议禁止,减少安全风险。
- 移除测试数据库:建议移除,避免不必要的安全隐患。
- 重新加载权限表:选择 “是” 以应用更改。
2. 手动修改root初始密码:如果不想使用mysql_secure_installation脚本,也可手动修改root密码。
sudo mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewStrongPassword!';
FLUSH PRIVILEGES;
将YourNewStrongPassword!替换为你希望设置的新密码。
sudo mysql -u root -p
输入新密码后,应能成功登录。
- 登录 MySQL:使用当前root密码(如果是新安装且未设置过密码,可能为空或使用临时密码)登录 MySQL:
- 修改root密码:在 MySQL 命令行中执行以下命令以修改root用户的密码:
- 验证密码修改:退出 MySQL 并重新登录以验证新密码是否生效:
五、验证安装
- 登录 MySQL:使用设置好的root密码登录 MySQL:
mysql -u root -p
输入密码后,若成功登录,会进入 MySQL 命令行界面,显示类似如下提示符:
mysql>
2.检查 MySQL 版本:在 MySQL 命令行中运行以下命令查看版本信息:
SELECT VERSION();
输出结果类似:
+-----------+
| VERSION() |
+-----------+
| 8.0.33 |
+-----------+
这表明 MySQL 已成功安装并运行。
六、配置防火墙(可选)
如果你的 Ubuntu 系统启用了防火墙,且需要通过网络访问 MySQL,确保防火墙允许 MySQL 服务的端口(默认为 3306)的流量。
- 使用 UFW 防火墙:
sudo ufw allow 'MySQL'
或者更具体地允许 3306 端口的 TCP 流量:
sudo ufw allow 3306/tcp
sudo ufw reload
- 允许 MySQL 服务通过防火墙:执行以下命令:
- 重新加载防火墙规则:使设置生效:
2.使用其他防火墙(如 iptables):具体配置命令因防火墙规则管理方式而异。例如,使用iptables允许 3306 端口的 TCP 流量:
sudo iptables -A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
同时,可能需要保存iptables规则,以便系统重启后仍然生效。不同系统保存iptables规则的方式略有不同,例如在某些系统中可使用iptables - save > /etc/iptables/rules.v4命令保存规则。
七、注意事项
- 字符集设置:MySQL 默认字符集可能不符合需求,尤其是在处理包含非 ASCII 字符(如中文、日文等)的数据时。建议在安装完成后,修改 MySQL 配置文件(通常位于/etc/mysql/mysql.conf.d/mysqld.cnf)来设置合适的字符集。例如,在文件中添加或修改以下内容:
[mysqld]
character - set - server = utf8mb4
collation - server = utf8mb4_unicode_ci
然后重启 MySQL 服务使设置生效:
sudo systemctl restart mysql
注意,要先设置字符集再创建数据库和导入数据,否则数据库的字符集不会根据默认字符集改变而改变。
2.远程访问设置:默认情况下,MySQL 只允许本地访问。如果需要从远程主机访问 MySQL,除了配置防火墙允许 3306 端口流量外,还需修改 MySQL 的配置文件。在/etc/mysql/mysql.conf.d/mysqld.cnf文件中,找到并注释掉或修改bind - address这一行,将其值改为0.0.0.0,表示允许来自任何 IP 地址的连接(生产环境中应谨慎设置,建议只允许受信任的 IP 地址连接):
#bind - address = 127.0.0.1
bind - address = 0.0.0.0
然后重启 MySQL 服务。此外,还需在 MySQL 中为远程访问用户授权,例如创建一个新用户并授予其远程访问权限:
CREATE USER 'new_user'@'%' IDENTIFIED BY 'new_password';
GRANT ALL PRIVILEGES ON *.* TO 'new_user'@'%';
FLUSH PRIVILEGES;
这里new_user为新用户名,new_password为密码,%表示允许从任何主机连接。
3.备份与恢复:定期备份 MySQL 数据库至关重要,以防止数据丢失。可使用mysqldump命令进行数据库备份。例如,备份整个数据库:
mysqldump -u root -p your_database > backup.sql
其中your_database为要备份的数据库名称,backup.sql为备份文件名称。恢复备份时,可使用以下命令:
mysql -u root -p your_database < backup.sql
4.软件包更新与兼容性:定期更新 MySQL 软件包以获取最新功能和安全补丁。但在更新前,务必做好数据备份,并在测试环境中先进行更新测试,确保新版本与现有应用程序兼容,避免因软件包更新导致系统或应用程序出现问题。
通过以上步骤和注意事项,你应该能够顺利在 Ubuntu 系统上安装、配置和使用 MySQL 数据库,并保障其安全性和稳定性。