mysql業務數據庫連接失敗(mysql業務數據庫連接失敗怎麼回事)

  • 1、mysql5.7.12報錯如下情況導致無法連接數據庫應該怎麼辦?
  • 2、連接mysql數據庫失敗怎麼辦
  • 3、無法連接遠程MySQL數據庫哪,如何解決
  • 4、為什麼連接mysql數據庫失敗呢?

一、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 進行控制的

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;

一、連接遠程數據庫:

1、顯示密碼

如:MySQL

連接遠程數據庫(192.168.5.116),端口“3306”,用戶名為“root”,密碼“123456”

C:/mysql -h

192.168.5.116 -P 3306 -u root -p123456

2、隱藏密碼

如:MySQL 連接本地數據庫,用戶名為“root”,

C:/mysql -h

localhost -u root -p

Enter password:

二、配置mysql允許遠程鏈接

默認情況下,mysql帳號不允許從遠程登陸,只能在localhost登錄。本文提供了二種方法設置mysql可以通過遠程主機進行連接。

一、改表法

在localhost登入mysql後,更改 “mysql” 數據庫里的 “user” 表裡的 “host”

項,將”localhost”改稱”%”

例如:

#mysql -u root

-p

Enter password:

……

mysql

mysqlupdate user

set host = ‘%’ where user = ‘root’;

mysqlselect host,

user from user;

二、授權法

例如:

你想myuser使用mypassword(密碼)從任何主機連接到mysql服務器的話。

mysqlGRANT ALL

PRIVILEGES ON *.* TO ‘myuser’@’%’IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;

如果你想允許用戶myuser從ip為192.168.1.6的主機連接到mysql服務器,並使用mypassword作為密碼

mysqlGRANT ALL

PRIVILEGES ON *.* TO ‘myuser’@’192.168.1.3’IDENTIFIED BY

‘mypassword’ WITH GRANT OPTION;

mysqlFLUSH

PRIVILEGES

使修改生效,就可以了

常見問題:

1、在採用法二授權法之後,無法在本地登錄mysql(如:#mysql -u root -p -h

192.168.5.116

Enter password:

ERROR 1045 (28000): Access denied for user

‘root’@’loadb116’ (using password: YES)

上例中loadb116是主機名.

解決方法:

1、這時可以使用:mysql -u

root -p 登錄,進入到mysql後。

mysql grant all privileges on *.* to ‘root’@’loadb116’

identified by ‘123456’ with grant option;

Query OK, 0 rows affected

(0.00 sec)

mysql flush

privileges;

Query OK, 0 rows affected (0.00

sec)

2、在本地使用ip地址登錄

#

mysql -u root -p -h

192.168.5.116

Enter password:

Welcome to the MySQL

monitor. Commands end with ; or /g.

Your MySQL connection id is 60

Server

version: 5.1.45 MySQL Community Server (GPL)

Type ‘help;’ or ‘/h’ for

help. Type ‘/c’ to clear the buffer.

mysql

在更新到 4.1.7 版本的 MySQL 後,發現需要使用 MySQLi 擴展方能正常使用數據庫,否則會出現 1251 – Client does not support authentication protocol requested by server; consider upgrading MySQL client 的提示,這個很納悶,我沒有研究具體的問題,只是切換到 MySQLi 擴展,其實在給 root 加上密碼前還是可以使用 MySQL 擴展的,可是給 root 加上密碼後就出現了上述客戶端版本太低的提示。目前已知解決方法:先用root登錄MYSQL服務器,執行原因是因為你使用的mysql服務器版本中使用了新的密碼驗證機制,這需要客戶端的版本要在4.0以上,原來的密碼函數被改為old_password();,這樣使用password()生成的密碼在舊的版本上的客戶端就不好使了,而PHP中的MYSQL客戶端都是3.23的(當然,mysqli的擴展除外),問題就在這了。

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
GJHJP的頭像GJHJP
上一篇 2024-10-03 23:13
下一篇 2024-10-03 23:13

相關推薦

  • 如何修改mysql的端口號

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

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

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

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

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

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

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

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

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

    編程 2025-04-28
  • 信用卡業務風險分析

    信用卡業務風險分析是指通過對銀行信用卡業務中的各類交易信息進行收集、整理、分析,發現各種風險因素,及時預警,有效防範和控制各類風險。 一、數據收集和預處理 數據收集是信用卡業務風險…

    編程 2025-04-27
  • CentOS 7在線安裝MySQL 8

    在本文中,我們將介紹如何在CentOS 7操作系統中在線安裝MySQL 8。我們會從安裝環境的準備開始,到安裝MySQL 8的過程進行詳細的闡述。 一、環境準備 在進行MySQL …

    編程 2025-04-27
  • 如何使用MySQL字段去重

    本文將從多個方面為您詳細介紹如何使用MySQL字段去重並給出相應的代碼示例。 一、SELECT DISTINCT語句去重 MySQL提供了SELECT DISTINCT語句,通過在…

    編程 2025-04-27
  • MySQL正則表達式替換

    MySQL正則表達式替換是指通過正則表達式對MySQL中的字符串進行替換。在文本處理方面,正則表達式是一種強大的工具,可以方便快捷地進行字符串處理和匹配。在MySQL中,可以使用正…

    編程 2025-04-27
  • Apache2.4和MySQL的全能編程開發工程師指南

    本文將從多個方面對Apache2.4和MySQL進行詳細的闡述,為全能編程開發工程師提供有用的參考和指導。首先,我們來解答這個標題所涵蓋的主題: 本文將提供Apache2.4和My…

    編程 2025-04-27

發表回復

登錄後才能評論