以root用户登录mysql,执行以下执行:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
+--------------------+
没有mysql库、 performance_schema库的相关信息,再使用以下执行:
mysql> show grants;
+--------------------------------------+
| Grants for @localhost |
+--------------------------------------+
| GRANT USAGE ON *.* TO ''@'localhost' |
+--------------------------------------+
发现localhost没有匹配用户。
解决方法如下:
/etc/init.d/mysqld_3306 stop
打开mysql安装目录下的bin目录
cd /usr/local/mysql3306/bin
./mysqld_safe --grant-skip-tables //跳过mysql权限检查
再以root用户登录到mysql中,执行以下语句:
update user set 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' where host='localhost';
关闭mysql:
/etc/init.d/mysqld_3306 restart
以root登录mysql执行以下语句:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
查看当前root用户权限:
mysql> show grants;
+-----------------------------------------------------------------+
| Grants for @localhost |
+-----------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO ''@'localhost' WITH GRANT OPTION |
+-----------------------------------------------------------------+
本文详细介绍了如何通过root用户登录MySQL,解决本地主机下无匹配用户的权限问题,并最终赋予root用户所有权限。包括停止MySQL服务、跳过权限检查启动MySQL、更新root用户权限、再次检查权限及验证权限是否正确赋权。
4407

被折叠的 条评论
为什么被折叠?



