mysql grant命令|MySQL执行GRANT命令时报错ERROR 1045解决办法

时间:2020-09-25  来源:Access  阅读:

在MySQL执行GRANT命令时出现如下错误内容。

mysql> grant all on *.* to ...
ERROR 1045 (28000): Access denied for user "root"@"localhost" (using password: YES)

调查内容

mysql.user表

不小心把mysql.user表清除了的话,可以追加root用户,但这次好像不是这个问题。

mysql> select user,host, password from mysql.user
+---------+-----------+-----------+
| user    | host      | password  |
+---------+-----------+-----------+
| root    | localhost | *XXX1     |
| root    | 127.0.0.1 | *XXX2     |
| zabbix  | localhost | *XXX3     |
+---------+-----------+-----------+
super用户权限

查看用户权限拥有super用户权限。

mysql> show grants
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES,
INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE,
REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER
ON *.* TO "root"@"localhost" IDENTIFIED BY PASSWORD "*XXXX" WITH GRANT OPTION
查看MySQL版本

查看MySQL版本不知何时从5.1升级为5.5了,确认/var/log/yum.log发现yum安装别的软件的时候MySQL版本也同时被升级了。

对应内容

因为表的结构是5.1版本的因此无法在版本5.5追加用户,执行mysql_upgrade之后,就可以正常的追加用户了。

# mysql_upgrade -u root -p
Enter password:
Looking for "mysql" as: mysql
Looking for "mysqlcheck" as: mysqlcheck
Running "mysqlcheck with default connection arguments
Running "mysqlcheck with default connection arguments
mysql.columns_priv                                 OK
mysql.db                                           OK
mysql.event                                        OK
mysql.func                                         OK
...
执行GRANT命令成功!

mysql> grant all on *.* to ...
Query OK, 0 rows affected (0.00 sec)

结语

在升级MySQL后需要执行mysql_upgrade命令。mysql_upgrade会确认数据库的表结构和最新MySQL Server的互换性。当表和现在的MySQL Server没有互换性的时候,会确认该表并修复此表。并且mysql_upgrade命令会升级MySQL使用的表(即System Table),可使用版本升级后的新权限及新功能。

mysql grant命令|MySQL执行GRANT命令时报错ERROR 1045解决办法

http://m.bbyears.com/shujuku/100810.html

推荐访问:
相关阅读 猜你喜欢
本类排行 本类最新