mysql主从搭建

基本环境:

CentOS release 6.10 (Final)
mysql 5.7.16

1.下载mysql 5.7.16(去官网下载了传到linux或直接wget),如图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y2BZCaa9-1592191407103)(/uploads/mysql-mongo-es/images/m_9b0fe95093b9938357cef4eb845d8fff_r.png)]

或者通过linux命令行获取:
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

2.添加mysql相关用户

添加用户组mysql:

groupadd mysql

添加用户mysql且该用户不能登陆:

useradd -g mysql mysql -s /bin/false

创建用户组和用户非强制性要求,可以直接用root搞,不过还是养成良好习惯,不同用户干不同事儿,免得一直用着root为所欲为,稍微手滑一切go die…

3.新建一个文件夹,待下载完成后解压到里面,并复制两份,做一主一从用,新建data目录,conf目录,logs目录,sock目录(建立这四个目录非强制要求,这里仅仅是为了区分各文件,便于管理),具体路径如下:

data目录:

/home/admin/data/mysql

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aZavGJMB-1592191407106)(/uploads/mysql-mongo-es/images/m_7c5d931c44a9668fe4e9c8e0df316a3c_r.png)]

log目录:

/home/admin/logs/mysql

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o2HMSnYL-1592191407107)(/uploads/mysql-mongo-es/images/m_657e1c04448687c36360305fddd816ce_r.png)]

安装目录:

/opt/mysql/

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qcC8ewmj-1592191407110)(/uploads/mysql-mongo-es/images/m_8857141fdcc42ab39a2577d07d283806_r.png)]

进入conf目录,新建master.cnf,slave.cnf

进入logs目录,新建master_error.log,slave_error.log

注:这一步可以跳过,这一步是为新的启动方式mysqld_safe做的异常日志输出,如果用老的mysqld启动,则可以不用配置

现在开始搞配置文件,这里我们拟定3306为主库(master),3307从库(slave)

首先配置master,即conf目录下的master.cnf,如图(这里只配置了mysqld组和mysqld_safe,没有配置client),
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9BfEg9u7-1592191407111)(/uploads/mysql-mongo-es/images/m_7c0cac5a6db504bf52306a988db5d9ba_r.png)]

配置完成后,进入mysql安装目录(basedir指向路径)初始化实例

执行命令:

/bin/mysqld --defaults-file=/opt/mysql/conf/master.cnf --initialize-insecure

其中-insecure作用是不设置密码,如果不带则mysql会随机生成一个密码出现在控制台,需要记下来

初始化不报错则启动mysql服务,运行mysqld或mysqld_safe命令启动mysql:

./bin/mysqld --defaults-file=/opt/mysql/conf/master.cnf

启动不报错后为mysql root用户设置一个密码:

./bin/mysqladmin -u root password "123456" --socket=/opt/mysql/sock/master.sock(注意后面的 --socket参数必须带上,与配置文件中的socket配置值一致)

登陆mysql控制台(由于配置文件中没有配置client组,所以登陆命令同样需要添加–socket参数):

./bin/mysql -uroot -p123456 --socket=/opt/mysql/sock/master.sock

登陆后查看master状态,如图:

show master status;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8dIn1uRV-1592191407113)(/uploads/mysql-mongo-es/images/m_ad8f3a2b77d6db6ae7ed4f83a753f765_r.png)]

每个人的file和position可能不一样,请务必记录下来

新建一个复制帐户,用于从库复制binlog使用:

create user 'slavedb'@'%' identified by '123456';

GRANT REPLICATION SLAVE ON *.* TO 'slavedb'@'%';

把改动及时写入grant table

FLUSH PRIVILEGES;

master主库就ok了,现在开始配置slave从库,这里以slave.cnf为例子如图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WeR8FEjw-1592191407113)(/uploads/mysql-mongo-es/images/m_744c2717b24ee7004d85845be2bb63b6_r.png)]

配置完成后,重复初始化,启动,设置密码步骤(注意指向所属的配置文件和socket)

然后登陆mysql,执行如下命令:

stop slave; #停止slave

CHANGE MASTER TO
MASTER_HOST='127.0.0.1',
MASTER_USER='slavedb',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='master-bin.000005',
MASTER_LOG_POS=2423; // 指向主库设置,其中最后两个参数为master中查询出来的值

start slave; #启动slave

然后查看slave状态,如图,看到红圈内的值则启动成功(另外一台机器重复上述步骤):

show slave status; 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LsEmx56G-1592191407114)(/uploads/mysql-mongo-es/images/m_4f1038866893c33622907f65fe8d226f_r.png)]

最后登陆master库进行建表,写入操作,而后去slave机查看,即可发现同步成功

参考链接:

centos7单机上搭建mysql5.7一主多从模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值