mysql故障案例

本文详细记录了在MySQL中遇到的授权失败问题及其解决过程。包括创建数据库、授予权限时出现的连接丢失问题,通过检查权限设置、更新权限变量及重启服务等步骤最终解决了授权失败的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

##错误: ERROR 1044 (42000): Access denied for user 'root'@'%' to database 'dede'

mysql> create database dede;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 47299
Current database: NONE

Query OK, 1 row affected (0.00 sec)

mysql> grant all privileges on dede.* to 'dede'@'localhost' identified by 'dede123'; ##授权时执行失败
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 47302
Current database: NONE

ERROR 1044 (42000): Access denied for user 'root'@'%' to database 'dede' ##拒绝访问的用户

解决:
mysql> select Grant_priv from mysql.user where Host='localhost'; ##N代表没有权限
+------------+
| Grant_priv |
+------------+
| N |
| N |
| N |
+------------+
3 rows in set (0.00 sec)

mysql> select Grant_priv from mysql.user where Host='127.0.0.1';
+------------+
| Grant_priv |
+------------+
| Y |
+------------+
1 row in set (0.00 sec)

mysql> update mysql.user set Grant_priv='Y' where Host='localhost';
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 47312
Current database: NONE

Query OK, 3 rows affected (0.01 sec)
Rows matched: 3 Changed: 3 Warnings: 0

mysql> select Grant_priv from mysql.user where Host='localhost';
+------------+
| Grant_priv |
+------------+
| Y |
| Y |
| Y |
+------------+
3 rows in set (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on dede.* to 'dede'@'localhost' identified by 'dede123';
ERROR 1044 (42000): Access denied for user 'root'@'%' to database 'dede'

mysql> show variables like 'read_only'
-> ;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 47323
Current database: NONE

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| read_only | OFF |
+---------------+-------+
1 row in set (0.00 sec)

mysql> show global variables like 'max_allowed_packet'; ##查看max_allowed_packet的值,默认是1MB
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 47339
Current database: NONE

+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 1048576 |
+--------------------+---------+
1 row in set (0.00 sec)
mysql> set global max_allowed_packet=1024102416; ##临时修改max_allowed_packet值为16MB,重启失效
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 47341
Current database: NONE

Query OK, 0 rows affected (0.00 sec)

mysql> show global variables like 'max_allowed_packet'; ##查看.,临时已生效
+--------------------+----------+
| Variable_name | Value |
+--------------------+----------+
| max_allowed_packet | 16777216 |
+--------------------+----------+
1 row in set (0.00 sec)

mysql> grant all privileges on dede.* to 'dede'@'localhost' identified by 'dede123'; ###grant授权用户成功
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 47347
Current database: NONE

Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

###永久修改参数
[root@118 ~]# vim /etc/my.cnf
[mysqld]
max_allowed_packet = 16M

mysql 重启生效

转载于:https://blog.51cto.com/2416402119/2169953

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值