iT邦幫忙

0

如何管理多個 mysql ?

  • 分享至 

  • xImage

一套程式配一個 mysql
會分佈在各自的主機上(linode)
只是想到一件事情

假設所有的 mysql 的某個資料表要新增一個欄位(或刪除、新增資料表⋯⋯等等)
這如果有一百台主機(一百套程式和 一百套mysql 各自運作)
不就要透過 phpmyadmin 登入一百次,新增一百次?
有沒有什麼方式可以解決這個問題?
很好奇這怎麼集中管理?!
請有經驗的高手指教,謝謝

ccutmis iT邦高手 2 級 ‧ 2019-08-07 17:41:22 檢舉
mysql可以用命令列執行 可以匯入sql執行某些sql語法或dump database
因此也可以把那些固定執行的語句寫成.bat或.sh執行
google搜 'mysql command line' 了解更多詳情
或者用python寫自動化執行的腳本
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
3
㊣浩瀚星空㊣
iT邦大神 1 級 ‧ 2019-08-07 18:03:35
最佳解答

這其實是要看你的情境處理

1.更新方式:
如果說mysql是屬於在各自機器內,由程式各自連結的情況下。
那就得從程式下手,程式中得要安排好版本及更新機制處理。
也就是說將要更新的sql碼寫到更新程式上。並用版本號來控管。
當程式在開始運行時就得要檢查是否有新的版本,有的話並下載新的版本更新檔。
再去運行更新檔內的sql碼來達到變更資料欄位的做用。

2.統一管理方式
如果是統一在同一個mysql中管理。且資料庫表都是一致的情況下。
可以利用一下mysql表中的information_schema來取得所有對應相關表的欄位分析判斷後。
然後再統一性的去生成更新欄位的語法出來。

其實100個變更真的沒有什麼。不需要去想的太難。同一區有同一區的做法。
不同區就只能用程式來幫你處理。
不過如果程式無法配合的情況下,那就只能請你一個一個去下命令了。

0

我是集中在日本區域,集中在同一區域的機房可以使用private ip,每台Linode針對private ip開3306,由一台CentOS走private路由下sql指令。

1
planetoid
iT邦新手 1 級 ‧ 2021-03-21 21:48:43

如果不同台資料庫要自動同步的話,可以用 MySQL replication,就不用每台手動下指令

我要發表回答

立即登入回答