mysql Access denied for user \'root\'@\'localhost\'”解決辦法總結(jié),下面我們對常見的出現(xiàn)的一些錯誤代碼進行分析并給出解決辦法,有需要的朋友可參考一下。
錯誤代碼 1045
Access denied for user 'root'@'localhost' (using password:YES)
解決辦法是重新設(shè)置root用戶密碼,在Windows平臺下操作步驟如下:
1、以系統(tǒng)管理員身份登錄到系統(tǒng);
2、如果MySQL服務(wù)器正在運行,停止它。
如果是作為Windows服務(wù)運行的服務(wù)器,進入服務(wù)管理器:開始菜單->控制面板->管理工具->服務(wù)
如果服務(wù)器不是作為服務(wù)而運行的,可能需要使用任務(wù)管理器來強制停止它。
3、創(chuàng)建1個文本文件,并將下述命令置于單一行中:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
用任意名稱保存該文件。在本例中,該文件為C:mysql-init.txt。
4、進入DOS命令提示:開始菜單->運行-> cmd
假定你已將MySQL安裝到C:mysql。如果你將MySQL安裝到了另一位置,請對下述命令進行相應(yīng)的調(diào)整。
在DOS命令提示符下,執(zhí)行命令:
C:> C:mysqlbinmysqld-nt --init-file=C:mysql-init.txt
在服務(wù)器啟動時,執(zhí)行由“--init-file”選項(作用:在啟動時從指定的文件中讀取SQL命令)命名的文件的內(nèi)容,更改根用戶密碼。當(dāng)服務(wù)器成功啟動后,應(yīng)刪除C:mysql-init.txt。
5、停止MySQL服務(wù)器,然后在正常模式下重啟它。如果以服務(wù)方式運行服務(wù)器,應(yīng)從Windows服務(wù)窗口啟動它。如果以手動方式啟動了服務(wù)器,能夠像正常情形下一樣使用命令。
應(yīng)能使用新密碼進行連接。
我的系統(tǒng)是Ubuntu6.06,最近新裝好的mysql在進入mysql工具時,總是有錯誤提示:
# mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
使用網(wǎng)上介紹的方法修改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)'
現(xiàn)在終于被我找到了解決方法,如下(請先測試方法三,謝謝?。?/p>
方法一:
# /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: <輸入新設(shè)的密碼newpassword>
另一篇關(guān)于linux錯誤
Red Hat Enterprise Linux 5服務(wù)器上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如下內(nèi)容:
#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.soc
原因3-啟動文件錯誤:
需要修改MySQL啟動腳本/etc/rc.d/init.d/mysql,
其中datadir= ? 一行檢查下!
原因4-前提是你在使用php連接時候報錯!
在/etc/php.ini修改mysql.default_socket的值設(shè)置為:
mysql.default_socket=/var/lib/mysql/mysql.sock
回到終點設(shè)置個連接:ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
(在/etc/php.ini中mysql.default_socket這個文件中,關(guān)于mysql.default_socket的值的說明是這樣的,
;Default socket name for local MySQL connects. If empty, uses the built-in MySQL defaults.
這個值一開始是空的,也就是說,如果我們不主動去修改的話,php將會使用內(nèi)建在mysql中的默認(rèn)值)
注意:另外還遇到需要service mysql star才能啟動service mysql stop才能停止。
還有直接使用mysql不能找到命令,錯誤為“bash: mysql: command not found”可以直接**mysql的安裝目錄中的bin文件夾跟絕對路徑運行命令,還有的需要加./mysql 才能執(zhí)行。
mysql修改密碼方法有幾種
方法一
使用phpMyAdmin
(圖形化管理MySql數(shù)據(jù)庫的工具),這是最簡單的,直接用SQL語句修改mysql數(shù)據(jù)庫庫的user表,不過別忘了使用PASSWORD函數(shù),插入用戶用Insert命令,修改用戶用Update命令,刪除用Delete命令。在本節(jié)后面有數(shù)據(jù)表user字段的詳細(xì)介紹。
方法二
使用mysqladmin。輸入
mysqladmin -u root -p oldpassword newpasswd
執(zhí)行這個命令后,需要輸入root的原密碼,這樣root的密碼將改為newpasswd。同樣,把命令里的root改為你的用戶名,你就可以改你自己的密碼了。
當(dāng)然如果你的mysqladmin連接不上mysql
server,或者你沒有辦法執(zhí)行mysqladmin,那么這種方法就是無效的,而且mysqladmin無法把密碼清空。
下面的方法都在mysql提示符下使用,且必須有mysql的root權(quán)限:
方法三
mysql> INSERT INTO mysql.user (Host,User,Password) VALUES('%','system', PASSWORD('manager'));
mysql> FLUSH PRIVILEGES
確切地說這是在增加一個用戶,用戶名為system,密碼為manager。注意要使用PASSWORD函數(shù),然后還要使用FLUSH
PRIVILEGES來執(zhí)行確認(rèn)。