在使用 MySQL 進(jìn)行數(shù)據(jù)庫操作時(shí),我們經(jīng)常會(huì)遇到“連接被拒絕”的問題。可能出現(xiàn)這種問題的原因有很多,比如網(wǎng)絡(luò)連接問題、MySQL 服務(wù)器配置不正確或者權(quán)限問題等等。本文將為大家介紹如何解決 MySQL 連接被拒絕的問題。
在連接 MySQL 數(shù)據(jù)庫時(shí),我們需要使用以下代碼建立連接:
import mysql.connector mydb = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword" ) print(mydb)
若運(yùn)行以上代碼時(shí),出現(xiàn)類似下面的連接被拒絕的錯(cuò)誤信息:
mysql.connector.errors.ProgrammingError: 1045 (28000): Access denied for user 'yourusername'@'localhost' (using password: YES)
這通常意味著連接 MySQL 數(shù)據(jù)庫時(shí),用戶名或者密碼不正確。我們需要確認(rèn)輸入的用戶名和密碼是否正確,如果不正確,則需要修改代碼中的用戶名和密碼。
還有一種可能就是 MySQL 服務(wù)器沒有配置正確的權(quán)限。我們可以通過以下的代碼來檢查 MySQL 服務(wù)器的權(quán)限設(shè)置:
import mysql.connector mydb = mysql.connector.connect( host="localhost", user="yourusername", password="yourpassword" ) mycursor = mydb.cursor() mycursor.execute("SHOW GRANTS FOR 'yourusername'@'localhost'") for x in mycursor: print(x)
若運(yùn)行以上代碼時(shí),返回的權(quán)限設(shè)置不包含“GRANT ALL PRIVILEGES ON *.* TO 'yourusername'@'localhost'”這一句,則需要修改 MySQL 服務(wù)器的權(quán)限設(shè)置:
GRANT ALL PRIVILEGES ON *.* TO 'yourusername'@'localhost'; FLUSH PRIVILEGES;
如果以上方法無法解決 MySQL 連接被拒絕的問題,則需要檢查網(wǎng)絡(luò)連接是否正常,或者聯(lián)系 MySQL 服務(wù)器的管理員進(jìn)行解決。