首先我在本身的linux虚拟机上安装了一个数据库,这样加上我windows上的数数据库就能够模拟主从备份了。 安装过程没什么好说的,往后再补充。 值得注意的一点是,安装好以后到 /usr/share/mysql 目录下去copy个my.cnf 这个时候有不少个选择的,例如 my-large.cnf my-medium.cnf my-small.cnf 从名字就能够看出,一个是规模大的,一个中等的,一个小的,里面的配置有所不一样 这样不用处处去找mysql的配置优化mysql
1、主库配置 比较简单 server-id数据库服务的标志,注意在全部集群中不要重复就好了 log-bin开启二进制日志,数据从主库copy到从库就是靠这个日志来执行的。 [mysqld] server-id=101 log-bin=mysql-binlinux
修改配置文件时候,重启mysql服务sql
2、从表配置 log-bin开启二进制日志,能够不开启。注意从库,同时也能够做为其余库的主库这样能够实现多数据库集群。以前看到一篇比较好的文章的,等我找回来再看看。 server-id 集群中惟一 relay-log salve线程是在relay-log里面读取二进制log执行 log-slave-updates 容许经过log更新数据库1就是true read-only 只读1就是true数据库
log-bin = mysql-bin server-id = 2 relay-log = mysql-relay-bin log-slave-updates = 1 read-only = 1 修改以后别忘了重启数据库windows
2、锁表,copy数据到从库初始化 使用mysqldump复制数据库到从库中,保持两个库一致的优化
3、查看master库的日志状态 SHOW MASTER STATUS 线程
4、设置从库从哪里拷贝主库数据 MASTER_HOST master库的IP地址 MASTER_USER master数据库的用户名,正式环境建议不要用root用户,由于root用户会拥有读写权 限,这样就有可能致使两边数据不一致了。注意mast数据库的这个用户是开通了容许从库的ip远程访问的。 MASTER_PASSWORD 数据库密码 MASTER_LOG_FILE 刚才查到的master的log状态 mysql-bin.000006 MASTER_LOG_POS master的Postion日志
mysql> CHANGE MASTER TO MASTER_HOST='master库的IP地址′, MASTER_USER='root', MASTER_PASSWORD='root', MASTER_LOG_FILE='mysql-bin.000007′, MASTER_LOG_POS=107;server
设置好以后还要执行开始才会开始同步 mysql>start slave; 若是要修改配置,那么要先停掉同步 mysql> stop slave 而后再修改 再看一下slave的状态 Slave_IO_Running: Yes Slave_SQL_Running: Yes 证实成功了 而后验证一下,改变主库的数据库,而后查看一下从库,跟着更新了。图片