Mysql之迂迴連線術
關鍵詞:OmniDB、Mysql Router
背景:專案的測試資料庫放在了生產機器上,而公司忽然禁止辦公網路訪問生產機器上的資料庫,那麼就只能迂迴訪問了,攤手.jpg。
一、OmniDB
1.下載
雖然辦公網路不能訪問生產機器了,但是測試伺服器可以呀,下載個server版到測試伺服器上,解壓即可使用。
2.執行
nohup omnidb-server -H 0.0.0.0 -p 8090 &
p.s.:起服務前先檢查下埠是否被佔用,sudo lsof -i:8090,別問為啥要sudo,不用root身份你查不完整端口占用情況 (•̀ᴗ•́)و
3.訪問
可以在任何系統上使用瀏覽器進行ip+埠訪問,預設賬號和密碼都是admin,且支援多使用者。
4.使用
登入OmniDB後,Add Connection,新建一下目標資料庫的連線,連上資料庫後就是純介面操作了,小白也可以輕易上手,這裡不多做介紹了。
Connection Type裡可選的資料庫型別有:
postgresql
mysql
mariadb
oracle
terminal
sqlite
二、Mysql Router
1.簡介
MySQL Router是MySQL官方提供的一個輕量級中介軟體,是InnoDB Cluster的一部分,可在應用程式和後端MySQL伺服器之間提供透明路由。主要用以解決MySQL主從庫叢集的高可用、負載均衡、易擴充套件等問題。Router作為一個流量轉發層,位於應用與MySQL伺服器之間,其功能類似於LVS。
2.下載
官網:https://dev.mysql.com/downloads/router/
安裝指引: https://dev.mysql.com/doc/mysql-router/8.0/en/mysql-router-installation.html
p.s.:其實下個壓縮包直接解壓就能用啦,同樣的,找個能訪問生產機器的測試伺服器搞一波~
wget https://dev.mysql.com/get/Downloads/MySQL-Router/mysql-router-8.0.25-linux-glibc2.17-x86_64-minimal.tar.xz tar -Jxvf mysql-router-8.0.25-linux-glibc2.17-x86_64-minimal.tar.xz
leah@ubuntu:/opt/mysql-router-8.0.25-linux-glibc2.17-x86_64-minimal/bin$ export PATH=`pwd`:$PATH
leah@ubuntu:/opt/mysql-router-8.0.25-linux-glibc2.17-x86_64-minimal/bin$ mysqlrouter --version
MySQL Router Ver 8.0.25 for Linux on x86_64 (MySQL Community - GPL)
3.配置
mysqlrouter目錄下有個配置檔案例子sample_mysqlrouter.conf:
leah@ubuntu:/opt/mysql-router-8.0.25-linux-glibc2.17-x86_64-minimal/share/doc/mysqlrouter$ ls
INFO_BIN INFO_SRC sample_mysqlrouter.conf
參考檔案中的來配置就好了,由於我只是想通過伺服器A來訪問伺服器B上的mysql,並不是真的要做什麼負載均衡,所以這樣配置就好啦:
# 一個高可用的標籤
[routing:failover]
bind_address = 0.0.0.0
bind_port = 7001
max_connections = 1024
# 目前就支援兩種 : read-write 和 read-only
# read-write:用於高可用,用於可讀可寫
# read-only:用於負載均衡,只讀
mode = read-write
# 實際轉發的地址
# 第一個socket如果可用,就一直會使用第一個
# 如果第一個socket無法連線了,才會連線到第二個socket
destinations = 伺服器地址:埠
4.啟動
偷個懶,直接改那份sample_mysqlrouter.conf的話,就是下面這樣
nohup mysqlrouter --config /opt/mysql-router-8.0.25-linux-glibc2.17-x86_64-minimal/share/doc/mysqlrouter/sample_mysqlrouter.conf &
5.連線mysql
DBeaver或者Navicat走起,這下可以訪問資料庫啦~