本文目錄一覽:
- 1、mysql5.7.12報錯如下情況導致無法連接資料庫應該怎麼辦?
- 2、連接mysql資料庫失敗怎麼辦
- 3、使用jdbc連接mysql為什麼報錯?
- 4、連接mysql錯誤2013
- 5、mysql連接資料庫失敗,請確定資料庫用戶名,密碼設置正確
- 6、MySQL為什麼連接不了?
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資料庫失敗怎麼辦
1 mysql 錯誤 ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’
解決辦法:關閉防火牆,linux下命令
[root@etl01 bin]# chkconfig –list | grep -i iptables ====check fire wall
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@etl01 bin]# /sbin/service iptables stop ====stop fire wall
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: nat filter [ OK ]
Unloading iptables modules: [ OK ]
2 報錯:1130-host … is not allowed to connect to this MySql server
解決辦法:
授權形式
比如賬戶為root,密碼為root
use mysql;
用root賬戶從任何主機上訪問mysql資料庫了
GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ IDENTIFIED BY ‘root’ WITH GRANT OPTION;
如果你想允許用戶zz從ip為192.168.1.3的主機連接到mysql伺服器,並使用123456作為密碼
GRANT ALL PRIVILEGES ON *.* TO ‘root’@’192.168.1.3’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;
使用jdbc連接mysql為什麼報錯?
當我用JDBC連接MySql資料庫時,編譯報了如下錯誤:
錯誤1:
Loading class `com.mysql.jdbc.Driver’. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver’. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
這要求我們註冊驅動時,把Class.forName(“com.mysql.jdbc.Driver”);改成 Class.forName(“com.mysql.cj.jdbc.Driver”);
當我信息滿滿的修改之後重新編譯時,再次出現了錯誤:
錯誤2:
Fri Feb 22 08:55:38 CST 2019 WARN: Establishing SSL connection without server’s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn’t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to ‘false’. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
這要求我們在設置url參數時,將useSSL=false,修改後 jdbc:mysql://localhost:3306/ds3?useSSL=false
當我修改後,本以為這下應該沒問題了,沒想到,再一次出現了問題
錯誤3:
Exception in thread “main” java.sql.SQLException: The server time zone value ‘Öйú±ê׼ʱ¼ä’ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.
這要求我們修改時區,修改成jdbc:mysql://localhost:3306/ds3?useSSL=falseserverTimezone=UTC
終於,不在報錯誤了。
錯誤4:當我們配置xml文件時,要把轉為其本身的轉義字元
配置properties文件的urlurl=jdbc:mysql:///ds3?useSSL=falseserverTimezone=UTC配置xml文件的urlproperty name=”url”jdbc:mysql://localhost:3306/ds3?useSSL=falseserverTimezone=UTC/property
連接mysql錯誤2013
連接mysql錯誤2013是設置錯誤造成的,解決方法為:
1、回到電腦桌面,找到我的電腦點擊右鍵。找到管理選項雙擊。
2、點擊服務和應用程序。
3、點擊服務。
4、找到MySql。發現描述項為空。雙擊。
5、點擊啟動,再次打開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’;
MySQL為什麼連接不了?
MySQL ‘localhost’ (10061)解決方法
MySQL ‘localhost’ (10061)解決方法
首先檢查MySQL 服務沒有啟動》如果沒有啟動,則要啟動這個服務。
昨天,重起伺服器後出現MySQL ‘localhost’ (10061)錯誤,開始以為是因為資料庫鏈接打開過多,資料庫資源耗盡的緣故,但是重啟伺服器以後,仍舊出現問題,於是在網上查找解決方法。大體如下:
解決辦法:
第一步
刪除c:\windowns下面的my.ini
第二步
打開c:\mysql\bin\winmysqladmin.exe 輸入用戶名 和密碼
第三步 在dos下 輸入 mysqld-nt -remove 刪除服務
在接著輸入 mysqld-nt -install
第四步 輸入mysql 啟動成功。
其它可參考的方法:
1.看看hosts文件中localhost是不是指向127.0.0.1
2.如果是沒啟動mysql服務,則可運行net start mysql。
3.一些相關命令:
mysqld-nt –install #啟動Mysql
mysql #運行Mysql
mysql -h ipAddress -u username -p
或
者:直接去bin里點mysqld.exe或mysqld-nt.exe,看下它的進程能否正常運行,如不行,再去控制面板,服務里去啟動它,看下是什麼
錯誤。如果不行,就在添加刪除里刪去mysql,然後再重裝mysql,一般都能解決問題,可以在安裝前備份一下DATA。
Error: Can’t connect to MySQL server on ‘localhost’ (10061)
Errno.: 2003
錯誤編號:2003
問題分析:
無法連接到 MySQL 伺服器,可能的情況為:
1、MySQL 服務沒有啟動,一般是在異常的情況下 MySQL 無法啟動導致的,比如無可用的磁碟空間,my.ini 里 MySQL 的 basedir 路徑設置錯誤等;
2、MySQL 伺服器資源緊張,導致無法連接。
解決方法:
1、如果你是虛擬主機用戶(購買的空間),則聯繫空間商檢查 MySQL 是否正常啟動,並確認 MySQL 的配置信息(是否為 localhost);
2、如果你是獨立主機用戶(擁有管理主機許可權),則按下面步驟檢查:
1)檢查磁碟空間是否還有剩餘可用空間,盡量保持有足夠的磁碟空間可用。
2)檢查 my.ini 里的 basedir (MySQL 安裝地址) 和 datadir (數據目錄存放地址)等參數設置是否正確,然後重新啟動下 MySQL 服務。
還有一種方法是將伺服器的windows補丁。
微軟9月9日發布了TCP/IP更新補丁(KB967723),如果伺服器開啟自動更新或者有自動更新軟體下載更新了這個補丁,那麼就會出現這個問題。
有人可能會問,為什麼9號出現的補丁,到現在才發現問題?
大家都知道,伺服器不是每天都重啟的,有的伺服器可能一個月或者一年半載重啟一次,有的可能在9月9日以後重啟過伺服器,所以補丁生效了(我個人這麼認為)。
補丁卸載方法:登錄伺服器,進入控制面板 — 添加和刪除程序 — (勾選上方的「顯示更新」)
在裡面可以看到更新的KB967723這個補丁,然後就想卸載普通軟體一樣卸載,卸載中會提示你,如果卸載可能導致程序運行出錯,沒關係,選擇「是」,繼續卸載。
卸載完成後程序伺服器,一切正常!
至於該補丁修補什麼漏洞,卸載後是否會出現伺服器安全隱患,這個先不說,要MYSQL正常運行,臨時的解決辦法只有如此。
還有種情況下,你可以這樣解決
Discuz! info: Can not connect to MySQL server
Time: 2007-11-13 6:25pm
Script: /bbs/index.php
Error: Can’t connect to MySQL server on ‘localhost’ (10061)
Errno.: 2003
Similar error report has beed dispatched to administrator before.
正常情況下原因如下:
網站論壇訪問量過大,資料庫連接超過最大連接數.MYSQL資料庫服務停止了.
解決方法(針對WIN系統):
1, 首先到系統服務裡面找到MYSQL服務並啟動MYSQL服務.
2, 到MYSQL安裝目錄找到MY.INI文件,打開MY.INI查找max_connections 修改連接數為1000 重啟IIS與MYSQL服務.
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/237298.html