3 回答

TA贡献2065条经验 获得超14个赞
注意输出
SHOW GRANTS FOR 'root'@'localhost';
没有说“ ALL PRIVILEGES”,而是不得不说出root @ localhost的含义。
授予所有特权将失败,因为用户无法授予他/她没有的特权,并且服务器似乎认为这里不存在某些东西...
现在,接下来缺少什么呢?
在我的系统上,我得到以下信息:
mysql> select version();
+------------+
| version() |
+------------+
| 5.5.21-log |
+------------+
1 row in set (0.00 sec)
mysql> SHOW GRANTS FOR 'root'@'localhost';
+---------------------------------------------------------------------+
| Grants for root@localhost |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION |
+---------------------------------------------------------------------+
2 rows in set (0.00 sec)
mysql> SELECT * FROM mysql.user WHERE User='root' and Host='localhost'\G
*************************** 1. row ***************************
Host: localhost
User: root
Password:
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: Y
Drop_priv: Y
Reload_priv: Y
Shutdown_priv: Y
Process_priv: Y
File_priv: Y
Grant_priv: Y
References_priv: Y
Index_priv: Y
Alter_priv: Y
Show_db_priv: Y
Super_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Execute_priv: Y
Repl_slave_priv: Y
Repl_client_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: Y
Create_user_priv: Y
Event_priv: Y
Trigger_priv: Y
Create_tablespace_priv: Y <----------------------------- new column in 5.5
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
plugin: <------------------------------- new column in 5.5
authentication_string: <------------------------------- new column in 5.5
1 row in set (0.00 sec)
5.5中还有一些新表,例如mysql.proxies_user:确保您拥有它们。
安装全新的mysql服务器实例时,安装脚本将创建具有适当结构的所有mysql。*表。
从旧版本升级时,请确保使用正确的升级过程(mysql_upgrade),它将添加缺少的表/列。
这只是一个猜测,但似乎该实例的mysql_upgrade未完成,导致出现了这种现象。

TA贡献1780条经验 获得超5个赞
当我尝试安装比发行版随附的MySQL版本更高的MySQL版本时,发生了这种情况。
我删除了旧版本,然后安装了新版本(rpm -e ...然后是rpm -i MySQL-server *),但没有意识到/ var / lib / mysql中的文件仍然来自较早版本(区别在于由Marc Alff解释-谢谢!)
我本可以做一个mysql_upgrade,但是由于我想从头开始,所以我做了:
# su - mysql
$ rm -rf /var/lib/mysql/*
$ mysql_install_db
# /etc/init.d/mysql start
然后设置root密码(/ usr / bin / mysqladmin -u root密码),所有命令都可以通过GRANT命令正常工作...
添加回答
举报