设为首页 收藏本站
查看: 666|回复: 0

[经验分享] mysql的主从配置

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-17 09:16:14 | 显示全部楼层 |阅读模式
linux日常服务部署平时练习的少,所以抽时间自己写一写自己搭建服务 过程
以下是笔记以及总结:

Mysql主从(Mysql Reolication),主要用于mysql的实时备份或者读写分离。在配置前先做好准备工作,配置2台mysql服务器,一台做master,一台做slave。
    mysql主从的原理其实就是:在每个从尽可以设置一个主,主在实行sql后,记录二进制log文件,从连接上主,并从主获得binlog,存于本地relay-log,并从上次记住的位置起,执行sql。一旦遇到错误则停止同步。
    因此可以有这些推论:主从之间 数据不是实时同步的,就算网络连接正常,也存在瞬间,主从数据 不一致。如果主从网络断开,会从网络正常后,批量同步。如果对从进行数据修改,那么很可能从在执行主的bin-log时出现了错误而停止同步,这个是很危险 操作。所以一般情况下,要非常小心的修改从上的数据。
    那么有一个衍生的配置是双主,互为主从配置,只要双方修改不冲突,可以工作良好。如果需要多主 话,可以使用环形配置,这样任意一个节点 修改都可以同步到所有节点。可以应用在读写分离的场景中,用于降低单台mysql服务器的io。可以实现mysql服务的HA集群,可以是1主多从,也可以hi互相主从(主主)
    首先现在2台机器上分别安装mysql
一台为mysql master :192.168.186.130
一台为mysql slave : 192.168.186.132
主机上端口号设置为
[mysqld]
port            = 3306

从机上的端口号设置为
port             =3307
先在主机上创建一个库
进入mysql
create database db1;
然后退出导出数据给db1

mysqldump -uroot -S /tmp/mysql2.sock mysql > 123.sql
mysql -uroot -S /tmp/mysql2.sock db1 < 123.sql


配置主机(master)
vim /etc/my.cnf

添加修改
server-id=1
log-bin=mysql-bin
binlog-do-db=db1

(两个可选参数 2 选 1:
binlog-do-db=db1,db2 #用来指定需要同步的库
binlog-ignore-db=db1,db2 #指定忽略不同步的库)
设置按成后,重启mysql
然后授权一个用户,在从机上用来向主机进同步
> grant replication slave on *.* to 'repl'@'192.168.186.132' identified by 'lxx123456';
> flush tables with read lock;
> show master status; #一定要记住前两列的内容,后面会用到


设置从机的配置
vim /etc/my.cnf
修改相应的server-id  =2 (不能 和主机一样)
log-bin=mysql-bin
如果主机上配置了指定数据库参数的话,这里就不必配置了
重启mysql

拷贝主的数据库db1到从上来
mysqldump -S /tmp/mysql.sock db1 > 123.sql;
mysql -uroot -S /tmp/mysql.sock -e "create database db1";
mysql  -S /tmp/mysql.sock db1 < db1.sql;


登陆从的mysql
执行以下命令
> slave stop;

> change master to master_host='192.168.186.130', master_port=3306, master_user='repl',
master_password='lxx123456', master_log_file='mysql-bin.000002', master_log_pos=106;
> slave start;

然后到主上执行
# mysql -e "unlock tables";
在从上查看状态
> show slave status\G;
看是否有如下显示
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
只有两个同时为 YES,才算正常。

QQ截图20151117091607.png
建议: MySQL 主从机制比较脆弱,谨慎操作。如果重启 master,务必要先把 slave 停掉,
也就是说需要在 slave 上去执行 slave stop 命令,然后再去重启 master 的 mysql 服务,否则
很有可能就会中断了。当然重启完后,还需要把 slave 给开启 slave start。

这里特别注意一下,如果修改过my.cnf文件后,再执行slave同步的话,会出现错误:
ERROR 1201 (HY000): Could not initialize master info structure; more error messages can be found in the MySQL error log
原因:
该服务器之前做过主从复制,中途修改过my.cnf配置文件,重启mysql之后,binlog文件名和relay-log文件名已经改变,所以不能再从之前的relay-log复制了.
解决办法
mysql> reset slave;
Query OK, 0 rows affected (0.00 sec)



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-140165-1-1.html 上篇帖子: mysql初步备份方案 下篇帖子: percona xtrabackup 2.3.2 MySQL5.6 备份恢复 mysql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表