MySQL-5.7 修改密码和连接访问权限

一、MySQL-5.7 修改密码和连接权限设置

修改密码语法

注意:root@localhost 和 root@192.168.56.% 是两个不同的用户。在修改密码时,两个用户的密码是各自分别保存,如果两个用户密码设置不一样则登陆时注意登陆密码

sql 复制代码
GRANT ALL PRIVILEGES ON *.* TO 'user'@'host' IDENTIFIED BY 'passwd';
语法参数说明:
命令部分 作用
GRANT ALL PRIVILEGES 授予所有权限,授予用户 所有权限(包括 SELECT、INSERT、UPDATE、DELETE、CREATE、DROP 等,ALL PRIVILEGES 是 MySQL 中权限的最高级别,允许用户操作所有数据库和表。)
ON *.* 作用于所有数据库和表,第1个 * 表示所有数据库。第2个 * 表示所有表。
TO 'root'@'192.168.56.%' 允许192.168.56.0/24网段内所有IP 连接
IDENTIFIED BY 'Engin2019123456' 设置密码

操作步骤

步骤 1:创建用户并设置密码

如果用户 'root'@'192.168.56.%' 不存在,需先创建用户:

sql 复制代码
CREATE USER 'root'@'192.168.56.%' IDENTIFIED BY 'password';
步骤 2:授予权限

授予该用户所有权限:

sql 复制代码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.56.%';
步骤 3:刷新权限

确保权限立即生效:

sql 复制代码
FLUSH PRIVILEGES;

完整sql实现方法
sql 复制代码
-- 创建用户并设置密码
CREATE USER 'root'@'192.168.56.%' IDENTIFIED BY 'passworld';

-- 授予所有权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.56.%';

-- 刷新权限
FLUSH PRIVILEGES;

验证用户是否存在

查看 MySQL 数据库root用户和允许连接的主机(host)信息的语法:

sql 复制代码
SELECT User, Host FROM mysql.user WHERE User = 'root';

查看 MySQL 数据库中所有用户的用户名和允许连接的主机(host)信息的语法

sql 复制代码
SELECT user, host FROM mysql.user;
复制代码
mysql> SELECT user, host FROM mysql.user;
+---------------+--------------+
| user          | host         |
+---------------+--------------+
| root          | 192.168.56.% |
| mysql.session | localhost    |
| mysql.sys     | localhost    |
| root          | localhost    |
+---------------+--------------+
4 rows in set (0.03 sec)
  • 参数说明:
User Host 说明
root 192.168.56.% 允许从 192.168.56.0/24 网段内的任意 IP 地址连接 MySQL,用户名为 root。% 表示通配符,匹配同一网段的所有 IP。
mysql.session localhost MySQL 内置的只读用户,用于维护会话相关的系统功能,通常不需要手动操作。
mysql.sys localhost MySQL 内置用户,用于访问 sys 数据库(系统监控和诊断工具),通常不需要手动操作。
root localhost 本地管理员账户,仅允许从本机(localhost)连接 MySQL,用户名为 root。这是最常见的管理员账户。

关键概念说明
  1. user 和 host 的组合

    MySQL 中,用户账户由 user 和 host 共同唯一标识。例如:

    • root@localhost 和 root@192.168.56.% 是两个不同的用户。在修改密码时,两个用户的密码各自分别保存,如果两个用户密码设置不一样则登陆时注意登陆密码
    • host 字段支持通配符(如 % 表示任意主机,localhost 表示本机)。
  2. root@192.168.56.% 的用途

    • 允许从 192.168.56.0/24 网段内的任意 IP 连接 MySQL(例如 192.168.56.1、192.168.56.100 等)。
    • 通常用于远程管理 MySQL 数据库(需确保防火墙开放对应端口)。
  3. localhost 的特殊性

    • localhost 表示本地连接(通过 Unix 套接字或本地 TCP/IP 连接)。
    • 与 IP 地址 127.0.0.1 不同,localhost 优先使用 Unix 套接字文件(而非 TCP/IP 协议)。
  4. 内置用户(mysql.session 和 mysql.sys)

    • mysql.session:用于系统内部维护会话状态,权限受限,通常不可删除。
    • mysql.sys :用于访问 sys 数据库(包含性能视图和监控工具),权限受限。

二、 常见操作建议

1. 查看用户权限

如果需要查看某个用户的权限,可以执行:

sql 复制代码
SHOW GRANTS FOR 'root'@'localhost';
2. 修改用户权限

如果需要限制 root@192.168.56.% 的权限,可以使用 REVOKE 或 GRANT 命令。例如:

sql 复制代码
REVOKE ALL PRIVILEGES ON *.* FROM 'root'@'192.168.56.%';
3. 删除用户

如果不再需要某个用户,可以删除:

sql 复制代码
DROP USER 'root'@'192.168.56.%';
4. 刷新权限

修改用户或权限后,需执行以下命令使更改生效:

sql 复制代码
FLUSH PRIVILEGES;

三、 安全提示:

  • 最小化权限 :避免为 root 用户分配不必要的权限(尤其是远程访问)。
  • 限制 host 范围 :如果不需要远程连接,建议删除 root@192.168.56.% 或将其 host 限制为具体 IP。
  • 禁用匿名用户 :确保没有 ''@'%' 或 ''@'localhost' 的匿名账户(可通过 SELECT User, Host FROM mysql.user WHERE User = ''; 检查)。

常见问题排查

1. 如果用户已存在
  • 删除旧用户 (谨慎操作):

    sql 复制代码
    DROP USER 'root'@'192.168.56.%';
  • 重新执行上述创建和授权步骤。

2. 如果报错 ERROR 1396 (HY000)
  • 确保 MySQL 版本支持 CREATE USER(MySQL 5.7+)。

  • 如果使用旧版本(如 MySQL 5.6),改用以下语法:

    sql 复制代码
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.56.%' IDENTIFIED BY 'passwd';
3. 如果登录失败
  • 检查密码是否正确(注意大小写和特殊字符)。
  • 确保客户端连接使用的主机名匹配 192.168.56.%(例如 192.168.56.1)。
相关推荐
EnCi Zheng18 小时前
PostgreSQL 实战指南:安装配置、数据类型、索引选型、MVCC 事务与高可用备份全解析
数据库·sql·postgresql·索引·1024程序员节
泡海椒19 小时前
JQuick-SQL REST API 数据接入:应用层调用接口后注册分析表
数据库·sql·1024程序员节
Random Glow19 小时前
聚簇索引 vs 二级索引:回表、覆盖索引、索引下推
数据库·mysql·性能优化·innodb·1024程序员节·索引优化
要开心吖ZSH20 小时前
一次线上锁风暴复盘:号源表大范围 DELETE 的隐患与分批删除改造
数据库·mysql·行锁·1024程序员节·间隙锁·lockwaittimeout
l1t21 小时前
在windows中测试musql数据库
数据库·sqlite·go·1024程序员节
鬼手点金1 天前
从 API 消息到模型 Token:Chat Template
java·前端·javascript·数据库·人工智能·深度学习·1024程序员节
CRMEB系统商城1 天前
Redis + 消息队列 + 连接池:CRMEB PRO 性能优化的三驾马车
大数据·数据库·人工智能·小程序·php·1024程序员节
鸽芷咕1 天前
KingbaseES SQL 调优六步法:定位、诊断、下药、验证,一步都别省
数据库
黄俊懿1 天前
【架构师从入门到进阶】第七章:缓存和存储的优化思路——第一节:缓存概述
数据结构·数据库·分布式·缓存·架构·系统架构·1024程序员节