问题描述:
- 在使用xshell访问mysql数据库中,当需要使用
use xxx
,发现其数据库不能访问,原因是mysql系统库的user表中host为localhost的用户只有一个空的,所以在mysql
进入数据时默认进入到空用户下,所以就无法访问到指定的数据库。
解决方案:
- 使用xshell的一个窗口进行:
->service mysqld stop
->mysqld_safe --skip-grant-table
- 在另一个xshell窗口进行:
->mysql -u root mysql
,此处是使用的root用户,进入系统数据库->select * from user;
,查看用户表中是否有host为localhost且user为root的记录,如果没有则需要添加。- 使用insert语句插入该用户信息
->update user set password=PASSWORD("") where user="root";
,此处用户密码是空的->flush privileges
,然后退出
- 关掉第一个xshell窗口
- 重新进入mysql,如果不能执行增删查改操作的话,需在user表中对其他字段属性都设置为Y。