mariadb是mysql的一個分支,須要進一步瞭解的參考:https://mariadb.org/html
安裝參考教程:window版安裝:Mariadb 介紹 1 (安裝)mysql
linux版安裝 :centos7 yum安裝mysql | mariaDblinux
補充: mysql的主從複製(master-slave),我就以mariadb來進行演示了sql
MySQL之間數據複製的基礎是二進制日誌文件(binary log file)。一臺MySQL數據庫一旦啓用二進制日誌後,其做爲master,它的數據庫中全部操做都會以「事件」的方式記錄在二進制日誌中,其餘數據庫做爲slave經過一個I/O線程與主服務器保持通訊,並監控master的二進制日誌文件的變化,若是發現master二進制日誌文件發生變化,則會把變化複製到本身的中繼日誌中,而後slave的一個SQL線程會把相關的「事件」執行到本身的數據庫中,以此實現從數據庫和主數據庫的一致性,也就實現了主從複製。數據庫
1> 準備兩臺服務器 centos
master 192.168.248,147 /linux (centos7)服務器
slave 192.168.248.148 /linux (centos7)ide
centos7 安裝mariadb後,默認無密碼登陸 1> mysql -uroot -p 回車 2> use mysql; 切換到mysql數據庫 3> update user set password=password("自定義密碼") where user='root'; 4> flush privileges; 刷新生效
2> 配置主服務器 (147 服務器)測試
1> 修改配置文件: [mysqld] log-bin=mysql-bin #開啓二進制日誌 server-id=1 #設置server-id
2> 重啓mysql,建立用於同步的用戶帳號 mysql> CREATE USER 'huhy'@'192.168.248.147' IDENTIFIED BY 'huhy';#建立用戶 mysql> GRANT REPLICATION SLAVE ON *.* TO 'huhy'@'192.168.248.147';#分配權限 mysql>flush privileges; #刷新權限 3> 查看master狀態,記錄二進制文件名(mysql-bin.000001)和位置(569): SHOW MASTER STATUS;
從服務器配置: 1>my.cnf配置文件,添加server-id [mysqld] server-id=2 #設置server-id,必須惟一
2>重啓mysql,打開mysql會話,執行同步SQL語句(須要主服務器主機名,登錄憑據,二進制文件的名稱和位置): CHANGE MASTER TO MASTER_HOST='192.168.248.147',MASTER_USER='huhy',MASTER_PASSWORD='huhy', MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=569;
3> 啓動同步進程:
start slave; 【stop slave】
4> 查看slave狀態:
show slave status\G;
注意:這個當其中兩個都是yes的時候代碼同步開啓成功。 centos7
問題:這個可能會出現個問題, Slave_IO_Running: Connecting 鏈接問題: 以下:
產生這個問題的緣由是咱們建立的同步用戶沒法進行遠程鏈接,從服務器沒法鏈接到主服務器:
grant all privileges on *.* to huhy@'%'identified by 'huhy'; 受權後便可
flush privileges; 刷新權限
執行後便可完成同步
補充:能夠再my.cnf中設置同步哪些數據庫:
# 不一樣步哪些數據庫 binlog-ignore-db = mysql # 只同步哪些數據庫,除此以外,其餘不一樣步 binlog-do-db = test
到這mysql的主從複製已經搞好了,有不理解的能夠一塊兒討論