mysqladmin: connect to server at 'localhost' failed;错误解决方法

来源:互联网 发布:网络超市的前景 编辑:程序博客网 时间:2024/04/29 07:49

select * from user where User='root';

查看HOST字段填的是%,没有localhost这一项,所以他无法本地访问。


mysql.user表中Host为%的含义
  Host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.1.1。这里的意思就是说root用户只能通过192.168.1.1的客户端去访问。  而%是个通配符,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果Host=%,表示所有IP都有连接权限。、  这也就是为什么在开启远程连接的时候,大部分人都直接把Host改成%的缘故,为了省事。
localhost要单独授权,不在%中


网上查的资料

# mysql -u root -p

Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

# mysql -u root -p password 'newpassword'
Enter password:
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)' 


网上找到的方法操作很简单,如下:


# /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' and host='root' or host='localhost';//把空的用户密码都修改成非空的密码就行了。
mysql> FLUSH PRIVILEGES;
mysql> quit
# /etc/init.d/mysqld restart
# mysql -uroot -p
Enter password: <输入新设的密码newpassword> 
0 0
原创粉丝点击