Galera是一款可以让MySQL同步复制的工具,实现真正的双主、多主,客户端连接到不同的MySQL实例进行读写操作就跟操作同一个实例一样,多个MySQL之间的数据是完全一致的。Galera主要是在保证数据一致性的前提下提高整体读的吞吐量,因此比MySQL自带主从方式更好。
Galera并没有分表分库功能,如果想要使用Galera,又想分表分库,可与Cobar结合使用,Cobar下如果使用Galara可以获得更高的可靠性,数据一致性,避免有些Cobar切换了主从,而另外一些没切换带来的数据不一致问题。
第一步:下载安装
使用galera时,还需要一个Galera库,官方下载地址是http://galeracluster.com/downloads/ 。
Galera需要的MySQL/MariaDB版本有一个额外wsrep的补丁,因此不能直接用普通的版本。MySQL的版本可以从Galera的官网下载到,目前提供5.5和5.6两个版本。
MariaDB的版本可以从MariaDB的官网下载到https://downloads.mariadb.org/mariadb-galera/ ,MariaDB的10.0对应MySQL的5.6。
源码编译galera前需要安装的依赖库有boost,scons,check,openssl的开发版,您可根据自己的情况安装。galera使用scons安装,因此跟常规的命令不同,其实只要执行一个脚本即可。
$ scripts/build.sh
编译后在当前目录下生成libgalera_smm.so文件。
第二步:配置
Galera只需要在MySQL的配置文件my.cnf中增加几行wsrep相关内容即可
[mysqld]
# 配置前面编译出来的libgalera_smm.so文件路径
wsrep_provider = /home/lyw/c2/galera-3-25.3.12/libgalera_smm.so
# 配置整个集群各实例的ip:port
wsrep_cluster_address = 'gcomm://192.168.1.8:24011,192.168.1.8:24021,192.168.1.8:24031'
# 配置自己的ip:port,每个配置各不相同
wsrep_node_address = '192.168.1.8:24011'
其他配置根据自己的情况配置。我这里配置了3个,my11.cnf,my21.cnf,my31.cnf。
第三步:初始化
初始化同MySQL一样,对每个数据库执行一下 mysql_install_db 脚本即可:
$ scripts/mysql_install_db --defaults-file=etc/my11.cnf
$ scripts/mysql_install_db --defaults-file=etc/my21.cnf
$ scripts/mysql_install_db --defaults-file=etc/my31.cnf
第四步:启动
前面配置的三台MySQL,我们先启动第一台,需要设置 --wsrep_cluster_address=gcomm:// 参数:
$ bin/mysqld_safe --defaults-file=etc/my11.cnf --wsrep_cluster_address=gcomm:// &
等待第一台启动成功后,我们启动后面两台,这个时候不需要上面的参数,实际上是使用了配置文件中的值:
$ bin/mysqld_safe --defaults-file=etc/my21.cnf &
$ bin/mysqld_safe --defaults-file=etc/my31.cnf &
这样就整个集群就启动好了,以后如果有某进程挂了,需要重启,就不需要加--wsrep_cluster_address参数。
第五步:测试
启动好后我们要测试下是否真的成功。我这里使用mysql客户端,您可使用自己喜欢的客户端工具,注意这里连接的端口是MySQL的端口,而不是上面Galera的端口。
$ bin/mysql -uroot -h127.0.0.1 -P14011 MariaDB [(none)]> create database lyw; $ bin/mysql -uroot -h127.0.0.1 -P14021 MariaDB [(none)]> show databases like 'lyw'; +----------------+ | Database (lyw) | +----------------+ | lyw | +----------------+ 1 row in set (0.00 sec) $ bin/mysql -uroot -h127.0.0.1 -P14031 MariaDB [(none)]> show databases like 'lyw'; +----------------+ | Database (lyw) | +----------------+ | lyw | +----------------+ 1 row in set (0.00 sec)
可见在一个库里作了一个操作,在其他库中也有了相同的修改,Galera启动成功。
我们也可以查看wsrep相关的参数判断是否启动成功:
MariaDB [(none)]> show variables like 'wsrep_on'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | wsrep_on | ON | +---------------+-------+ MariaDB [(none)]> show status like 'wsrep_connected'; +-----------------+-------+ | Variable_name | Value | +-----------------+-------+ | wsrep_connected | ON | +-----------------+-------+ MariaDB [(none)]> show status like 'wsrep_ready'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | wsrep_ready | ON | +---------------+-------+
wsrep_on 值为ON则说明启动成功。
wsrep_connected值为ON说明连接到了集群。
wsrep_ready值为ON说明已经准备好接受SQL请求了。该值最关键。
wsrep打头的参数都是跟galera相关的,其他的在使用中慢慢研究了。

要優化MySQL慢查詢,需使用slowquerylog和performance_schema:1.啟用slowquerylog並設置閾值,記錄慢查詢;2.利用performance_schema分析查詢執行細節,找出性能瓶頸並優化。

MySQL和SQL是開發者必備技能。 1.MySQL是開源的關係型數據庫管理系統,SQL是用於管理和操作數據庫的標準語言。 2.MySQL通過高效的數據存儲和檢索功能支持多種存儲引擎,SQL通過簡單語句完成複雜數據操作。 3.使用示例包括基本查詢和高級查詢,如按條件過濾和排序。 4.常見錯誤包括語法錯誤和性能問題,可通過檢查SQL語句和使用EXPLAIN命令優化。 5.性能優化技巧包括使用索引、避免全表掃描、優化JOIN操作和提升代碼可讀性。

MySQL異步主從復制通過binlog實現數據同步,提升讀性能和高可用性。 1)主服務器記錄變更到binlog;2)從服務器通過I/O線程讀取binlog;3)從服務器的SQL線程應用binlog同步數據。

MySQL是一個開源的關係型數據庫管理系統。 1)創建數據庫和表:使用CREATEDATABASE和CREATETABLE命令。 2)基本操作:INSERT、UPDATE、DELETE和SELECT。 3)高級操作:JOIN、子查詢和事務處理。 4)調試技巧:檢查語法、數據類型和權限。 5)優化建議:使用索引、避免SELECT*和使用事務。

MySQL的安裝和基本操作包括:1.下載並安裝MySQL,設置根用戶密碼;2.使用SQL命令創建數據庫和表,如CREATEDATABASE和CREATETABLE;3.執行CRUD操作,使用INSERT,SELECT,UPDATE,DELETE命令;4.創建索引和存儲過程以優化性能和實現複雜邏輯。通過這些步驟,你可以從零開始構建和管理MySQL數據庫。

InnoDBBufferPool通過將數據和索引頁加載到內存中來提升MySQL數據庫的性能。 1)數據頁加載到BufferPool中,減少磁盤I/O。 2)臟頁被標記並定期刷新到磁盤。 3)LRU算法管理數據頁淘汰。 4)預讀機制提前加載可能需要的數據頁。

MySQL適合初學者使用,因為它安裝簡單、功能強大且易於管理數據。 1.安裝和配置簡單,適用於多種操作系統。 2.支持基本操作如創建數據庫和表、插入、查詢、更新和刪除數據。 3.提供高級功能如JOIN操作和子查詢。 4.可以通過索引、查詢優化和分錶分區來提升性能。 5.支持備份、恢復和安全措施,確保數據的安全和一致性。

全表掃描在MySQL中可能比使用索引更快,具體情況包括:1)數據量較小時;2)查詢返回大量數據時;3)索引列不具備高選擇性時;4)複雜查詢時。通過分析查詢計劃、優化索引、避免過度索引和定期維護表,可以在實際應用中做出最優選擇。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 Linux新版
SublimeText3 Linux最新版

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3漢化版
中文版,非常好用

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。