myini配置文件中
主从复制需要通过二进制日志文件进行须开启二进制日志功能并配置Server ID
[mysqld]
logbin=mysqlbin
serverid=
serverid 为 之间默认为(拒绝所有slave)
innodb引擎耐用性增强
innodb_flush_log_at_trx_commit= and sync_binlog=
For the greatest possible durability and consistency in a replication setup using InnoDB with transactions you should use innodb_flush_log_at_trx_commit= and sync_binlog= in the master f file
slave 配置
serverid=
防止服务器主机名修改
relaylog=mysqldrelaybin
master
创建具有复制权限的账户repl
GRANT REPLICATION SLAVE ON **
> TO repl@rem IDENTIFIED BY slavepass;
mysql> FLUSH TABLES WITH READ LOCK;
对于InnoDB表的注意 FLUSH TABLES WITH READ LOCK块 COMMIT操作
保留客户端发出 FLUSH TABLES语句运行这样读锁仍然有效如果你退出客户端该锁被释放
使用 SHOW MASTER STATUS语句来确定当前的二进制日志文件的名称和位置
的mysql> SHOW MASTER STATUS;
+ + + + +
|文件|位置| Binlog_Do_DB | Binlog_Ignore_DB |
+ + + + +
MYSQLbin | |测试|说明书MYSQL |
+ + + + +
文件栏显示的日志文件的名称和位置显示在文件中的位置在这个例子中二进制日志文件是 mysqlbin的位置是记录这些值你需要它们以后当你设立的奴隶他们表示复制坐标奴隶从主应该开始处理新的更新
如果主已经运行以前没有二进制日志启用通过SHOW MASTER STATUS或mysqldump的主数据显示日志文件的名称和位置值将是空的在这种情况下你需要使用指定的奴隶的日志文件和位置后的值是空字符串()和
你现在有你需要的信息可以让从开始读取的二进制日志在正确的位置开始复制
设置主从连接信息
mysql> CHANGE MASTER TO
> MASTER_HOST=master_host_name
> MASTER_USER=replication_user_name
> MASTER_PASSWORD=replication_password
> MASTER_LOG_FILE=recorded_log_file_name
> MASTER_LOG_POS=recorded_log_position;
查看连接状态 show slave status\G;
读写分离配置
windows设置PATH
创建代理 为Master 为只读
sc create Proxy DisplayName= MySQL Proxy start= auto binPath= F:\tool\mysqlproxywinxx\bin\mysqlproxysvcexe
proxyaddress=localhost: proxybackendaddresses=: proxyreadonlybackendaddresses=:
net start proxy
C:\> sc delete proxy
配置完之后测试从服务器 stop slava
通过代理进行insert操作在进行查询然后start slave 主从复制没有问题
读写分离暂时还未测试