安装环境:win7 64,mysql5.6.19-win64免安装版
再次吐槽下,百度搜出来的尽是垃圾,粘贴复制的,自己都没动手验证过过就往上贴,错误百出。
今天准备用jdbc连接mysql,设置root密码,百度搜出来得一种方法:
update user set password='123456' where user="root"
这样是不对的,设置的密码不是123456,关键是输入这个命令以后,导致我show databases出来的结果没有mysql库了,use mysql 报错Access denied for user ''@'localhost' to database 'mysql',这也就是标题要解决的问题。
首先说正确的命令应该是:
update user set password=password('123456') where user="root"
123456为你要设置的密码.
出现了Access denied for user ''@'localhost' to database 'mysql',解决办法:
1:编辑my.ini,在最后一行添加:skip-grant-tables,然后保存。
2:重启mysql,net stop mysql, net start mysql。
3:登陆 mysql -u root -p;(本机)密码为空直接回车登陆。
4:现在可以use mysql了,然后再修改密码
update user set password=password('123456') where user="root"
flush privileges
exit
5:修改my.ini,去掉之前加的最后一行,重启mysql,再次登陆,发现密码123456已经设置成功,show databases也正常了。