博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2015/5/9 谈谈mysql主从复制
阅读量:5937 次
发布时间:2019-06-19

本文共 2025 字,大约阅读时间需要 6 分钟。

hot3.png

    所谓的数据库主从复制功能就是说把数据库的操作分别分配给主服务器和从服务器,查询一类的操作就发送到从服务器,而更新、修改一类的操作就发送到主服务器。如此一来,就能减轻主服务器的负担。它的优点有许多,可以增强服务器健壮性,要是主服务器出问题了,可以切换从服务器做备份,工作分化!

    它的实现过程就是服务器将用户对数据库的更新、修改的操作以二进制格式保存到bina log日志文件里,然后由binlog dump

线程将binary log日志文件传输到从服务器,从服务器通过一个i/o线程将主服务器的binary log日志文件中的操作复制到一个叫relay log的中继日志文件中,从服务器的另外一个sql线程将relay log中继日志文件中的操作依次在本地执行,从而实现主从之间数据的同步。

    我的配置环境,主服务器:

    os:ubantu;        mysql:version5.543;        

    从服务器:

    os:window8;     mysql:version:5.58;

主服务器的mysql版本最好就不要高于从服务器mysql版本

下面说说操作:

主服务器:

    登陆mysql:

mysql -uroot -p********

    登陆后;你键入

SHOW MASTER STATUS;

你会发现没什么变化的,然后下面开始在主服务器上为从服务器设置一个连接账户,让它可以进行主从复制功能;

GRANT REPLICATION SLAVE ON *.* TO 'swon'@'%' IDENTITIED BY 'password';

解释下上一条命令,grant就是允许,REPLICATION SLAVE就是从库复制,swon就是你在从库登陆时的账号,password就是登陆密码,总结起来说就是允许通过在从服务器登陆swon \password进行复制之类的意思,知道就行,不必深究啦。

然后开始配置,打开 /etc/mysql/my.cnf ,加入

[mysqld]log-bin=mysql-binserver-id=1

保存后,退出,然后重新登陆mysql

sudo /etc/init.d/mysql restart

restart成功后,继续

SHOW MATER STATUS;

你会看到144700_Yr3P_2002769.png

这就配好主服务器的了,这个file表示主服务器正在使用的binlog文件,position的值和binlog文件大小一样。

从服务器:

    打开你的从服务器的mysql配置文件,由于每个人的安装路径不一样,只要打开my.ini这个文件就行,在里面加入

[mysqld]log_bin=mysql-binserver_id=2

这个server_id不能与主服务器的server_id一样!然后start 从服务器mysql,注意我的从服务器是在window环境,是要在bin目录下使用mysql命令

mysql -uroot -p*****

这个登陆账号密码要按自己的实际来呀;

然后开始连接主服务器的信息;

CHANGE MASTER TO MASTER_HOST='192.168.1.123',MASTER_USER='swon',MASTER_PASSWORD='password',MASTER_LOG_FILE='mysql-bin.000012',MASTER_LOG_POS=0;

解释下上面这条命令,CHANGE MASTER TO 这个语句是表示指定主服务器的信息,MASTER_HOST指定主服务器的ip 端口,MASTER_USER就是我们刚开始时,在主服务器配置的用户名,MASTER_PASSWORD也是我们在主服务器配置的密码,MASTER_LOG_FILE就是主服务器正在使用的binlog文件,而MASTER_LOG_POS一般默认为零,表示从开始位置开始读。

配置好之后,我们就开启从库,键入

START SLAVE;

然后查看从库状态,键入

SHOW SLAVE STATUS\G

可以看到150527_YZ7r_2002769.png

要注意的是,Slave_IO_Running,和Slave_SQL_Runnig都必须为YES,还有,Second_Behind_Master必须为0,表示已经开始工作。

配置到此告一段落,我们可以在查看下,

在主服务器中键入;

SHOW PROCESSLIST\G

可以看到150932_7mEa_2002769.jpg

第二条就是处理i/o线程的连接。

然后在从服务器上键入:

SHOW PROCESSLIST\G

可以看到151152_Nv15_2002769.png

第二行是i/o线程状态,第三行就是sql线程状态。

到此,我们可以测试下,这个主从复制能不能派上用场了,

在主服务器上创库、创表,插入数据;

151806_UxKk_2002769.png

152526_8vtt_2002769.png

完了后,我们在从服务器上看有没有实现同步152023_3gH0_2002769.png

可以看到,从服务器也同步创了swon库,然后再看:

152159_r8l1_2002769.png

至此,已经实现了功能。

转载于:https://my.oschina.net/u/2002769/blog/412736

你可能感兴趣的文章
DNS服务之反向解析
查看>>
SSL虚拟主机
查看>>
Java基础——过滤器和监听器
查看>>
公司要安装电脑监控软件你同意吗?
查看>>
MySQL 5.7 操作命令
查看>>
day 20 第一阶段考试总结
查看>>
day34 awk数组
查看>>
SQL内连接、外连接以及(+)号用法
查看>>
equals与==的区别
查看>>
mysql主从配置实现一主一从读写分离
查看>>
Sql server--数据查询
查看>>
Java异常处理---finally和return的执行顺序
查看>>
IT行业找工作容易吗?
查看>>
Hadoop大数据通用处理平台
查看>>
【Python 第4课】输入
查看>>
Num73 投资管理_简单分页查询&多条件分页
查看>>
wordpress网站需要ftp更新解决办法
查看>>
如何用Python爬网站数据,并用BI可视化分析?
查看>>
这么多机器学习的应用场景,金融领域到底有何不同?
查看>>
零售数字化必经哪四个阶段?
查看>>