連接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

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

相關推薦

  • 如何修改mysql的埠號

    本文將介紹如何修改mysql的埠號,方便開發者根據實際需求配置對應埠號。 一、為什麼需要修改mysql埠號 默認情況下,mysql使用的埠號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python 常用資料庫有哪些?

    在Python編程中,資料庫是不可或缺的一部分。隨著互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的資料庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • openeuler安裝資料庫方案

    本文將介紹在openeuler操作系統中安裝資料庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟體源 sudo…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL資料庫 在使用Python操作MySQL之前,我們需要先連接MySQL資料庫。在Python中,我…

    編程 2025-04-29
  • 資料庫第三範式會有刪除插入異常

    如果沒有正確設計資料庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係資料庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • MySQL遞歸函數的用法

    本文將從多個方面對MySQL遞歸函數的用法做詳細的闡述,包括函數的定義、使用方法、示例及注意事項。 一、遞歸函數的定義 遞歸函數是指在函數內部調用自身的函數。MySQL提供了CRE…

    編程 2025-04-29
  • leveldb和unqlite:兩個高性能的資料庫存儲引擎

    本文將介紹兩款高性能的資料庫存儲引擎:leveldb和unqlite,並從多個方面對它們進行詳細的闡述。 一、leveldb:輕量級的鍵值存儲引擎 1、leveldb概述: lev…

    編程 2025-04-28
  • Python怎麼導入資料庫

    Python是一種高級編程語言。它具有簡單、易讀的語法和廣泛的庫,讓它成為一個靈活和強大的工具。Python的資料庫連接類型可以多種多樣,其中包括MySQL、Oracle、Post…

    編程 2025-04-28
  • MySQL bigint與long的區別

    本文將從數據類型定義、存儲空間、數據範圍、計算效率、應用場景五個方面詳細闡述MySQL bigint與long的區別。 一、數據類型定義 bigint在MySQL中是一種有符號的整…

    編程 2025-04-28
  • MySQL左連接索引不生效問題解決

    在MySQL資料庫中,經常會使用左連接查詢操作,但是左連接查詢中索引不生效的情況也比較常見。本文將從多個方面探討MySQL左連接索引不生效問題,並給出相應的解決方法。 一、索引的作…

    編程 2025-04-28

發表回復

登錄後才能評論