117 遠端連線mysql資料庫的幾種方式
1. 直接連線mysql伺服器3306埠
3306埠無法遠端訪問的解決方案
a.網路檢測
1)ping 主機的ip地址
— 如果ping不通,說明你的網路有問題,可以搜尋解決網路問題的方案
2)telnet 主機ip地址 3306
— 如果顯示無法連線,則可能是網路問題,也可能是其它問題,需要下面的步驟繼續排查
3)telnet 主機ip地址 22
— 如果無法連線,可能是你的主機沒有安裝ssh-server(一般系統只預設安裝ssh-client);
— 也可能是防火牆把22埠禁用,不一定是網路問題(這一步僅和上一步做對比;
— 如果能夠連線,說明網路沒有問題,而是你的主機配置問題,然後按以下步驟繼續排查)
b.埠檢測
1) netstat -ntpl | grep 3306
tcp 0 0 127.0.0.1:3306 127.0.0.1:* LISTEN -
2) netstat -ntpl | grep 22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
3)結論
— :::3306 0.0.0.0:22 都是表明允許任意ip訪問(:::3306的結論是根據結果推測,不保證正確)
— 127.0.0.1:3306 表示僅允許本機訪問
— 對於埠只允許本機訪問,可以檢視兩個地方的配置:
1.防火牆對3306埠進行了限制,針對這種情況下面c項說明了解決方案
2.mysql配置繫結本機地址,針對這種情況下面的d項說明了解決方案
c.防火牆檢測
— ubuntu下使用ufw工具
sudo ufw status 檢視防火牆狀態,在ubuntu下iptables一般被ufw接管,而selinux是預設不安裝的,如果你曾經安裝過,就需要禁用seliux並重啟系統了。
sudo ufw enable/disable 啟用和禁用防火牆
sudo ufw allow 3306 允許訪問3306埠
— 以下是centos等系統的做法:
1)iptables –list檢視;
2)開啟防火牆3306埠
vim /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT(允許3306埠通過防火牆)
/etc/init.d/iptables restart(重啟防火牆使配置生效)
3)或者直接關閉防火牆;
參考:http://blog.csdn.net/fjssharpsword/article/details/50973283
d.mysql配置檔案檢查
檢查my.cnf的配置,bind-address=addr可以配置繫結ip地址。
不配置或者IP配置為0.0.0.0,表示監聽所有客戶端連線。
— 如何查詢my.cnf配置檔案:
ps -aux | grep mysql 檢視程式ID是3340
ll /proc/3340 檢視程式程式情況,找配置檔案
或者#which mysql 找程式路徑
e.mysql使用者訪問許可權
進入mysql資料庫
$mysql -u root -p
>use mysql;
>select host,user from user;
MySQL建使用者的時候會指定一個host,預設是127.0.0.1/localhost只能本機訪問;
其它機器用這個使用者帳號訪問會提示沒有許可權,host改為%,表示允許所有機器訪問。
例如: 你想myuser使用mypassword(密碼)從任何主機連線到mysql伺服器的話。
mysql>GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允許使用者myuser從ip為192.168.1.6的主機連線到mysql伺服器,並使用mypassword作為密碼
mysql>GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY
'mypassword' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES
使修改生效,就可以了
2.ssh通道
mysql伺服器安裝了ssh-server,並開放了22埠
a.ssh配置項中ip為mysql伺服器ip
b.使用者名稱和密碼是mysql伺服器主機的使用者名稱和密碼
c.mysql配置項為mysql的使用者名稱和密碼
3.http通道
mysql伺服器搭建了web伺服器,以lnmp環境為例。
a.把資料庫連線工具安裝根目錄下的ntunnel_mysql.php檔案拷貝到mysql伺服器的web伺服器根目錄。
b.通道地址http://mysql伺服器ip或域名/ntunnel_mysql.php
c.使用者名稱為mysql伺服器主機的使用者名稱和密碼
d.mysql配置項為mysql的使用者名稱和密碼
更多內容請關注微信訂閱號:phpstory
相關文章
- 遠端連線mysql資料庫MySql資料庫
- mybatis連線資料庫的幾種方式MyBatis資料庫
- php連線mysql資料庫的幾種方法PHPMySql資料庫
- Spring連線資料庫的幾種常用的方式Spring資料庫
- php遠端連線mysql資料庫的步驟PHPMySql資料庫
- MySQL資料庫遠端連線開啟方法MySql資料庫
- 設定如何遠端連線mysql資料庫MySql資料庫
- 連線MySQL資料庫的兩種方式介紹MySql資料庫
- git連線遠端倉庫的方式Git
- MySql資料庫備份的幾種方式MySql資料庫
- Java連線遠端的Access資料庫Java資料庫
- linux配置mysql資料庫遠端連線失敗LinuxMySql資料庫
- ORACLE 配置連線遠端資料庫Oracle資料庫
- 資料庫遠端連線失敗資料庫
- MySQL 簡潔連線資料庫方式MySql資料庫
- 幾種常見的資料庫連線方法資料庫
- 遠端連線MYSQLMySql
- MySQL 資料庫定時備份的幾種方式MySql資料庫
- MySQL client客戶端的四種連線方式MySqlclient客戶端
- oracle資料庫透過sqlplus連線的幾種方式介紹Oracle資料庫SQL
- 連線資料之遠端呼叫Access資料庫(轉)資料庫
- sqlplus連線資料庫的幾種方法SQL資料庫
- 【LISTENER】資料庫連線串的幾種寫法資料庫
- 幾種連線資料庫的OLEDB驅動程式資料庫
- PHP 遠端使用 PDO 連線 access 資料庫PHP資料庫
- PL/SQL Developer連線遠端Oracle資料庫SQLDeveloperOracle資料庫
- 用SQLyog或Navicat遠端連線資料庫SQL資料庫
- Oracle 11g連線遠端資料庫Oracle資料庫
- mysql資料庫連表查詢的幾種方法MySql資料庫
- golang 幾種字串的連線方式Golang字串
- 幾種表的連線方式(SQL)SQL
- 允許遠端連線到MySQL資料庫伺服器的步驟MySql資料庫伺服器
- plsql本機不安裝資料庫連線遠端資料庫SQL資料庫
- rd遠端桌面連線方式
- rdp遠端桌面連線方式
- MYSQL遠端連線配置MySql
- 配置 MySQL 遠端連線MySql
- MYSQL配置遠端連線MySql