mysql數據庫連接錯誤問題,mysql數據庫無法連接,其原因可能是

本文目錄一覽:

mysql連接數據庫失敗,請確定數據庫用戶名,密碼設置正確

現象

一線的工程師反映了一個奇怪的現象,剛剛從 MySQL 官網上下載了一個 MySQL 5.7.31。安裝完成後,發現使用任何密碼都能登陸 MySQL,修改密碼也不管用,重新啟動 MySQL 也不能解決。

分析

懷疑使用了 –skip-grant-tables 使用 mysqld –print-defaults 檢查,沒有發現。

檢查登陸用戶,都是 root@localhost,說明和 proxy user 沒有關係。

使用 mysql –print-defaults 檢查客戶端是否設置默認的用戶和密碼,沒有發現。

檢查數據庫中的用戶和密碼的相關字段:

發現一切都正常,再檢查 plugin 字段,發現只有 root 用戶是 auth_socket ,其它的用戶都是 mysql_native_password,問題可能就出在這兒。

對 auth_socket 驗證插件不了解,感覺是這個插件不安全,使用下面的命令修改後,問題解決:

update user set plugin=”mysql_native_password” where user=’root’;

auth_socket 驗證插件的使用場景

問題解決後,又仔細研究了一下 auth_socket 這個插件,發現這種驗證方式有以下特點:

首先,這種驗證方式不要求輸入密碼,即使輸入了密碼也不驗證。這個特點讓很多人覺得很不安全,實際仔細研究一下這種方式,發現還是相當安全的,因為它有另外兩個限制;

只能用 UNIX 的 socket 方式登陸,這就保證了只能本地登陸,用戶在使用這種登陸方式時已經通過了操作系統的安全驗證;

操作系統的用戶和 MySQL 數據庫的用戶名必須一致,例如你要登陸MySQL 的 root 用戶,必須用操作系統的 root用戶登陸。

auth_socket 這個插件因為有這些特點,它很適合我們在系統投產前進行安裝調試的時候使用,而且也有相當的安全性,因為系統投產前通常經常同時使用操作系統的 root 用戶和 MySQL 的 root 用戶。當我們在系統投產後,操作系統的 root 用戶和 MySQL 的 root 用戶就不能隨便使用了,這時可以換成其它的驗證方式,可以使用下面的命令進行切換:

ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘test’;

mysql5.7.12報錯如下情況導致無法連接數據庫應該怎麼辦?

一、mysqld 進程沒有正常運行遇到這種情況首先到服務器上看看 mysqld 進程是否活着,採用的命令:

二、客戶端不能和進程 mysqld 通信如果 MySQL 服務器上的 mysqld 進程運行正常,我們再看看客戶端能不能和 mysqld 進行通信,使用下面的命令進行網絡連通的測試:telnet localhost 3306

如果本地能通,再到客戶端的機器上把 localhost 換成 MySQL 服務器的 ip 地址進行測試。如果不能通,通常有兩種原因,一種原因是 OS 或網絡的問題,或者是防火牆;另一種原因是 mysqld 自身根本沒有偵聽客戶端的連接請求, mysqld 啟動後對於客戶端的偵聽是分三種情況。

第一種情況

是使用參數 –skip-networking 跳過偵聽客戶端的網絡連接,用下面的命令我們可以看到 MySQL 根本沒有偵聽 3306 端口。

第二種情況

使用參數 –bind-address 後面增加對客戶端訪問 IP 地址的限制,例如只偵聽本地的連接

三、賬戶密碼的問題最後一種情況是賬戶密碼的問題,應付這種情況我們有個有力的工具就是查看 MySQL 的 error log, error log 記載信息的詳細程度上由參數 –log-error-verbosity 進行控制的

mysql連接數據庫時報2003錯誤怎麼解決

mysql連接數據庫時報2003錯誤,是設置錯誤造成的,解決方法如下:

1、首先,在電腦桌面鼠標點擊開始菜單。

2、通過左下角的搜索欄,輸入服務字樣,選擇“服務”應用,打開服務面板。

3、或者通過鍵盤上的win+R鍵打開運行,輸入services.msc打開服務面板。

4、然後在服務面板中找到MySQL56,選中後單擊右鍵點擊啟動此服務,這裡的MySQL就在主界面,所以之直接啟動即可。

5、最後,重新啟動MySQL程序,連接數據庫即可。關閉服務應用,打開MySQL,關閉錯誤代碼提示,輸入賬號密碼重新與數據庫建立連接,然後就能打開數據庫程序了。

在連接到MySQL錯誤問題,怎麼解決

一、Can’t connect to MySQL server on ‘localhost’ (10061)

翻譯:不能連接到 localhost 上的mysql

分析:這說明“localhost”計算機是存在的,但在這台機器上卻沒提供MySQL服務。

需要啟動這台機器上的MySQL服務,如果機子負載太高沒空相應請求也會產生這個錯誤。

解決:既然沒有啟動那就去啟動這台機子的mysql。如果啟動不成功,多數是因為你的my.ini配置的有問題。重新配置其即可。

如果覺得mysql負載異常,可以到mysql/bin 的目錄下執行mysqladmin -uroot -p123 processlist來查看mysql當前的進程。

二、Unknown MySQL Server Host ‘localhosadst’ (11001)

翻譯:未知的MySQL服務器 localhosadst

分析:服務器 localhosasdst 不存在。或者根本無法連接

解決:仔細檢查自己論壇下面的 ./config.inc.php 找到$dbhost重新設置為正確的mysql 服務器地址。

三、Access denied for user: ‘roota@localhost’ (Using password: YES)

翻譯:用戶 roota 訪問 localhost 被拒絕(沒有允許通過)

分析:造成這個錯誤一般數據庫用戶名和密碼相對mysql服務器不正確

解決:仔細檢查自己論壇下面的 ./config.inc.php 找到$dbuser、$dbpw核實後重新設置保存即可。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/293161.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-25 18:39
下一篇 2024-12-25 18:39

相關推薦

發表回復

登錄後才能評論