linux追加SQL结果到文件,2018-4-2 Linux学习笔记

MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步的。

MySQL主从是基于binlog的,主上须开启binlog才能进行主从。

主从过程大致有3个步骤:

1)主将更改操作记录到binlog里;

2)从将主的binlog事件(sql语句)同步到从本机上并记录在relaylog里;

3)从根据relaylog里面的sql语句按顺序执行。

主上有一个log dump线程,用来和从的I/O线程传递binlog。

从上有两个线程,其中I/O线程用来同步主的binlog并生成relaylog,另外一个SQL线程用来把relaylog里面的sql语句落地(执行)。

552a8dee887c39030667c5e9f47b12d5.png

17.2 准备工作

要准备两台虚拟机,两台机上都要安装mysql.

安装mysql简要步骤列举:

(1)通过wget下载二进制免编译的mysql安装包(r.aminglinux.com)

(2)解压安装包

tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz

(3)将解压后的mysql目录移到/usr/local/mysql下(先确认目录是否已存在,若是先改名或删除).

mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql

(4)创建mysql用户及进行初始化

cd /usr/local/mysql

创建mysql用户

useradd mysql

创建数据库目录

mkdir /data/

初始化,指定数据库用户和目录

./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

(5)拷贝配置文件&拷贝启动脚本

cp support-files/my-default.cnf /etc/my.cnf #若已存在则跳过该步骤

cp support-files/mysql.server /etc/init.d/mysqld

(6)编辑配置文件和启动脚本

vi /etc/my.cnf #配置文件

定义datadir和soeckt:

datadir=/data/mysql

socket=/tmp/mysql.sock

vi /etc/init.d/mysqld #启动脚本

定义basedir和datadir:

basedir=/usr/local/mysql

datadir=/data/mysql

(7)启动mysql服务

/etc/init.d/mysqld start

将mysqld加入到启动列表中以便能开机启动

chkconfig --add mysqld 或者

chkconfig mysqld on

知识点:

mysql错误日志/data/mysql/主机名.err,遇到问题可查看该日志.

17.3 配置主

安装mysql

修改my.cnf,增加server-id=130和log_bin=aminglinux1

vi /etc/my.cnf

6a324be94bc5712d92f23f5aef727b16.png

修改完配置文件后,重启mysqld服务

/etc/init.d/mysqld restart

ef0c817832a86a0df896f09dba2b800f.png

注: 重启后在/data/mysql/目录下会生成以aminglinux1开头的像aminglinux1.index和aminglinux1.000001的文件,这些文件非常重要,是实现主从的根本.

3e3ea655aedab25652d270731637d879.png

把mysql库备份并恢复成aming库,作为测试数据

mysqldump -uroot mysql > /tmp/mysql.sql

mysql -uroot -e “create database aming”

mysql -uroot aming < /tmp/mysql.sql

创建用作同步数据的用户

mysql -uroot -p

grant replication slave on . to 'repl'@slave_ip identified by 'password';

锁表,不再让写数据,以保证从拿到的数据和主一样,这样才可同步:

flush tables with read lock;

查询主库状态:

show master status;

4879e945b43b8b8da79646d585f5b191.png

注意:这里要记下"File"和"Position"两个数据,后续作主从时需要用到.

17.4 配置从

(1)安装mysql,修改my.cnf,配置server-id=132,要求和主不一样

vi /etc/my.cnf

2d95e8a8432a80465220679474e9e4ef.png

修改完配置文件后,重启mysqld服务

/etc/init.d/mysqld restart

(2)把主上aming库同步到从上

可以先创建aming库,然后把主上的/tmp/mysql.sql拷贝到从上,然后导入aming库

scp master_ip:/tmp/mysql.sql /tmp/

mysql -uroot aming < /tmp/mysql.sql

930ed16f8952ba170c34346dd51bcf35.png

查看是否和主的/data/mysql数据一致:

ls /data/mysql

(3)设置主从同步操作

mysql -uroot

stop slave;

以下为实现主从的关键字句:

change master to master_host='', master_user='repl', master_password='', master_log_file='', master_log_pos=xx

896c919995a15f768e730a6f3ac04d16.png

注意:这里的master_log_file和master_log_pos填写show master status查询出来的"File"和"Position"两个数据.

start slave;

(4)查看主从同步是否正常

show slave stauts\G

看是否有(若有任一个为No,说明主从已断开):

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

5875fe0f3be8ae2342c0e83c3848ebc0.png

还需关注:

Slave_SQL_Running_State: Slave has read all relay log;waiting for the slave I/O thread to update it

Seconds_Behind_Master: 0 //为主从延迟的时间

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

(5)到主上执行解锁操作

unlock tables

cba087d2939cfeb62c2f26135b4380d1.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值