Mysql資料庫主從複製配置

來源:互聯網
上載者:User

標籤:分享   資料庫主從   net   資料庫服務   資料   主從   ignore   fill   連接埠號碼   

備忘:

  • 以下操作需要在資料庫已經安裝的前提下進行,本例子需要兩個Mysql資料庫伺服器:一台作為Master主要資料庫,一台作為Slave從資料庫.
  • Mysql資料庫可以同時配置Master和Slave,既可以做主要資料庫,也可以做從資料庫。
1,配置Master主要資料庫
  • 作業系統 Centos7
  • 資料庫版本 Mysql5.7
  • IP地址 192.168.20.11
  • 連接埠號碼 3306
1.1,修改my.cnf檔案配置
# vim /etc/my.cnf

在[mysqld]下面添加如下配置:

server-id = 1 #唯一的(確保每個資料庫的server-id值都是唯一的)binlog_format = MIXED #binlog日誌格式,mysql預設採用statement,建議使用mixedlog_bin = master-bin #binlog記錄檔log_bin_index = master-bin.indexexpire-logs-days = 14 #日誌到期清理時間sync_binlog = 0binlog_cache_size = 4M #binlog緩衝大小max_binlog_cache_size = 8M #binlog最大緩衝大小max_binlog_size = 1024M #每個記錄檔大小log_slave_updatesbinlog_do_db = energy #設定同步的表binlog_ignore_db = mysql #不需要同步的表

1.2,重啟服務
# service mysqld restart

1.3,建立同步的使用者1.3.1,登入mysql資料庫
# mysql -uroot -proot

1.3.2給Slave資料庫建立用於串連的賬戶
# grant replication slave on *.* to ‘slave‘ @‘192.168.20.%‘ identified by ‘slave‘;

註: 建立賬戶slave,密碼slave; 許可權:replication slave(複製需要的許可權,監視和管理複製帳號許可權); 
IP允許的範圍:192.168.20.%(允許192.168.20開頭的網段,正式環境請配置指定從資料庫伺服器IP)。

1.4,查看master狀態
mysql> show master status;+-------------------+------+-------------+----------------+---------------+| File                 | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+-------------------+-------+-------------+---------------+--------------+| master1-bin.000001  |    154 | energy       | mysql          |                   |+-------------------+--------+------------+--------------+-----------------+1 row in set (0.00 sec)

註: File:二進位記錄檔,記錄資料庫變化(資料庫,表,視圖,函數等增刪改),資料同步的關鍵檔案,Slave資料庫連接的時候會用到。 
Position:記錄位置,Slave資料庫連接的時候會用到。

2,配置Slave從資料庫(例:192.168.20.21)
  • 作業系統 Centos7
  • 資料庫版本 Mysql5.7
  • IP地址 192.168.20.21
  • 連接埠號碼 3306
2.1,修改my.cnf檔案配置
# vim /etc/my.cnf

添加如下配置:

server-id = 2relay-log = slave-relay-binrelay-log-index = slave-relay-bin.index

2.2,重啟服務
# service mysqld restart

2.3,啟動同步功能2.3.1,登入mysql資料庫
# mysql -uroot -proot

2.3.2,串連master資料庫
change master to master_host=‘192.168.20.11‘,master_port=3306,master_user=‘slave‘,master_password=‘slave‘,master_log_file=‘master-bin.000001‘,master_log_pos=154;

註:

  • master_host:Master資料庫地址
  • master_port:Master資料庫連接埠
  • master_user:使用者名稱
  • master_log_file:對應Master資料庫二進位記錄檔
  • master_log_pos:對應Master資料庫Position
2.3.3,啟動slave:
#start slave;

2.4,查看運行狀態
# show slave status\G

當這下面兩個屬性為Yes的時候,配置成功。

Slave_IO_Running: YesSlave_SQL_Running: Yes

3,測試主從複製功能3.1,給Master資料庫添加資料3.1.1,登入Master資料庫(192.168.20.11)
# mysql -uroot -proot

3.1.2,建立資料庫energy並進入
mysql> create database `energy` default character set utf8 collate utf8_general_ci; mysql> show databases;mysql> use energy;

 
 

3.1.3,建立表test,並插入一條語句
mysql> create table test(id int primary key,name varchar(100) not null)default charset=utf8;mysql> insert test(id,name) values(1,‘張三‘);

查詢:

mysql> select * from test; 


3.1.4,建立視圖v_test
mysql> create view v_test as select id,name from test;

3.1.5,建立預存程序p_test

把分隔字元換成//

mysql> delimiter //  

建立預存程序

mysql> create procedure p_test () begin declare a int; set a=12;  select a from dual;  end//

3.2,查看Slave資料庫是否同步

註:查看Master資料庫energy,表test,視圖v_test,預存程序p_test是否同步

3.2.1,登入Slave資料庫(192.168.20.21)
[[email protected] ~]# mysql -uroot -proot
3.2.2,查看資料庫energy
mysql> show databases;

註:這裡顯示有energy,說明資料同步成功。

3.2.3,進入energy
mysql> use energy
3.2.4,查詢test表
mysql> select * from test;
3.2.5,查詢檢視
mysql> select * from v_test;

註:表和視圖均查詢成功,說明同步成功。

3.2.6,查詢預存程序p_test
mysql> show create procedure p_test;

註:同步成功。

Mysql資料庫主從複製配置

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.