MYSQL登錄錯誤:mysqladmin: connect to server at 'localhost' failed

一、mysql登錄錯誤
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'
無法修改密碼
用 service mysqld stop
mysqld_safe --skip-grant-tables &
輸入 mysql -uroot -p 回車進入
>use mysql;
> update user set password=PASSWORD("newpass")where user="root";
 更改密碼爲 newpassord
> flush privileges; 更新權限
> quit 退出
service mysqld restart
mysql -uroot -p新密碼進入
 
===========================================================
二,忘記本地root的登錄密碼
解決過程:
1、編輯/etc/my.cnf
在[mysqld] 配置部分添加一行
skip-grant-tables
 
2、保存後重啓mysql
[root@localhost etc]# service mysqld restart
Shutting down MySQL.                                       [  OK  ]
Starting MySQL.                                                   [  OK  ]

3、登錄數據庫重新設置root密碼
[root@localhost ~]# mysql -uroot -p mysql
Enter password:
直接回車進入

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.47-log Source distribution
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

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

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
+--------------------+
3 rows in set (0.00 sec)

執行下列語句
mysql> update user set password=password("mysql") where user='root';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4  Changed: 4  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
 
4、刪除/etc/my.cnf文件中添加的“skip-grant-tables”行,重啓mysql;
用新設的密碼就能正常登錄了;
 
 =================================================   

 介紹一個非常有用的mysql啓動參數—— --skip-grant-tables。 顧名思義,就是在啓動mysql時不啓動grant-tables,授權表。有什麼用呢?當然是忘記管理員密碼後有用。

    操作方法:
    1、殺掉原來進行着的mysql:
       rcmysqld stop
       或者:
       service mysqld stop
       或者:
       kill -TERM mysqld
    2、以命令行參數啓動mysql:
       /usr/bin/mysqld_safe --skip-grant-tables &
    3、修改管理員密碼:
       use mysql;
       update user set password=password('yournewpasswordhere') where user='root';
       flush privileges;
       exit;
    4、殺死mysql,重啓mysql
發佈了138 篇原創文章 · 獲贊 5 · 訪問量 35萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章