Centos7 + Mariadb主從配置


環境:

主服務器:192.168.100.3   系統 Centos7  test1

從服務器:192.168.100.6   系統 Centos7  test2

主服務器配置:

安裝mariadb數據庫

[root@test1 ~]# yum install mariadb mariadb-server -y
[root@test1 ~]# systemctl start mariadb.service
[root@test1 ~]# mysql_secure_installation ##初始化數據庫,設置root密碼等等,需要注意允許root遠程連接(實際生產環境中可以另起賬號)
[root@test1 ~]# mysql -u root -p   ##進入數據庫,輸入密碼
MariaDB [(none)]> show databases;
創建一個測試數據庫DB1:
MariaDB [(none)]> create database DB1;

賦予數據庫DB1連接權限:

MariaDB [(none)]> grant all privileges on *.* to root@’%’ identified by ‘redhat‘ with grant option;
MariaDB [(none)]> flush privileges;
使用DB1創建一個表:
MariaDB [(none)]> use DB1;

MariaDB [DB1]> create table test (name VARCHAR(20), sex CHAR(1), birth DATE, birthaddr VARCHAR(20));
MariaDB [DB1]> insert into test values (‘abccs’,’f’,’1995-10-22′,’china’);  ##sql語句插入幾行記錄

 

將數據庫備份到從服務器

[root@test1 ~]# mysqldump -h localhost -u root -p DB1 > /root/1.sql 
[root@test1 ~]# scp -P10060 /root/1.sql root@192.168.100.6:/root/    ##使用SCP命令拷貝到從服務器(test2服務器上,ssh端口為10060)

從服務器配置:

從服務器按照上面的方法安裝mariadb,創建一個空數據庫DB1,不需要創建表,為了將主服務器上的mysql還原到從服務器上。

[root@test2 ~]#yum install mariadb mariadb-server -y
[root@test2 ~]#systemctl start mariadb.service
[root@test2  ~]# mysql_secure_installation
[root@test2   ~]# mysql -u root -p
MariaDB [(none)]> create database DB1;
[root@test2   ~]# mysql -h localhost -u root -p DB1 < /root/1.sql

Mysql的主從服務器配置:

主服務器配置:

在/etc/my.cnf 添加如下內容:

注:一定要加入到加到mysqld下面,如果加入的位置或者信息不對的話,執行
show master status;結果為空;

 配置如下:

#設置服務器ID,為1的表示為主服務器;如果服務器沒有以下配置,添加,如果有就跳過。
server-id=1
##啟動MySQ二進制日志系統,注意:如果原來的配置文件中已經有這一行,就不用再添加了。
log_bin=mysql-bin?
##需要同步的數據庫名,如果有多個數據庫,可重復此參數,每個數據庫一行\
binlog-do-db=DB1
##不同步mysql系統數據庫
binlog-ignore-db=mysql

 

重啟服務

[root@test1 ~]#systemctl restart mariadb.service   進入mysql,查看數據庫主機的配置文件狀態
[root@test1 ~]# mysql -u root -p
MariaDB [(none)]> show master status;

 查看主服務器,出現以上類似信息;如果看不見以下結果或者為空的話,說明my.cnf配置文件配置的有問題,請檢查即可。
這里記住File的值:mysql-bin.000003和Position的值:663,后面會用到。

從服務器配置:

配置MySQL從服務器的my.cnf文件;區別就是server-id不一樣
在/etc/my.cnf 添加如下內容:

#設置服務器ID,為1的表示為主服務器;如果服務器沒有以下配置,添加,如果有就跳過。
server-id=2
##啟動MySQ二進制日志系統,注意:如果原來的配置文件中已經有這一行,就不用再添加了。
log_bin=mysql-bin?
##需要同步的數據庫名,如果有多個數據庫,可重復此參數,每個數據庫一行\
binlog-do-db=DB1
##不同步mysql系統數據庫
binlog-ignore-db=mysql

 

接下來配置slave,進入從服務器的mysql控制台配置下:

[root@test2 ~]# mysql -uroot -p
MariaDB [(none)]> slave stop;
MariaDB [DB1]> change master to master_host=’192.168.100.3′,master_user=’root’,master_password=’redhat‘,master_log_file=’mysql-bin?.000003’,master_log_pos=663;
說明:change master to master_host='主服務器',master_user='mysql用戶名',
master_password='mysql服務密碼',master_log_file='File值',master_log_pos=Postion值;
MariaDB [(none)]> slave start;  ###啟動slave

 最后我們查看主從同步是否正常:

MariaDB [(none)]> show slave status \G;

 

主要是看 Slave_IO_Running 喝Slave_SQL_Runing 這兩個參數是yes就說明主從配置完成。

如果Slave_IO_Running 是 No,可以參考方法:

方法如下:

重置slave.

slave stop;

reset slave;

slave start;

重新執行show slave status \G;

文中部分材料來源:cnblogs作者

原文>>更多內容請訪問《翼的家園

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM