首先停止mysql服务:service mysqld stop
加参数启动mysql:/usr/bin/mysqld_safe --skip-grant-tables &
root用户登陆系统:mysql -u root -p mysql
切换数据库:use mysql
显示所有的表:show tables;
查看user表中root用户的localhost权限:select * from user where user='root' and host='localhost'
在显示的列表中显示:root用户的localhost的权限都是'N',表示root用户本地登陆不具有权限
修改root用户的localhost权限:
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 user='root' and host='localhost
更新一下:flush privileges;
然后重新启动下mysql service mysqld stop
可以解决问题了