1. 程式人生 > 其它 >Mysql之迂迴連線術

Mysql之迂迴連線術

關鍵詞:OmniDB、Mysql Router

背景:專案的測試資料庫放在了生產機器上,而公司忽然禁止辦公網路訪問生產機器上的資料庫,那麼就只能迂迴訪問了,攤手.jpg。

一、OmniDB

1.下載

官網:https://omnidb.org

雖然辦公網路不能訪問生產機器了,但是測試伺服器可以呀,下載個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走起,這下可以訪問資料庫啦~