標籤:分享 資料庫主從 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資料庫主從複製配置