1. 程式人生 > >Windows下MySQL主從同步

Windows下MySQL主從同步

solid neu pan 需要 port per mas height 生成

Windows下MySQL主從同步修改master的my.ini配置文件在master中添加一個mysql主從復制需要的賬號查看master的status修改slave的my.ini配置文件slave連接master庫測試主從同步

Windows下MySQL主從同步

修改master的my.ini配置文件

從mysql官網下載的壓縮包中默認是沒有my.ini文件的,需要自己在根目錄手動建立一個my.ini文件

[mysqld] 
#設置3310端口
port = 3310
#server-id和log-bin必須設置
#設置master的serverid
server-id=1000
#要生成的二進制日記文件名稱

log-bin = mysql-bin
#要同步的數據庫
binlog-do-db=demodb
#不同步的數據庫,如果指定了binlog-do-db這裏應該可以不用指定的
#binlog-ignore-db=demodb2

在master中添加一個mysql主從復制需要的賬號

GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.*
TO mysql_backup@‘localhost‘
IDENTIFIED BY ‘123123‘;
flush privileges;

查看master的status

slave連接master的時候需要FilePosition

中的值

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000005 |
761 | demodb | | |
+------------------+----------+--------------+------------------+-------------------+

修改slave的my.ini配置文件

#"server-id必須有且不能和其他master或slave重復"
server-id = 1001
replicate-do-db = demodb
#log-bin = mysql-bin
#binlog-ignore-db = mysql #不備份的數據庫
#binlog-ignore-db = information_schema
#binlog-ignore-db = performation_schema
#binlog-ignore-db = sys
#log-slave-updates = 1
#read_only = 1

slave連接master庫

mysql> stop slave;
Query OK, 0 rows affected

#
"master_log_file和master_log_pos的內容,通過在master庫中通過show master status;可以獲得"

#
"如果master修改了端口,一定要加上master_port=xx端口"

#
"master_user和master_password就是上面在master中建立的用於同步數據的賬號密碼"

mysql>
change master to master_host=‘localhost‘,master_port=3310,master_user=‘mysql_backup‘,master_password=‘123123‘,master_log_file=‘mysql-bin.000005‘,master_log_pos=761;
Query OK, 0 rows affected

mysql>
start slave;
Query OK, 0 rows affected

#
"查看連接狀態,主要看Slave_IO_Running、Slave_SQL_Running。它們2個的值都必須是Yes才可以,不能是其他的Connecting之類"
mysql> show slave status;

測試主從同步

#"以下操作都是在master庫進行"

#
"創建需要同步的庫demodb"
mysql> create database demodb;
Query OK, 1 row affected
#"切換到demodb"
mysql> use demodb;
Database changed
#"創建一個userinfo表"
mysql> create table userinfo(id int(10) not null primary key,name varchar(10),age int(3));
Query OK, 0 rows affected
#"向userinfo表插入1條數據"
mysql> insert into userinfo(id,name,age) values(1,‘Yang-Onion‘,18);
Query OK, 1 row affected

#
"進入從庫會發現從庫已經有demodb數據庫userinfo表中已經有一條數據了"

Windows下MySQL主從同步