mysql 数据库同步 (windows)
来源:互联网 发布:买家淘宝升到一钻 编辑:程序博客网 时间:2024/06/06 08:53
A机器:IP = 192.168.1.101B机器:IP = 192.168.1.102 (1).在A机器中有数据库如下: //数据库A CREATE DATABASE backup_db;USE backup_db;CREATE TABLE `backup_table1` ( `id` int(11) NOT NULL auto_increment, `name` varchar(20) character set utf8 NOT NULL, `sex` varchar(2) character set utf8 NOT NULL, PRIMARY KEY (`id`)) #A机器的my.cnf(或my.ini)中应该配置: server-id=1log-bin=c:\mysqlback #同步事件的日志记录文件binlog-do-db=backup_db #提供数据同步服务的数据库 (2).在B机器中有数据库如下: //数据库BCREATE DATABASE backup_db;USE backup_db;CREATE TABLE `backup_table` ( `id` int(11) NOT NULL auto_increment, `name` varchar(20) character set utf8 NOT NULL, `sex` varchar(2) character set utf8 NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=latin1; 注:数据库A和B的数据库结构一定要相同,否则无法构成同步。 #B机器的my.cnf(或my.ini)中应该配置:server-id=2master-host=192.168.1.101 #主机A的地址master-user=ym #主机A提供给B的用户,该用户中需要包括数据库backup_db的权限master-password=ym #访问密码master-port=3306 #端口,主机的MYSQL端口master-connect-retry=60 #重试间隔60秒replicate-do-db=backup_db #同步的数据库slave-skip-errors=all #出现错误后忽略,如果不加这个,出现任何错误同步进程会终止 (3).完成了以上配置之后,将A的mysql数据的权限给B。A机器:mysql>GRANT REPLICATION SLAVE ON *.* TO 'ym'@'192.9.1.102' IDENTIFIED BY 'ym'; (4).重启AB数据库,后:B机器: mysql>slave start;查看同步配置情况A机器:mysql>show master status;B机器:mysql>show slave status;(5).在A中的backup_db.backup_table表中插入一些数据,查看B中的backup_db.backup_table表是否同步了数据改动。
thinkphp官方解释:http://doc.thinkphp.cn/manual/distributed_database.html
ThinkPHP内置了分布式数据库的支持,包括主从式数据库的读写分离,但是分布式数据库必须是相同的数据库类型。配置DB_DEPLOY_TYPE 为1 可以采用分布式数据库支持。如果采用分布式数据库,定义数据库配置信息的方式如下:
连接的数据库个数取决于DB_HOST定义的数量,所以即使是两个相同的IP也需要重复定义,但是其他的参数如果存在相同的可以不用重复定义,例如:
- //在项目配置文件里面定义
- return array(
- //分布式数据库配置定义
- 'DB_TYPE' => 'mysql', //分布式数据库类型必须相同
- 'DB_HOST' => '192.168.0.1,192.168.0.2',
- 'DB_NAME' => 'thinkphp', //如果相同可以不用定义多个
- 'DB_USER' => 'user1,user2',
- 'DB_PWD' => 'pwd1,pwd2',
- 'DB_PORT' => '3306',
- 'DB_PREFIX' => 'think_',
- //其他配置参数
- // ...
- );
- 'DB_PORT'=>'3306,3306'
- 'DB_PORT'=>'3306'
- 'DB_USER'=>'user1',
- 'DB_PWD'=>'pwd1',
- 'DB_USER'=>'user1,user1',
- 'DB_PWD'=>'pwd1,pwd1',
还可以设置分布式数据库的读写是否分离,默认的情况下读写不分离,也就是每台服务器都可以进行读写操作,对于主从式数据库而言,需要设置读写分离,通过下面的设置就可以:
- 'DB_RW_SEPARATE'=>true,
CURD操作系统会自动判断当前执行的方法的读操作还是写操作,如果你用的是原生SQL,那么需要注意系统的默认规则:
写操作必须用模型的execute方法,读操作必须用模型的query方法,否则会发生主从读写错乱的情况。
0 0
- mysql 数据库同步 (windows)
- Windows 下配置mysql主从数据库同步
- Windows操作系统MySQL数据库主从同步配置
- MySql数据库同步复制
- MySql数据库同步复制
- MySQL数据库同步
- MYSQL 数据库同步
- MySql数据库同步复制
- mysql数据库双向同步
- mysql数据库同步解决方案
- mysql 数据库 数据同步
- MySQL数据库双向同步
- Mysql 主从数据库同步
- MySQL主从数据库同步
- mysql 数据库同步
- MySql数据库同步复制
- MySQL 数据库同步
- MYSQL 主从数据库同步
- poj1145
- lua table大小及pairs,ipairs
- zookeeper客户端zkpython使用文档
- 【Oracle练习】⑦第8章 数据操作与事务控制
- UVa 10785 - The Mad Numerologist
- mysql 数据库同步 (windows)
- websocket介绍
- php 获取中文拼音首字母函数
- BUPT Summer Journey #test11 A
- poj 1781 In Danger(约瑟夫环,找规律)
- 【Oracle练习】⑧第9章 表和约束
- OC (八)
- 积分怎么赚
- 【Oracle练习】⑨第10章 其他数据库对象