萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> mysql Access denied for user root@localhost

mysql Access denied for user root@localhost

今天在做一個香港服務器的環境發現安裝好mysql數據庫之後連接mysql 提示mysql Access denied for user root@localhost 我的密碼明明是這個但就是不正確了,下面大家來與我一起看整個個問題的分析過程。


從網上找了一個解決方案解決了,在這裡記錄一下:

1. 管理員登陸系統,停止mysql服務或者結束mysqld-nt進程;
2. 進入命令行,來到mysql的安裝目錄.假設安裝目錄為 d:/mysql/ , CMD進入命令行;
3. 運行 D:/Program Files/MySQL/MySQL Server 5.5/bin/mysqld-nt --skip-grant-tables啟動mysql,關閉權限的檢查;
4. 運行 D:/Program Files/MySQL/MySQL Server 5.5/bin/mysqladmin -u root flush-privileges password "newpassword" 重設root密碼;
5. 重新啟動mysql服務;

按這個來發現無法解決此問題,接下搜索

現在被我找到了解決方法,如下


mysql> INSERT INTO mysql.user (Host,User,Password) VALUES

  ('%','system', PASSWORD('manager'));

  mysql> FLUSH PRIVILEGES   

  確切地說這是在增加一個用戶,用戶名為system,密碼為manager。注意要使用PASSWORD函數,然後還要使用FLUSH

  PRIVILEGES來執行確認。   

最後還是沒解決,又找了一個解決辦法

解決辦法是重新設置root用戶密碼,在Windows平台下操作步驟如下:
1、以系統管理員身份登錄到系統;
2、如果MySQL服務器正在運行,停止它。
  如果是作為Windows服務運行的服務器,進入服務管理器:開始菜單->控制面板->管理工具->服務
  如果服務器不是作為服務而運行的,可能需要使用任務管理器來強制停止它。
3、創建1個文本文件,並將下述命令置於單一行中:
  SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
  用任意名稱保存該文件。在本例中,該文件為C:/mysql-init.txt。
4、進入DOS命令提示:開始菜單->運行-> cmd
  假定你已將MySQL安裝到C:/mysql。如果你將MySQL安裝到了另一位置,請對下述命令進行相應的調整。
  在DOS命令提示符下,執行命令:
  C:/> C:/mysql/bin/mysqld-nt --init-file=C:/mysql-init.txt
  在服務器啟動時,執行由“--init-file”選項(作用:在啟動時從指定的文件中讀取SQL命令)命名的文件的內容,更改根用戶密碼。當服務器成功啟動後,應刪除C:/mysql-init.txt。
5、停止MySQL服務器,然後在正常模式下重啟它。如果以服務方式運行服務器,應從Windows服務窗口啟動它。如果以手動方式啟動了服務器,能夠像正常情形下一樣使用命令。
應能使用新密碼進行連接。

萬惡的百度找到的辦法都用不了,我不找了直接重新安裝mysql數據庫解決了此問題,總結一下在百度找到的東西幾乎都一樣解決不了問題,希望百度以後會有好的處理。

copyright © 萬盛學電腦網 all rights reserved