MySQL:修訂版本之間的差異

出自福留子孫
跳轉到: 導覽搜尋
跨伺服器叫用 MySQL
被叫用端設定
第 15 行: 第 15 行:
 
#打開 3306 port
 
#打開 3306 port
 
戰國策租賃主機不允許名外部叫用內部的 MySQL 。
 
戰國策租賃主機不允許名外部叫用內部的 MySQL 。
===檢測被叫用的伺服器
+
 
 +
===檢測被叫用的伺服器===
 +
#網路檢測:
 +
#*ping主機可以;
 +
#*telnet 主機3306端口不可以;
 +
#*telnet 主機22端口可以;
 +
#:跟伺服器沒關係
 +
#端口檢測:
 +
#*netstat -ntpl |grep 3306 得到 「tcp 0 0 :::3306 :::* LISTEN -」
 +
#*netstat -ntpl |grep 22 得到 「tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -」
 +
#:22端口監聽所有地址,而3306只監聽本機地址(綁定了到了本地),所以遠程無法訪問。修改my.cnf 中bind-address=0.0.0.0<br/>對於端口只允許本機訪問,有兩個相關設定,一個是防火牆擋3306,一個就是mysql配置綁定本機地址。
 +
#防火牆檢測:
 +
#*iptables --list查看;
 +
#*開啟防火牆3306端口:在 iptables 中加「-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT」,防火牆允許3306端口通過。
 +
#*或者直接關閉防火牆;
 +
#mysql配置文件檢查:
 +
#*my.cnf的配置,bind-address=addr可以配置綁定ip地址。不配置或者IP配置為0.0.0.0,表示監聽所有客戶端連接。
 +
#*#ps -aux | grep mysql 查看進程ID是3340
 +
#*#ll /proc/3340 查看進程程序情況,找配置文件
 +
#*或以 which mysql 找程序路徑
  
 
===叫用端設定===
 
===叫用端設定===

2019年10月20日 (日) 21:47的修訂版本

新舊版更迭

MySQLi

mysqli函式

跨伺服器叫用 MySQL

被叫用端設定

  1. 設定一個帳號:
    • HOST 為允許叫用的 ip ,不能用域名或 server 網址。所有 ip 登入,Host設置為 '%' 。
    • 設定帳號密碼,並以最保守的立場設定對諸資料表的權限。
    • flush privileges;
  2. /etc/my.cnf中的相關設定:
    • [mysqld]內新增一行:skip-name-resolve,關閉 MySQL DNS 反向解析。但伺服器會把在本機登入的使用者自動解析為'root'@'127.0.0.1';而不是'root'@'localhost';,如果權限表不合就會出問題。
    • [mysqld]內新增一行:lower_case_table_names=1,使MySQL忽略資料庫表名大小寫
  3. 打開 3306 port

戰國策租賃主機不允許名外部叫用內部的 MySQL 。

檢測被叫用的伺服器

  1. 網路檢測:
    • ping主機可以;
    • telnet 主機3306端口不可以;
    • telnet 主機22端口可以;
    跟伺服器沒關係
  2. 端口檢測:
    • netstat -ntpl |grep 3306 得到 「tcp 0 0 :::3306 :::* LISTEN -」
    • netstat -ntpl |grep 22 得到 「tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -」
    22端口監聽所有地址,而3306只監聽本機地址(綁定了到了本地),所以遠程無法訪問。修改my.cnf 中bind-address=0.0.0.0
    對於端口只允許本機訪問,有兩個相關設定,一個是防火牆擋3306,一個就是mysql配置綁定本機地址。
  3. 防火牆檢測:
    • iptables --list查看;
    • 開啟防火牆3306端口:在 iptables 中加「-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT」,防火牆允許3306端口通過。
    • 或者直接關閉防火牆;
  4. mysql配置文件檢查:
    • my.cnf的配置,bind-address=addr可以配置綁定ip地址。不配置或者IP配置為0.0.0.0,表示監聽所有客戶端連接。
      1. ps -aux | grep mysql 查看進程ID是3340
      2. ll /proc/3340 查看進程程序情況,找配置文件
    • 或以 which mysql 找程序路徑

叫用端設定