mysql root 用户 grant 报错

一台mysql数据,使用root用户登录,-h指定的127.0.0.1,执行grant操作时报错:
ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)

检查root用户权限,已经有了super和grant权限了:

mysql> SELECT host,user,password,Grant_priv,Super_priv FROM mysql.user where user = 'root' \G;
*************************** 1. row ***************************
      host: 127.0.0.1
      user: root
  password: *66EF9***************************
Grant_priv: Y
Super_priv: Y
*************************** 2. row ***************************
      host: localhost
      user: root
  password: *66EF9***************************
Grant_priv: Y
Super_priv: Y

找了半天原因,排除了本机host,连接方式以及user表中host列为%的干扰,始终无法授权新用户,见了鬼了。
后来有说是因为数据库升级导致的,但是这个mysql并没有升级,版本一直为5.5
最后还是按照升级后出现无法grant的解决办法,执行了如下操作:

# mysql_upgrade -h127.0.0.1 -uroot -p'mypasswd'
Looking for 'mysql' as: mysql
Looking for 'mysqlcheck' as: mysqlcheck
mysql.Ghost                                        OK
mysql.columns_priv                                 OK
mysql.db                                           OK
mysql.ertyui                                       OK
mysql.event                                        OK
mysql.func                                         OK
mysql.general_log                                  OK
mysql.help_category                                OK
mysql.help_keyword                                 OK
mysql.help_relation                                OK
mysql.help_topic                                   OK
mysql.host                                         OK
mysql.myhexc                                       OK
mysql.ndb_binlog_index                             OK
mysql.plugin                                       OK
mysql.proc                                         OK
mysql.procs_priv                                   OK
mysql.proxies_priv                                 OK
mysql.servers                                      OK
mysql.slow_log                                     OK
mysql.tables_priv                                  OK
mysql.tempEx                                       OK
mysql.tempExT                                      OK
mysql.tempExT1                                     OK
mysql.tempMix1                                     OK
mysql.time_zone                                    OK
OK
。。。

现在再执行grant操作,发现可以了,特此记录一下。

u2

Related Posts

mysql连接失败:The driver has not received any packets from the server

解决java spring连接mysql报错问题,增加连接串参数

Read more

python cx-Oracle 驱动安装

安装oracle驱动 cx-Oracle驱动二进制版本下载地…

Read more

You Missed

当AI开始”破坏”:Anthropic告诉我们,每个用户都该重新审视自己的使用方式

  • u2
  • 6月 6, 2026
  • 7 views

10款大模型同台黑客测试:GPT-5.5拿了王冠,DeepSeek便宜15倍,Gemini直接退赛

  • u2
  • 6月 5, 2026
  • 28 views

30天,0天,90天:一纸行政令,把AI公司的”自由发布”踩了急刹车

  • u2
  • 6月 4, 2026
  • 37 views

AI很厉害,可你省的人力费还不够买Token!

  • u2
  • 6月 2, 2026
  • 57 views

RSI取代AGI成为新热词:AI能自我进化吗?

  • u2
  • 5月 30, 2026
  • 112 views

纳斯达克指数创历史新高–全球资本对科技产业未来的重新定价!

  • u2
  • 5月 29, 2026
  • 110 views