在第一篇我们讲解了MySQL8.0基本使用.这一篇我们主要讲MySQL 8.0 的安全设置。
1 初始安全设置
MySQL 安装完成后,进行一些初始安全设置至关重要,以防止未经授权的访问和潜在的安全风险。本节将介绍如何通过 mysql_secure_installation 脚本和其他手动配置来加强 MySQL 的安全性。
1.1 运行 mysql_secure_installation 脚本
mysql_secure_installation 是一个交互式脚本,用于执行一系列重要的安全设置。强烈建议在 MySQL 安装完成后立即运行此脚本。
在 Linux/macOS 上,通常使用 sudo 运行:
Bash
sudo mysql_secure_installation
在 Windows 上,以管理员身份运行命令提示符或 PowerShell,然后执行:
Bash
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql_secure_installation.exe" # 根据你的实际安装路径修改
脚本会提示你进行以下设置:
- Validate Password Component: 是否启用密码强度验证组件。如果启用,你需要设置密码策略(LOW、MEDIUM 或 STRONG)。建议启用并选择 MEDIUM 或 STRONG 策略,以强制使用更复杂的密码。
- Change the root password: 设置或修改 root 用户的密码。这是最重要的步骤!请务必设置一个强密码并牢记!
- Remove anonymous users?: 是否删除匿名用户。建议删除。
- Disallow root login remotely?: 是否禁止 root 用户从远程登录。建议禁止。
- Remove test database and access to it?: 是否删除测试数据库及其访问权限。建议删除。
- Reload privilege tables now?: 是否立即重新加载权限表。选择 Yes。
1.2 手动安全设置(补充 mysql_secure_installation)
除了 mysql_secure_installation 脚本,还可以进行一些手动配置来进一步增强安全性。
-
限制 root 用户的访问来源:
即使禁止了 root 用户远程登录,也应该限制 root 用户只能从本地连接。可以通过修改 MySQL 的用户权限表来实现。
连接到 MySQL 服务器:
Bashmysql -u root -p执行以下 SQL 语句:
SQLALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewStrongPassword!'; -- 再次设置root密码,确保密码强度 FLUSH PRIVILEGES;检查 root 用户的 host 信息:
SQLSELECT host, user FROM mysql.user WHERE user='root';确保 root 用户只有
'localhost'或'127.0.0.1'的 host。 -
创建普通用户进行日常操作:
不要使用 root 用户进行日常数据库操作。应该创建具有必要权限的普通用户。
SQLCREATE USER 'myuser'@'localhost' IDENTIFIED BY 'MyUserPassword!'; GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost'; -- 授予 mydatabase 数据库的所有权限 FLUSH PRIVILEGES; -
修改 MySQL 监听地址(可选):
默认情况下,MySQL 监听所有网络接口。如果你的服务器只有内部网络访问需求,可以修改 MySQL 的配置文件 (
Ini, TOMLmy.cnf或my.ini),将bind-address设置为127.0.0.1,只允许本地连接。[mysqld] bind-address = 127.0.0.1修改后需要重启 MySQL 服务

最低0.47元/天 解锁文章
1169

被折叠的 条评论
为什么被折叠?



