问题现象:
刚安装并且配置好mysql数据库,登录后发现不能使用mysql
mysql> use mysql
ERROR 1044 (42000): Access denied for user ‘’@‘localhost’ to database ‘mysql’
查看数据库发现只有两个,没有mysql
之前时有的,可能跟自己改过root用户密码有关,但是使用密码登录也会报错:
使用客户端连接工具MySQLyog连接报错:
‘ERROR 1045: Access denied for user ‘root’@‘localhost’ (using password: YES)’
不输入密码直接进入后Mysql后,修改了root用户的密码,退出后重新使用密码连接报错:ERROR 1045: Access denied for user ‘root’@‘localhost’ (using password: YES)
查了很多之后,找到了一个比较好的办法:
https://blog.csdn.net/hsg77/article/details/80819985
问题原因:
还是MySQL的密码有问题,虽然是用root用户登录但实际是匿名用户登录的
用mysql匿名用户可以进入数据库,但是看不见mysql数据库.
解决办法:
1、以系统管理员的身份登录命令管理,即cmd,右键选择以管理员身份运行
2、停止mysql服务:net stop mysql
3、进入到mysql安装bin目录下:
我的方法是,先复制目录,我的是:D:\MySQL\mysql-5.6.45-winx64\bin
然后在命令管理行输入d:就直接进入复制的目录了
4、屏蔽权限,执行:mysqld --skip-grant-table
这个命令执行后之后应该是一直执行中的状态,如下:
5、然后新打开一个命令行,执行如下命令:
mysql -u root
use mysql
UPDATE user SET Password=PASSWORD(‘root’) WHERE user=‘root’;
flush privileges;
\q
6、一切顺利,再回到第一个命令窗口,结束权限屏蔽:crtl+c 退出
7、启动mysql服务:net start mysql
8、然后通过新修改的密码登录root用户,再use mysql没有任何问题,大功告成。
开心。