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的serveridserver-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 [email protected]‘localhost‘IDENTIFIED BY ‘123123‘;flush privileges;
查看master的status
slave连接master的时候需要
File
和Position
中的值
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 = 1001replicate-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表中已经有一条数据了"
原文地址:https://www.cnblogs.com/Yang2012/p/8640610.html
时间: 2024-08-04 17:05:54