Posted on 2013-09-09 14:34
H2O 阅读(1060)
评论(0) 编辑 收藏
From http://www.dn59.com/linux/server/2013/0120/mysql-ERROR-1045-28000.html
在ubuntu server 12.04中,安装mysql后,使用命令登录mysql居然报错了,Mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost'(using password: YSE),这个错误搞得很郁闷,仔细分析之后,知道这个报错和密码有关,可能是密码在配置mysql的时候异常,所以导致我们没有正确的密码,知道问题后,立即想到解决办法了,那就是重新设置一个密码,方法如下
1.先关闭mysql并设置密码
- #sudo /etc/init.d/mysql stop
- #sudo mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
- #sudo mysql -u root mysql
- mysql> UPDATE user SET Password=PASSWORD('pas') where USER='root';
- mysql> FLUSH PRIVILEGES;
- mysql> quit
允许mysql远程访问,可以使用以下三种方式:
a、改表。
mysql -u root –p
mysql>use mysql;
mysql> update user set host = '%' where user = 'root' ;
mysql> select host, user from user ;
|
有时候更悲剧:所有用户不小心被删了,包括root也被删了肿么办?
mysqld_safe --skip-grant-tables --skip-networking &
mysql -u root(新建用户的用户名)
insert into mysql.user (host, user, password) values ('%', '新建用户的用户名', password('密码'));grant all on *.* to 'root'@'%'; 和上面一样也要flush 刷新权限b、授权。
例如,你想root使用123456从任何主机连接到mysql服务器。
1
|
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root' @ '%' IDENTIFIED BY '123456' WITH GRANT OPTION ;
|
如果你想允许用户jack从ip为10.10.50.127的主机连接到mysql服务器,并使用654321作为密码
1
2
|
mysql> GRANT ALL PRIVILEGES ON *.* TO 'jack' @’10.10.50.127’ IDENTIFIED BY '654321' WITH GRANT OPTION ;
mysql>FLUSH RIVILEGES
|
c:在安装mysql的机器上运行:
1
2
3
4
5
6
7
8
|
//进入MySQL服务器
d:\mysql\bin\>mysql -h localhost -u root
//赋予任何主机访问数据的权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root' @ '%' WITH GRANT OPTION
//使修改生效
mysql>FLUSH PRIVILEGES
//退出MySQL服务器
mysql>EXIT
|
2.重启mysql并尝试登录
- #sudo /etc/init.d/mysql restart
- #sudo mysql -uroot -p
- Enter password:
- #输入密码,出现下面这个就表示登录正常了
- mysql>
Mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost'(using password: YSE)这个错误在使用phpmyadmin登录的时候只提示(28000),同时phpmyadmin也会提示密码出错,按以上方法设置之后就可以用新密码登录phpmyadmin了