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資料庫
- MySQL資料庫遠端連線開啟方法MySql資料庫
- MySql資料庫備份的幾種方式MySql資料庫
- linux配置mysql資料庫遠端連線失敗LinuxMySql資料庫
- git連線遠端倉庫的方式Git
- oracle資料庫透過sqlplus連線的幾種方式介紹Oracle資料庫SQL
- sqlplus連線資料庫的幾種方法SQL資料庫
- 資料庫遠端連線失敗資料庫
- ORACLE 配置連線遠端資料庫Oracle資料庫
- MySQL 資料庫定時備份的幾種方式MySql資料庫
- mysql資料庫連表查詢的幾種方法MySql資料庫
- 允許遠端連線到MySQL資料庫伺服器的步驟MySql資料庫伺服器
- 用SQLyog或Navicat遠端連線資料庫SQL資料庫
- PHP 遠端使用 PDO 連線 access 資料庫PHP資料庫
- PL/SQL Developer連線遠端Oracle資料庫SQLDeveloperOracle資料庫
- python遠端連線mysql以及pandas.DataFrame.to_sql寫入資料庫PythonMySql資料庫
- 如何快速讓MySQL資料庫伺服器支援遠端連線MRMySql資料庫伺服器
- mysql 遠端連線2003MySql
- python連線clickhouse資料庫的兩種方式小結Python資料庫
- rd遠端桌面連線方式
- rdp遠端桌面連線方式
- (詳細)ubuntu18.04建立mysql資料庫並本地database遠端連線UbuntuMySql資料庫Database
- VMware連線網路的幾種方式
- 資料庫SQL調優的幾種方式資料庫SQL
- 連線資料庫-mysql資料庫MySql
- 用Navicat連線資料庫-資料庫連線(MySQL演示)資料庫MySql
- mysql 遠端無法連線MySql
- 命令列遠端連線mysql命令列MySql
- mysql開啟遠端連線MySql
- 遠端桌面連線管理器,遠端桌面連線管理器遠端連線vps撥號伺服器的方式伺服器
- Python操作MySQL資料庫的5種方式PythonMySql資料庫
- 如何連線MySQL資料庫MySql資料庫
- django | 連線mysql資料庫DjangoMySql資料庫
- Python連線MySQL資料庫PythonMySql資料庫
- pycharm連線MySQL資料庫PyCharmMySql資料庫
- 阿里雲之遠端連線mysql阿里MySql
- Android連線網路資料庫的方式Android資料庫
- 連線別人的MySql資料庫MySql資料庫