mysql主从复制
来源:互联网 发布:腾讯视频网络错误1 编辑:程序博客网 时间:2024/06/06 05:00
主从复制的说明
mysql的主从复制,是生产环境的基本架构。MySQL支持单向、异步复制。单向指一个复制过程,复制从主服务器复制到从服务器,但是一个复制过程的从服务器,在另一个复制过程中是可以担任主服务器的,即mysql支持链式复制,或者叫菊花式复制;异步复制,不需要特殊说明,不过注意,如果主服务异常关闭,可能会早晨部分数据还么有同步到从服务器的情况。
复制的原理
mysql的主从复制,是通过传送二进制日志进行数据同步的。即,主服务器启动二进制日志,该日志会记录所有在主服务器上的操作,并把二进制日志传送给连接进来的从服务器,从服务器得到二进制日志后,在本地数据库中进行执行。看到上面的原理,想必大家注意到,一定要先进行主从服务器的数据库文件同步,在搭建复制架构才有意义。当然如果主从服务器数据不一致,进行实施的时候就会报错的。
复制中的线程
在一个最简复制架构中,MySQL使用3个线程来执行复制功能。可以使用如下命令查看数据库中的线程:
SHOW PROCESSLIST\G
*注意最后的\G,可以已更易读的方式输出。
3个线程中,一个运行在主服务器中,通常成为“复制主线程”,其他两个运行在从服务器中,分别成为“复制从I/O线程”、“复制从SQL线程”。
复制主线程,主服务器会为每一个连接进来的从服务器建立一个“复制主线程“,使用该线程将二进制日志中的内容发送到从服务器。
复制从I/O线程,是从服务器请求主服务器,并接受主服务器发送二进制日志的进程。
复制从SQL线程,是从服务器执行接受到的二进制日志的后台进程。
复制的实施
本教程实施最简单的一主一从的复制架构。操作系统:win7,mysql:5.1
我本地是安装的mysql,为了不影响原来安装的mysql的使用,我这里完全启动了两个新的mysql实例。
数据库安装目录D:\Program Files\MySQL\MySQL Server 5.1;数据库数据目录:D:\ProgramData\MySQL\MySQL Server 5.1\data
第一步,建立新的数据目录,D:\ProgramData\MySQL\MySQL Server 5.1\master和slave
第二步,在mysql安装目录,建立两个新的配置文件(这里已经非常的简化,不可作为生产环境使用)。my-master.ini和my-slave.ini
第三步,编辑两个文件如下
[mysqld]port=3307default-storage-engine=MyISAMdatadir="D:/ProgramData/MySQL/MySQL Server 5.1/master"#启动二进制,配置服务器idlog-bin=mysql-binserver-id=1
my-master.ini
[mysqld]port=3308default-storage-engine=MyISAMdatadir="D:/ProgramData/MySQL/MySQL Server 5.1/slave"#设置二进制日志,设置从服务器idlog-bin=mysql-binserver-id=2
my-slave.ini
第四部,启动两个服务器
bin\mysqld.exe --defaults-file=my-master.ini --console
bin\mysqld.exe --defaults-file=my-slave.ini --console
第五步,登录主服务器,mysql -h localhost --port 3307 -u root -p,输入密码。
1.创建复制用户
GRANT REPLICATION SLAVE ON *.*TO 'mysync'@'%' IDENTIFIED BY '123456';
2.写出缓存,锁定数据库
FLUSH TABLES WITH READ LOCK
3.复制主服务器数据目录中的数据库文件(如果主从服务器已经一致就不用此步骤,例如我这里就不用复制)
4.执行下面语句,记录下日志文件和pos数值
show master status;
5.解锁
unlock tables;
第六步,登录从服务器。如果复制了主服务器的数据,则应重启。
1.执行下面的语句,设置主服务器信息。
change master to master_host='192.168.1.13',master_port=3307,master_user='mysync',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=106;
2.执行start slave启动从服务器。
3.执行下列语句看看从服务器状态。
show slave status\G
如下图所示就说明已经正常启动了主从复制。
最后,我们可以登录主服务器,创建数据库表,插入数据等进行测试了。这里不在描述。
- 【mysql 主从复制】掌握MySQL主从复制
- mysql 主从复制 主从配置
- MySQL主从复制配置
- mysql主从数据复制
- Mysql 主从复制
- mysql的主从复制
- Mysql搭建主从复制
- MySQL主从复制配置
- Mysql 主从数据库复制
- mysql主从复制
- MySQL主从复制
- mysql主从复制
- 配置MySQL主从复制
- Mysql的主从复制
- MySQL主从复制
- MySQL主从复制功能
- Linux MySQL主从复制
- MYSQL 主从复制(Replication)
- GCD介绍(四):完结
- Android库的建立与使用
- 一个应届计算机毕业生的2012求职之路
- javascript 函数节流
- 【面向对象程序设计常见面试题】多继承与虚函数之间的关系(已阅)
- mysql主从复制
- c++ 二进制保存文件
- 测试用例设计之白盒测试
- 重新学习c语言 hello word
- 【web service 】 wsimport 生成客户端代码调用webservice 服务
- 循环语句的汇编表示
- asp.net mvc 性能优化——(1)静态化
- 链表中删除某节点(注意)
- This Android SDK requires Android Developer Toolkit version 20.0.0 or above