一般这个错误是由密码错误引起,解决的办法自然就是重置密码。
假设我们使用的是root账户。
1.重置密码的第一步就是跳过MySQL的密码认证过程,方法如下:
#vim /etc/my.cnf(注:windows下修改的是my.ini)
在文档内搜索mysqld定位到[mysqld]文本段:
/mysqld(在vim编辑状态下直接输入该命令可搜索文本内容)在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程,如下图所示:
保存文档并退出:
#:wq
2.接下来我们需要重启MySQL:service mysqld restart
接下来登录重置密码:
$ mysql -u rootmysql > use mysql;mysql > update user set password=password(‘123‘) where user=‘ac‘;mysql > exit;
5. 需要更改权限才能实现远程连接MYSQL数据库
可以通过以下方式来确认:root#mysql -h localhost -uroot -pEnter password: ******Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 4 to server version: 4.0.20a-debugType ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.mysql> use mysql; (此DB存放MySQL的各种配置信息)Database changedmysql> select host,user from user; (查看用户的权限情况)mysql> select host, user, password from user; +-----------+------+-------------------------------------------+ | host | user | password | +-----------+------+-------------------------------------------+ | localhost | root | *4ACFE3202A5FF5CF467898FC58AAB1D615029441 | | 127.0.0.1 | root | *4ACFE3202A5FF5CF467898FC58AAB1D615029441 | | localhost | | | +-----------+------+-------------------------------------------+ 4 rows in set (0.01 sec)由此可以看出,只能以localhost的主机方式访问。 解决方法: mysql> Grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option; (%表示是所有的外部机器,如果指定某一台机,就将%改为相应的机器名;‘root’则是指要使用的用户名,) mysql> flush privileges; (运行此句才生效,或者重启MySQL) Query OK, 0 rows affected (0.03 sec)再次查看。。mysql> select host, user, password from user; +-----------+------+-------------------------------------------+ | host | user | password | +-----------+------+-------------------------------------------+ | localhost | root | *4ACFE3202A5FF5CF467898FC58AAB1D615029441 | | 127.0.0.1 | root | *4ACFE3202A5FF5CF467898FC58AAB1D615029441 | | localhost | | | | % | root | *4ACFE3202A5FF5CF467898FC58AAB1D615029441 | +-----------+------+-------------------------------------------+ 4 rows in set (0.01 sec)