select case stf.stationType when 'RAIN' then '雨情站' when 'RECIMEI' then '水位站' else '流量站' end tationName from radar_stations_info stf
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名注冊、雅安服務器托管、營銷軟件、網(wǎng)站建設(shè)、射洪網(wǎng)站維護、網(wǎng)站推廣。
php+mysql,打造國內(nèi)最新、最全 ... 購買充值系統(tǒng):支持點卡充值、網(wǎng)銀充值等全自動充值
select count(1) from "查詢的表" where "時間" = "當天零點" and "時間" "當前時間";
MySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典 MySQL AB 公司開發(fā),目前屬于 Oracle 旗下公司。
MySQL 最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在 WEB 應用方面 MySQL 是最好的 RDBMS (Relational Database Management System,關(guān)系數(shù)據(jù)庫管理系統(tǒng)) 應用軟件之一。
第1步 – 將Galera存儲庫添加到所有服務器
MySQL,修補包括Galera集群,不包括在默認的Ubuntu存儲庫,所以我們將開始通過添加由Galera項目維護的外部Ubuntu存儲庫到所有三個服務器。
注:Codership背后的公司Galera Cluster,維護該庫,但并非所有的外部存儲庫是可靠的。確保只從可信來源安裝。
首先,我們需要添加的存儲庫密鑰apt-key命令,該命令的apt-get將用于驗證該包是真實的。
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 44B7345738EBDE52594DAD80D669017EBC19DDBA
一旦我們在每個服務器的數(shù)據(jù)庫中擁有可信密鑰,我們就可以添加存儲庫。我們需要運行apt-get update ,以包括封裝在新的倉庫后體現(xiàn):
sudo add-apt-repository 'deb [arch=amd64,i386] xenial main'
sudo apt-get update
您可能會看到一個警告,簽名uses weak digest algorithm (SHA1) 有GitHub上一個開放的問題,解決這個()。在此期間,可以繼續(xù)。
一旦在所有三個服務器上更新了存儲庫,我們就可以安裝MySQL和Galera。
第2步 – 在所有服務器上安裝MySQL和Galera
在所有三臺服務器上運行以下命令安裝一個版本的MySQL修補程序與Galera,以及Galera和幾個依賴關(guān)系:
sudo apt-get install galera-3 galera-arbitrator-3 mysql-wsrep-5.6
在安裝過程中,將要求您設(shè)置MySQL管理用戶的密碼。 無論您選擇什么,一旦復制開始,此根密碼將被第一個節(jié)點的密碼覆蓋。
我們應該擁有所有必要開始配置集群件,但由于我們將依托rsync在后面的步驟,讓我們確保它安裝在所有這三個,以及..
sudo apt-get install rsync
這將確認的最新版本rsync已經(jīng)可用,或提示您升級或安裝。
一旦我們在三個服務器的每一個上安裝了MySQL,我們就可以開始配置。
第3步 – 配置第一個節(jié)點
集群中的每個節(jié)點都需要具有幾乎相同的配置。 因此,我們將在我們的第一臺機器上進行所有配置,然后將其復制到其他節(jié)點。
默認情況下,MySQL的配置檢查/etc/mysql/conf.d目錄從截至獲取其他配置設(shè)置.cnf 。 我們將在此目錄中創(chuàng)建一個具有所有特定于集群的指令的文件:
sudo nano /etc/mysql/conf.d/galera.cnf
將以下配置復制并粘貼到文件中。 您將需要更改以紅色突出顯示的設(shè)置。 我們將解釋每個部分的含義如下。
/etc/mysql/conf.d/galera.cnf在第一個節(jié)點
[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0
# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
# Galera Cluster Configuration
wsrep_cluster_name="test_cluster"
wsrep_cluster_address="gcomm://first_ip,second_ip,third_ip"
# Galera Synchronization Configuration
wsrep_sst_method=rsync
# Galera Node Configuration
wsrep_node_address="this_node_ip"
wsrep_node_name="this_node_name"
第一部分修改或再聲稱MySQL的設(shè)置,將允許群集正常工作。 例如,Galera Cluster不會的MyISAM或類似的非事務性存儲引擎工作, mysqld不能綁定到的IP地址本地主機。 您可以了解Galera Cluster上進行更詳細的設(shè)置系統(tǒng)配置頁面()。
在“加萊拉提供程序配置”部分配置,提供了一個寫設(shè)置復制API MySQL的組件。 這意味著Galera在我們的情況下,因為Galera是一個wsrep(寫集復制)提供程序。 我們指定常規(guī)參數(shù)以配置初始復制環(huán)境。 這不需要任何定制,但你可以了解更多有關(guān)加萊拉配置選項()。
在“加萊拉群集配置”部分定義集群,確定通過IP地址或可解析域名,為群集創(chuàng)建一個名字集群成員保證成員加入正確的組。 您可以更改wsrep_cluster_name的東西比更有意義test_cluster或保留原樣,但你必須更新wsrep_cluster_address與三個服務器的地址。 如果您的服務器具有專用IP地址,請在此處使用。
在“加萊拉同步配置”部分定義集群如何通信和同步成員之間的數(shù)據(jù)。 這僅用于在節(jié)點聯(lián)機時發(fā)生的狀態(tài)傳輸。 對于我們的初始設(shè)置,我們使用的是rsync ,因為它是常用的和做什么,我們需要現(xiàn)在。
在“加萊拉節(jié)點配置”部分明確了IP地址和當前服務器的名稱。 這在嘗試診斷日志中的問題以及以多種方式引用每個服務器時很有用。 該wsrep_node_address必須你在機器的地址相匹配,但你可以選擇你,以幫助您識別在日志文件中的節(jié)點想要的任何名稱。
當您對群集配置文件滿意后,將內(nèi)容復制到剪貼板中,保存并關(guān)閉文件。
接下來,/etc/mysql/my.cnf設(shè)置綁定地址為127.0.0.1。 這必須按順序注釋掉為我們在我們的galera.cnf`文件中正確設(shè)置它..
sudo nano /etc/mysql/my.cnf
/etc/mysql/my.cnf
. . .
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
# bind-address = 127.0.0.1
. . .
現(xiàn)在第一個服務器已配置,我們將繼續(xù)到下兩個節(jié)點。
第4步 – 配置剩余節(jié)點
在每個其余節(jié)點上,打開配置文件:
sudo nano /etc/mysql/conf.d/galera.cnf
粘貼到從第一個節(jié)點復制的配置中,然后更新“Galera節(jié)點配置”以使用您設(shè)置的特定節(jié)點的IP地址或可解析域名。 最后,更新其名稱,您可以將其設(shè)置為任何幫助您標識日志文件中的節(jié)點:
/etc/mysql/conf.d/galera.cnf
. . .
# Galera Node Configuration
wsrep_node_address="this_node_ip"
wsrep_node_name="this_node_name"
. . .
保存并退出每個服務器上的文件。 我們需要注釋掉這兩個服務器上的綁定地址。
sudo nano /etc/mysql/my.cnf
/etc/mysql/my.cnf
. . .
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
# bind-address = 127.0.0.1
. . .
我們幾乎準備好啟動集群,但在我們做之前,我們將確保相應的端口已打開。
第5步 – 在每個服務器上打開防火墻
在每個服務器上,讓我們檢查防火墻的狀態(tài):
sudo ufw status
在這種情況下,只允許SSH通過:
OutputStatus: active
您可能有其他規(guī)則或沒有防火墻規(guī)則。 由于在這種情況下只允許ssh流量,我們需要為MySQL和Galera流量添加規(guī)則。
Galera可以使用四個端口:
3306對于使用mysqldump方法的MySQL客戶端連接和狀態(tài)快照傳輸。
4567對于Galera群集復制流量,組播復制在此端口上同時使用UDP傳輸和TCP。
4568用于增量狀態(tài)傳輸。
4444用于所有其他狀態(tài)快照傳輸。
在我們的示例中,當我們進行設(shè)置時,我們將打開所有四個端口。 一旦我們確認復制正常,我們就要關(guān)閉我們實際上沒有使用的任何端口,并將流量限制在集群中的服務器。
使用以下命令打開端口:
sudo ufw allow 3306,4567,4568,4444/tcp
sudo ufw allow 4567/udp
注:根據(jù)還有什么是你的服務器上運行,你可能想限制訪問的時候了。
第6步 – 啟動集群
首先,我們需要停止正在運行的MySQL服務,以便我們的集群可以聯(lián)機。
在所有三個服務器上停止MySQL:
在所有三個服務器上使用以下命令停止mysql,以便我們可以在集群中將它們備份:
sudo systemctl stop mysql
systemctl不顯示所有服務管理命令的結(jié)果,所以要確保我們成功了,我們將使用下面的命令:
sudo systemctl status mysql
如果最后一行看起來像下面這樣,命令成功。
Output. . .
Sep 02 22:17:56 galera-02 systemd[1]: Stopped LSB: start and stop MySQL.
一旦我們關(guān)閉了mysql所有的服務器,我們就可以繼續(xù)進行。
啟動第一個節(jié)點:
我們已經(jīng)配置了集群的方式,即上線嘗試連接到其指定的至少一個其他節(jié)點的每個節(jié)點galera.cnf文件,以獲取其初始狀態(tài)。 一個正常的systemctl start mysql將失敗,因為那里是與連接第一個節(jié)點上運行任何節(jié)點,所以我們需要將傳遞wsrep-new-cluster參數(shù),我們開始第一個節(jié)點。 然而,無論是systemd也service將正確地接受--wsrep-new-cluster在這個時候的說法 ,所以我們需要使用啟動腳本啟動的第一個節(jié)點/etc/init.d 。 一旦你做到了這一點,你就可以開始與其他節(jié)點systemctl.
注意:如果你喜歡他們都與啟動systemd ,一旦你有另一個節(jié)點,你可以殺死初始節(jié)點。由于第二個節(jié)點是可用的,當您重新啟動第一個與sudo systemctl start mysql它將能夠加入到正在運行的集群
sudo /etc/init.d/mysql start --wsrep-new-cluster
當這個腳本命令時,節(jié)點被注冊為集群的一部分,我們可以使用以下命令查看它:
mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"