萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> mysql Access denied for user root@localhost錯誤解決方法總結

mysql Access denied for user root@localhost錯誤解決方法總結

mysql Access denied for user \'root\'@\'localhost\'”解決辦法總結,下面我們對常見的出現的一些錯誤代碼進行分析並給出解決辦法,有需要的朋友可參考一下。

錯誤代碼 1045

Access denied for user 'root'@'localhost' (using password:YES)

解決辦法是重新設置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:mysqlbinmysqld-nt --init-file=C:mysql-init.txt

在服務器啟動時,執行由“--init-file”選項(作用:在啟動時從指定的文件中讀取SQL命令)命名的文件的內容,更改根用戶密碼。當服務器成功啟動後,應刪除C:mysql-init.txt。

5、停止MySQL服務器,然後在正常模式下重啟它。如果以服務方式運行服務器,應從Windows服務窗口啟動它。如果以手動方式啟動了服務器,能夠像正常情形下一樣使用命令。

應能使用新密碼進行連接。

我的系統是Ubuntu6.06,最近新裝好的mysql在進入mysql工具時,總是有錯誤提示:

# mysql -uroot -p

Enter password:

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

使用網上介紹的方法修改root用戶的密碼:

 代碼如下

# mysqladmin -uroot -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'

mysql> FLUSH PRIVILEGES;

mysql> quit

# /etc/init.d/mysql restart

# mysql -uroot -p

Enter password: <輸入新設的密碼newpassword>

另一篇關於linux錯誤

Red Hat Enterprise Linux 5服務器上mysql啟動報錯:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

原因1-啟動命令錯誤:

我開始的時候直接輸入命令:mysql start 

正確的啟動命令是:

/etc/rc.d/init.d/mysql start

原因2-配置文件錯誤:

檢查etc下面的my.cnf如下內容:

[client]

代碼如下

#password   = your_password

port     = 3306

socket     = /usr/mysql-data/mysql.sock

# Here follows entries for some specific programs

# The MySQL server

[mysqld]

port     = 3306

socket     = /usr/mysql-data/mysql.sock

原因3-啟動文件錯誤:

需要修改MySQL啟動腳本/etc/rc.d/init.d/mysql,

其中datadir=   ?     一行檢查下!

原因4-前提是你在使用php連接時候報錯!

在/etc/php.ini修改mysql.default_socket的值設置為:

mysql.default_socket=/var/lib/mysql/mysql.sock

回到終點設置個連接:ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

(在/etc/php.ini中mysql.default_socket這個文件中,關於mysql.default_socket的值的說明是這樣的,

;Default socket name for local MySQL connects. If empty, uses the built-in MySQL defaults.

這個值一開始是空的,也就是說,如果我們不主動去修改的話,php將會使用內建在mysql中的默認值)

注意:

另外還遇到需要service mysql star才能啟動service mysql stop才能停止。

還有直接使用mysql不能找到命令,錯誤為“bash: mysql: command not found”可以直接**mysql的安裝目錄中的bin文件夾跟絕對路徑運行命令,還有的需要加./mysql 才能執行。

mysql修改密碼方法有幾種

方法一 

使用phpMyAdmin

(圖形化管理MySql數據庫的工具),這是最簡單的,直接用SQL語句修改mysql數據庫庫的user表,不過別忘了使用PASSWORD函數,插入用戶用Insert命令,修改用戶用Update命令,刪除用Delete命令。在本節後面有數據表user字段的詳細介紹。   

方法二 

使用mysqladmin。輸入  

mysqladmin -u root -p oldpassword newpasswd  

執行這個命令後,需要輸入root的原密碼,這樣root的密碼將改為newpasswd。同樣,把命令裡的root改為你的用戶名,你就可以改你自己的密碼了。

當然如果你的mysqladmin連接不上mysql

server,或者你沒有辦法執行mysqladmin,那麼這種方法就是無效的,而且mysqladmin無法把密碼清空。   

下面的方法都在mysql提示符下使用,且必須有mysql的root權限:   

方法三   

mysql> INSERT INTO mysql.user (Host,User,Password) VALUES('%','system', PASSWORD('manager'));

mysql> FLUSH PRIVILEGES   

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

copyright © 萬盛學電腦網 all rights reserved