MySQL root密码重置报错:mysqladmin: connect

系统 1699 0

-- ====================================================================
--  mysqladmin: connect to server at 'localhost' failed的解决方案!
-- ====================================================================


1  登陆失败,mysqladmin修改密码失败

[root@mysql var]# mysqladmin -u root password '123456'
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: NO)'

2 停止mysql服务
[root@mysql var]# /etc/init.d/mysqld stop
Shutting down MySQL.... SUCCESS!


3 安全模式启动
[root@mysql var]# mysqld_safe --skip-grant-tables &
/opt/mysql/product/5.5.25a/bin/mysqld_safe --skip-grant-tables &
[1] 10912
[root@mysql var]# 110407 17:39:28 mysqld_safe Logging to '/usr/local/mysql/var//mysql.chinascopefinanical.com.err'.
110407 17:39:29 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/var/

4 无密码root帐号登陆
[root@mysql var]# /usr/bin/mysql -uroot -p 【注释,在下面的要求你输入密码的时候,你不用管,直接回车键一敲就过去了】
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 48
Server version: 5.1.41-log Source distribution


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> use mysql;
Database changed

5 手动update修改密码
mysql> update user set password=password("guxxxxxahyVh") where user='root' and host='localhost';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0


mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)


mysql> quit
Bye
[root@mysql var]# mysql -uroot -pguNNhtqhjUnfky6ahyVh
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 172
Server version: 5.1.41-log Source distribution


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> quit
Bye


6 正常重新启动
[root@mysql var]# service mysqld restart
Shutting down MySQL..110407 17:45:29 mysqld_safe mysqld from pid file /usr/local/mysql/var//mysql.chinascopefinanical.com.pid ended
SUCCESS!
Starting MySQL.. SUCCESS!
[1]+  Done                    mysqld_safe --skip-grant-tables

[root@mysql var]#


7 其他形式的错误情况分析

7.1 找不到sock 报错 :

[root@app60 mysqld]#  /usr/bin/mysql -uroot -p
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)
[root@app60 mysqld]# 


登陆的时候加上sock参数就OK了。

[root@app60 mysqld]#  /usr/bin/mysql -uroot -p --socket=/opt/mysqldata/mysql.sock
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.1.69 Source distribution


Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> 
mysql> 


7.2 抱错 [ERROR] /usr/libexec/mysqld: Error writing file '/var/run/mysqld/mysqld.pid' (Errcode: 28)

130830 10:59:02  InnoDB: Initializing buffer pool, size = 1.0G

130830 10:59:02  InnoDB: Completed initialization of buffer pool
130830 10:59:02  InnoDB: Started; log sequence number 0 2727887496
130830 10:59:02 [ERROR] /usr/libexec/mysqld: Error writing file '/var/run/mysqld/mysqld.pid' (Errcode: 28)
130830 10:59:02 [ERROR] Can't start server: can't create PID file: No space left on device
130830 10:59:02 mysqld_safe Number of processes running now: 0
130830 10:59:02 mysqld_safe mysqld restarted
130830 10:59:02  InnoDB: Initializing buffer pool, size = 1.0G
130830 10:59:02  InnoDB: Completed initialization of buffer pool
130830 10:59:02  InnoDB: Started; log sequence number 0 2727887496
130830 10:59:02 [ERROR] /usr/libexec/mysqld: Error writing file '/var/run/mysqld/mysqld.pid' (Errcode: 28)
130830 10:59:02 [ERROR] Can't start server: can't create PID file: No space left on device
130830 10:59:03 mysqld_safe Number of processes running now: 0
130830 10:59:03 mysqld_safe mysqld restarted
130830 10:59:03  InnoDB: Initializing buffer pool, size = 1.0G


 

[分析]:不能写入默认的pid文件,就 修改 /etc/init.d/mysqld,把pid指向别的路经


[root@app60 mysqld]# vi /etc/init.d/mysqld

.....

get_mysql_option mysqld datadir "/var/lib/mysql"
datadir="$result"
get_mysql_option mysqld socket "$datadir/mysql.sock"
socketfile="$result"
get_mysql_option mysqld_safe log-error "/var/log/mysqld.log"
errlogfile="$result"
get_mysql_option mysqld_safe pid-file "/opt/mysqldata/mysqld.pid"    # '/var/run/mysqld/mysqld.pid' 原始值,这里修改成别的路径/opt/mysqldata/mysqld.pid
mypidfile="$result"

.....

然后启动mysqld服务,OK,成功了。

 

MySQL root密码重置报错:mysqladmin: connect to server at 'localhost' failed的解决方案!


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论