Mysql 远程访问SQLSTATE[28000][1045] Access denied for user 'root'@'localhost'

用yii链接mysql数据库的时出现一下问题:

SQLSTATE[28000][1045] Access denied for user 'root'@'localhost'(use Password No)

用了以下第一个方法解决的,第二个方法没试,收藏一下!


遇到这个问题2天多了,很是头疼,先是无法建数据库,就是用的默认test,为了赶紧能演示,后test无法远程访问,于是我的demo很悲剧的用的截图。

 之后一阵查,发现确实是权限问题,一点点解决了,首先是解决无法创建数据库的问题:

Mysql 远程访问SQLSTATE[28000][1045] Access denied for user 'root'@'localhost'(use Password No)

解决方法:

# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit

# /etc/init.d/mysql restart
# mysql -uroot -p
Enter password: <输入新设的密码newpassword>

网上找的答案,我的是非root安装的,mysql服务是mysql.server.用root进去就解决了建库问题,接下来是远程访问的问题:

Mysql 远程访问SQLSTATE[28000][1045] Access denied for user 'root'@'localhost'(use Password Yes)

mysql>grant all on *.* to user_name@'%' identified by 'use_password'

mysql>FLUSH PRIVILEGES;

就可以了。只是还有问题,就是使用linux下插入的中文到了windows下的Navicat查看总是乱码,反之不是,很是奇怪,都是utf8编码的。

你可能感兴趣的:(Mysql 远程访问SQLSTATE[28000][1045] Access denied for user 'root'@'localhost')