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

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

修改密码语法

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

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.%' 不存在,需先创建用户:

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

授予该用户所有权限:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.56.%' WITH GRANT OPTION;
步骤 3:刷新权限

确保权限立即生效:

FLUSH PRIVILEGES;

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

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

-- 刷新权限
FLUSH PRIVILEGES;

验证用户是否存在

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

SELECT User, Host FROM mysql.user WHERE User = 'root';

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

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)

  • 参数说明:
UserHost说明
root192.168.56.%允许从 192.168.56.0/24 网段内的任意 IP 地址连接 MySQL,用户名为 root% 表示通配符,匹配同一网段的所有 IP。
mysql.sessionlocalhostMySQL 内置的只读用户,用于维护会话相关的系统功能,通常不需要手动操作。
mysql.syslocalhostMySQL 内置用户,用于访问 sys 数据库(系统监控和诊断工具),通常不需要手动操作。
rootlocalhost本地管理员账户,仅允许从本机(localhost)连接 MySQL,用户名为 root。这是最常见的管理员账户。

关键概念说明
  1. userhost 的组合
    MySQL 中,用户账户由 userhost 共同唯一标识。例如:

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

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

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

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

二、 常见操作建议

1. 查看用户权限

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

SHOW GRANTS FOR 'root'@'localhost';
2. 修改用户权限

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

REVOKE ALL PRIVILEGES ON *.* FROM 'root'@'192.168.56.%';
3. 删除用户

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

DROP USER 'root'@'192.168.56.%';
#或者
DROP USER IF EXISTS 'root'@'%';

4. 刷新权限

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

FLUSH PRIVILEGES;

三、 安全提示:

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

常见问题排查

1. 如果用户已存在
  • 删除旧用户(谨慎操作):
    DROP USER 'root'@'192.168.56.%';
    #或者
    DROP USER IF EXISTS 'root'@'%';
    
    
  • 重新执行上述创建和授权步骤。
2. 如果报错 ERROR 1396 (HY000)
  • 确保 MySQL 版本支持 CREATE USER(MySQL 5.7+)。
  • 如果使用旧版本(如 MySQL 5.6),改用以下语法:
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.56.%' IDENTIFIED BY 'passwd';
    
3. 如果登录失败
  • 检查密码是否正确(注意大小写和特殊字符)。
  • 确保客户端连接使用的主机名匹配 192.168.56.%(例如 192.168.56.1)。
<think>好的,用户现在有一堆MySQL 5.7的RPM包,想知道安装完这些文件后下一步该怎么做。首先,我需要确认这些RPM包都是什么,然后安装顺序是否正确。记得在安装MySQL的RPM包时,通常有依赖关系,必须先安装common、libs这些基础包,再安装client、server等。 用户用的是CentOS 7或者RHEL 7,因为包名里有el7。可能需要检查是否已经安装了MariaDB,因为CentOS默认可能带有,这会导致冲突。所以可能需要先卸载MariaDB相关的包。 安装顺序的话,通常按照common -> libs -> libs-compat -> client -> server这样的顺序来。用户列出的包很多,可能包括devel、embedded这些,但用户可能只需要核心组件。如果用户只是安装MySQL服务器,可能不需要devel或者test这些包,但既然用户已经下载了,可能需要全部安装。 安装完成后,启动服务,然后运行安全脚本,设置root密码,移除匿名用户等。最后可能需要配置开机启动。另外,可能需要打开防火墙端口3306,如果用户有防火墙的话。 还要考虑SELinux的状态,有时候需要调整策略,但大部分情况下默认配置应该可以工作。需要提醒用户修改密码,可能还有远程访问的配置,如果需要的话。 用户可能不太清楚这些步骤,所以需要详细说明每一步的命令,比如用yum localinstall安装,systemctl启动服务,mysql_secure_installation等。同时要确保命令正确,避免权限问题,比如是否用sudo执行。 另外,可能需要检查安装过程中是否有依赖缺失,如果用户使用rpm或者yum安装的话,yum会自动解决依赖,但如果是手动安装可能需要处理依赖问题。不过用户提供的包列表比较全,可能已经包含所需依赖,但需要确认顺序正确。 最后,测试连接,确保MySQL服务正常运行,能够登录。如果有错误日志,可能需要查看/var/log/mysqld.log来排查问题。</think>以下是安装这些MySQL 5.7 RPM包后的操作步骤: --- ### 一、安装前检查 1. **卸载MariaDB** (CentOS 7默认自带) ```bash sudo yum remove mariadb-libs ``` 2. **安装依赖** ```bash sudo yum install libaio perl net-tools ``` --- ### 二、按顺序安装RPM包 ```bash # 按依赖顺序依次安装(建议使用yum自动处理依赖) sudo yum localinstall mysql-community-common-5.7.37-1.el7.x86_64.rpm \ mysql-community-libs-5.7.37-1.el7.x86_64.rpm \ mysql-community-libs-compat-5.7.37-1.el7.x86_64.rpm \ mysql-community-client-5.7.37-1.el7.x86_64.rpm \ mysql-community-server-5.7.37-1.el7.x86_64.rpm \ mysql-community-devel-5.7.37-1.el7.x86_64.rpm \ mysql-community-embedded-5.7.37-1.el7.x86_64.rpm \ mysql-community-embedded-compat-5.7.37-1.el7.x86_64.rpm \ mysql-community-embedded-devel-5.7.37-1.el7.x86_64.rpm \ mysql-community-test-5.7.37-1.el7.x86_64.rpm ``` --- ### 三、初始化配置 1. **启动MySQL服务** ```bash sudo systemctl start mysqld sudo systemctl enable mysqld ``` 2. **获取临时密码** ```bash sudo grep 'temporary password' /var/log/mysqld.log ``` 3. **运行安全脚本** ```bash sudo mysql_secure_installation ``` - 输入临时密码 - 设置新密码(需包含大小写字母、数字、特殊字符) - 移除匿名用户、禁止远程root登录等 --- ### 四、验证安装 1. **登录MySQL** ```bash mysql -u root -p ``` 2. **查看版本号** ```sql SELECT VERSION(); ``` --- ### 五、可选配置 1. **防火墙开放3306端口** ```bash sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent sudo firewall-cmd --reload ``` 2. **修改字符集(可选)** 编辑 `/etc/my.cnf`,在 `[mysqld]` 下添加: ```ini character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci ``` --- ### 六、故障排查 - **错误日志路径**:`/var/log/mysqld.log` - **重置权限**:`mysql_upgrade -u root -p` --- 通过以上步骤即可完成MySQL 5.7的安装基础配置。建议优先使用 `yum localinstall` 命令自动处理依赖关系,避免手动安装顺序错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值