Mysql主从配置

mysql主备配置的时候,这时主添加数据,备库未更新,这时有查询进来,查询到了备库。如何解决。
可以sql语句强行走主节点。具体要根据mysql采用哪一种读写分离代理。
5.1后支持,需要安装插件,还可以半同步,主在存data的时候处于阻塞,等待从节点存入relay binlog返回后。性能差。当主挂掉的时候,主始终处于阻塞状态,从始终得不到更新,解决办法是可以设置阻塞等待时间,一般情况下设置成1秒,但不保证安全。默认是采用异步的。
5.7mysql可以多线程
1主 3-4从 1太子节点(保证一致) 1个读 1个业务隔离
2主 应用场景写非常多,用双主。
环形多主,跟2主应用场景一样。
1主级联,与主联系的从挂掉之后,其余的从节点会挂。

如何解决指定读写库
Atlas
可以调权重。
查订单,从服务器可能更新不及时,可以指定注解/master/从主数据库中去查

半同步

还有一种叫Amoeba
https://blog.csdn.net/lhd85/article/details/48031289
http://blog.51cto.com/13598893/2092492
https://blog.csdn.net/m0_37886429/article/details/78844358
http://lizhao6210-126-com.iteye.com/blog/1716485

安装环境

centos 6.x
mysql mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz

mysql 依赖的库

yum search libaio # search for info
yum install libaio # install library
yum -y install numactl.x86_64
yum -y install perl perl-devel
yum -y install libaio-devel

创建mysql 与用户组,-s /bin/false 表示该用户不能登录

groupadd mysql
useradd -r -g mysql -s /bin/false mysql

解压安装包至指定目录

tar zxvf mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz
ln -s mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz mysql

为 mysql 用户添加权限

chown -R mysql ./
chgrp -R mysql ./

创建data目录并添加权限

mkdir -p /data/mysql
chown -R mysql:mysql /data/mysql

修改配置

编辑/etc/my.cnf

master配置

[mysqld]
basedir=/opt/mysql
datadir=/data/mysql
character-set-server=utf8
#rpl_semi_sync_master_enabled=1
server-id=1
#binlog 格式 
binlog-format=ROW 
log-bin=mysql-master-bin 
#slave更新时是否记录到日志中;
log-slave-updates=true
#需要同步的二进制数据库名;
binlog-do-db=tuling
#不同步的二进制数据库名,如果不设置可以将其注释掉;
binlog-ignore-db=information_schema
binlog-ignore-db=mysql
binlog-ignore-db=personalsite
binlog-ignore-db=test

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

slave配置

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[mysqld]
basedir=/opt/mysql
datadir=/data/mysql
character-set-server=utf8
server-id=2
log-bin=mysql-slave-bin
binlog-do-db=tuling
binlog-ignore-db=information_schema
binlog-ignore-db=mysql
binlog-ignore-db=personalsite
binlog-ignore-db=test
#rpl_semi_sync_slave_enabled=1

初始化 mysql 库

/opt/mysql/scripts/mysql_install_db --user=mysql --basedir=/opt/mysql --datadir=/data/mysql

添加环境变量

vi /etc/profile
PATH=/opt/mysql/bin:$PATH
export PATH
让刚才的修改生效
source /etc/profile

启动数据库

service mysql start

初始化mysql的一些设置

mysql_secure_installation
回车
Enter current password for root (enter for none):
y,设置mysql的root密码
Set root password?[Y/n] y
以下都yes
Remove anonymous users?[Y/n] y
Disallow root login remotely?[Y/n] y
Remove test database and access to it?[Y/n] y
Reload privilege tables now?[Y/n] y
ThanksforusingMySQL!

允许远程登陆

mysql -h localhost -u root -p

  1. mysql> use mysql;
  2. mysql> select host,user,password from user;
  3. mysql> update user set password=password('123456') where user='root';
  4. mysql> update user set host='%' where user='root' and host='localhost';
  5. mysql> flush privileges;

判断MySQL服务器是否支持动态增加插件
mysql> select @@have_dynamic_loading


image.png

主执行

grant replication slave,super,reload on . to slave1@ 从的IP identified by '123456';
···
命令解析:
'slave1'@'HOST' :设置用户名即主机ip或网段,网段用%表示 例如10.0.0.%
IDENTIFIED BY:设置密码
. :表示所有数据库,所有表
GRANT REPLCATION SLAVE:就是允许该用户复制数据
该命令作用就是授权slave1能拷贝数据库的所有内容
···

在master装一个插件"semisync_master.so",这个插件mariadb默认就有,安装插件:
INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
查询插件:
select * from mysql.plugin;

image.png

查看状态
SHOW GLOBAL VARIABLES LIKE '%semi%';
···
rpl_semi_sync_master_enabled ON
NO表示开启半同步功能,OFF表示关闭
rpl_semi_sync_master_timeout 10000
超时时间微秒为单位
rpl_semi_sync_master_trace_level 32
rpl_semi_sync_master_wait_no_slave ON
···

show master status;


image.png

从执行

安装插件:
INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
查询插件:
select * from mysql.plugin;

image.png

查看状态:
SHOW GLOBAL VARIABLES LIKE '%semi%';
···
rpl_semi_sync_slave_enabled ON
rpl_semi_sync_slave_trace_level 32
···
执行master配置:
change master to master_host='主IP', master_user='slave1', master_password='123456',master_log_file='主查询1', master_log_pos=主查询2;
···
命令解析:
CHANGE MASTER TO
MASTER_HOST='master_host',
指定中继master主机IP
MASTER_USER='repluser',
指定master被授权的用户名
MASTER_PASSWORD='replpass',
指定被master授权的用户密码
MASTER_LOG_FILE='mysql-bin.xxxxx',
指定master服务器的哪个二进制日志开始复制
MASTER_LOG_POS=#;
二进制日志位置,可以在master服务器上执行该命令查看,show master logs;
···

重启mysql

配置好mysql之后
编辑/etc/my.cnf
主#rpl_semi_sync_master_enabled=1
从#rpl_semi_sync_slave_enabled=1
如果之前不注释,mysql会无法启动
配置插件才能正常启动
service mysql restart

登陆从mysql

启动slave

mysql>start slave;

查看 slave 状态

show slave status\G;
Slave_IO_Running: Yes "重点关注如果是NO表示线程没起来"
Slave_SQL_Running: Yes "重点关注 如果是NO表示该线程没起来"

故障排除

半同步配置完毕,下面可以通过命令来验证:
msyql> show status like '%semi_sync%'
mysql> show variables like '%Rpl%'

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,504评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,434评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,089评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,378评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,472评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,506评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,519评论 3 413
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,292评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,738评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,022评论 2 329
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,194评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,873评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,536评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,162评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,413评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,075评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,080评论 2 352

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 31,916评论 2 89
  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 3,841评论 0 5
  • 今天带宝宝去游泳了。明天打针,然后趁着这两天下雨降温就让宝宝呆在家里。 今天去宝宝认生哭闹的情况好多了,下水之前都...
    熊小笨阅读 204评论 0 0
  • 知道开心麻花,始于沈腾也就是我们熟知的郝建,进一步感受到它的魅力是因为去年的一部电影《夏洛特烦恼》,这部电影,看的...
    张庆玲阅读 506评论 2 1
  • 黄梅时节,江南淅淅沥沥的小雨似乎永远不会停止。 水雾笼罩的小山坡上,矗立着一家酒肆。 青衣男子走进酒肆,乌黑的发梢...
    楚云端阅读 139评论 0 1