别再折腾了!Ubuntu 22.04 LTS 上 MySQL 5.7 最稳安装与配置(附密码重置、中文支持)
2026/6/2 18:58:32 网站建设 项目流程

Ubuntu 22.04 LTS 上 MySQL 5.7 终极安装指南:从避坑到精通

当你在Ubuntu 22.04 LTS上尝试安装MySQL 5.7时,可能会发现官方仓库默认提供的是MySQL 8.0版本。这就像走进一家咖啡店想要经典拿铁,却被推荐最新款的特调——虽然也不错,但可能并不是你想要的。本文将带你绕过所有常见陷阱,从版本锁定到密码设置,再到中文支持,一步步实现MySQL 5.7的完美安装。

1. 为什么选择MySQL 5.7而非默认版本

MySQL 5.7作为长期支持(LTS)版本,截至2023年仍然是许多企业应用的首选。与MySQL 8.0相比,5.7版本具有以下优势:

  • 稳定性:经过多年生产环境验证,bug更少
  • 兼容性:对旧应用的兼容性更好
  • 资源占用:内存和CPU消耗相对较低
  • 学习曲线:文档和社区支持更成熟

提示:虽然MySQL 8.0带来了许多新特性,但如果你维护的是旧系统或需要特定版本的兼容性,5.7仍然是更稳妥的选择。

2. 安装前的系统准备

在开始安装前,我们需要确保系统环境干净并添加正确的软件源。

2.1 清理可能的旧版本

sudo apt remove --purge mysql* mariadb* sudo apt autoremove sudo apt autoclean sudo rm -rf /etc/mysql /var/lib/mysql

2.2 添加MySQL 5.7专用APT源

Ubuntu 22.04默认仓库不再包含MySQL 5.7,我们需要手动添加官方仓库:

wget https://dev.mysql.com/get/mysql-apt-config_0.8.22-1_all.deb sudo dpkg -i mysql-apt-config_0.8.22-1_all.deb

在安装过程中,选择"MySQL Server & Cluster"然后选择"mysql-5.7",最后选择"OK"确认。

更新软件包列表:

sudo apt update

3. 安装MySQL 5.7核心组件

现在可以开始安装MySQL服务器和客户端工具:

sudo apt install -y mysql-server mysql-client libmysqlclient-dev

安装过程中,系统会提示设置root密码。这是新版安装程序的一个改进,避免了旧版自动生成密码的麻烦。

安装完成后,检查服务状态:

systemctl status mysql

你应该看到类似这样的输出,表示服务正在运行:

● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2023-05-18 10:23:45 UTC; 1min 23s ago

4. 安全配置与密码管理

即使安装时设置了密码,我们仍建议运行安全脚本:

sudo mysql_secure_installation

这个脚本会引导你完成以下安全设置:

  1. 验证密码强度插件
  2. 移除匿名用户
  3. 禁止root远程登录
  4. 移除测试数据库
  5. 立即重新加载权限表

5. 解决常见安装后问题

5.1 无法用root密码登录

如果你遇到使用设置的密码无法登录的情况,可以尝试以下解决方法:

sudo mysql -u root

进入MySQL后执行:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的新密码'; FLUSH PRIVILEGES;

5.2 修改默认认证插件

MySQL 8.0默认使用caching_sha2_password插件,而5.7使用mysql_native_password。为确保兼容性:

SELECT plugin FROM mysql.user WHERE User = 'root';

如果显示不是mysql_native_password,可以修改:

UPDATE mysql.user SET plugin='mysql_native_password' WHERE User='root'; FLUSH PRIVILEGES;

6. 配置中文支持与字符集

确保你的MySQL能够正确处理中文数据需要正确配置字符集。

6.1 检查当前字符集设置

SHOW VARIABLES LIKE 'character_set%'; SHOW VARIABLES LIKE 'collation%';

6.2 永久修改字符集配置

编辑MySQL配置文件:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

在[mysqld]部分添加:

[mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci

重启MySQL服务使更改生效:

sudo systemctl restart mysql

6.3 数据库级别的字符集设置

创建新数据库时指定字符集:

CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

或者修改现有数据库:

ALTER DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

7. 性能调优基础配置

MySQL 5.7默认配置适合开发环境,生产环境需要调整。以下是几个关键参数:

参数推荐值说明
innodb_buffer_pool_size系统内存的50-70%InnoDB缓冲池大小
max_connections100-300最大连接数
innodb_log_file_size256M-2G日志文件大小
query_cache_size0查询缓存大小(MySQL 8.0已移除)

编辑配置文件:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

添加或修改以下内容:

[mysqld] innodb_buffer_pool_size = 1G max_connections = 200 innodb_log_file_size = 256M query_cache_size = 0 query_cache_type = 0

8. 日常维护与管理技巧

8.1 备份与恢复

使用mysqldump进行备份:

mysqldump -u root -p --all-databases > full_backup.sql

恢复备份:

mysql -u root -p < full_backup.sql

8.2 监控数据库状态

常用监控命令:

-- 查看运行中的进程 SHOW PROCESSLIST; -- 查看引擎状态 SHOW ENGINE INNODB STATUS; -- 查看系统变量 SHOW VARIABLES; -- 查看系统状态 SHOW STATUS;

8.3 定期维护任务

  1. 优化表:定期对频繁修改的表进行优化

    OPTIMIZE TABLE important_table;
  2. 检查修复表:特别是非正常关机后

    CHECK TABLE important_table; REPAIR TABLE important_table;
  3. 清理二进制日志(如果启用了二进制日志)

    PURGE BINARY LOGS BEFORE '2023-05-01 00:00:00';

9. 升级到MySQL 8.0的注意事项

虽然本文重点介绍MySQL 5.7,但如果你未来考虑升级到8.0版本,需要注意:

  1. 版本兼容性:检查应用是否支持MySQL 8.0
  2. 认证插件变更:默认使用caching_sha2_password
  3. 保留配置:备份my.cnf文件
  4. 测试环境验证:先在测试环境验证升级过程
  5. 升级路径:不能直接从5.6升级到8.0,需要先升级到5.7

升级前务必阅读官方升级指南并进行完整备份。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询