Ubuntu 系统 MySQL 全面管理指南(认证、用户、密码、服务及安全)
在 Ubuntu 系统中管理 MySQL 需结合其服务特性(systemctl
管理)、版本差异(MySQL 5.7/8.0 核心区别:如认证插件、权限表),以下从 认证方式修改、远程用户管理、密码修改、服务监控、开机自启 及常用操作展开,覆盖核心场景与注意事项。
一、MySQL 登录认证方式修改(核心:适配不同客户端兼容性)
MySQL 8.0 默认使用 caching_sha2_password
认证插件(安全性高,但部分旧客户端(如 Navicat 11 及以下)不兼容);MySQL 5.7 默认 mysql_native_password
(兼容性好,安全性较低)。可针对单个用户或全局修改认证方式。
1. 查看当前用户的认证方式
登录 MySQL 后执行(需 root
权限):
-- 查看所有用户的认证插件(user 列是用户名,plugin 列是认证方式)
SELECT user, host, plugin FROM mysql.user;
2. 修改指定用户的认证方式(如 root 或普通用户)
示例 1:将 root 用户改为 mysql_native_password
(兼容旧客户端)
-- 1. 登录 MySQL(需现有密码)
sudo mysql -u root -p-- 2. 修改认证方式并重置密码(密码需符合复杂度,如 'Root@123456')
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';-- 3. 刷新权限(立即生效)
FLUSH PRIVILEGES;
示例 2:全局默认认证方式改为 mysql_native_password
(新创建用户默认用此方式)
- 编辑 MySQL 配置文件(Ubuntu 中路径通常为
/etc/mysql/my.cnf
或/etc/mysql/mysql.conf.d/mysqld.cnf
):sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
- 在
[mysqld]
段落下添加一行:default_authentication_plugin=mysql_native_password
- 重启 MySQL 服务生效:
sudo systemctl restart mysql
二、添加 MySQL 远程用户(允许外部机器连接)
默认 MySQL 仅允许 localhost
(本地)登录,需手动创建 远程用户 并配置权限(注意:避免直接开放 root
远程登录,优先创建专用远程用户)。
步骤 1:配置 MySQL 允许远程连接(修改绑定地址)
- 编辑配置文件,注释或修改
bind-address
(允许所有 IP 连接,或指定特定 IP):sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
- 找到 <