最近在本地搭建mysql环境的时候出现了这样的问题。
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
初步怀疑是root用户的密码为空,mysql自动使用了一个匿名账户,虽然我是用root用户登录,但实际上进行操作的并不是root用户,可见”@’localhost’。
Windows下的解决方案:
1. 连接mysql服务
停止mysql服务,cmd模式进入mysql的bin目录,输入
mysqld --defaults-file="D:\mysql\my-default.ini" --console --skip-grant-tables
当出现这样的字样,说明连接成功。
2. 尝试连接mysql数据库
第一步的窗口不要关闭,再打开一个cmd窗口,同样进入mysql的bin目录,输入mysql -u root mysql
如果看到mysql>
即说明已成功连接mysql库
3. 设置密码
mysql> update user set password=PASSWORD('password') where user='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
然后重启mysql服务。