mysql如何在linux服务器下搭建,MySQL 在 Linux 搭建主从服务器

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

主从形式

MySQL 支持多种主从模式,如

一主一从

主主复制

一主多从

多主一从

联级复制

其中 一主多从是最常用的,主服务器用于增删改,从服务器用于查询

优点

实时灾备,用于故障切换

读写分离,提供查询服务

备份,避免影响业务(提高可用性和容错行)

负载平衡

主从原理

6a58c46c64b3635ef58bbc5dded16595.png

从库生成两个线程,一个 I/O 线程,一个 SQL 线程

I/O 线程去请求主库 的 binlog,并将得到的 binlog 日志写到 relay log(中继日志)文件中

主库会生成一个 log dump 线程,用来给从库 I/O 线程传 binlog

SQL 线程,会读取 relay log文件中的日志,并解析成具体操作,来实现主从的操作一致,最终数据一致

搭建

首先在 Linux 下搭建两台虚拟机,并安装 MySQL 数据库,并分别创建 test 数据库

主服务器 IP:192.168.232.132

从服务器 IP:192.168.232.133

登录主服务器,执行如下命令1

2

3

4

5

6

7

8

9

10

11

12

13mysql -u root -p

# 修改密码安全策略

set global validate_password_policy=0;

# 在主服务器上新建一个 backup 用户,密码为 enoch.site,192.168.232.133,也就是从服务器可以使用

grant replication slave on *.* TO 'backup'@'192.168.232.133' identified by 'enoch.site';

# 更新权限

flush privileges;

# 退出

exit;

编辑主服务器的该文件 vi /etc/my.cnf ,在 [myqld] 下并添加如下信息:1

2

3

4

5

6

7

8

9

10# 数据库唯一 id,建议和 IP 保持一致

server-id=132

# 备份日志文件地址

log_bin=/var/log/mysql/mysql-bin.log

# 只允许读,不允许修改

read-only=0

# 只备份 test 数据库

binlog-do-db=test

# 不备份 mysql 数据库,该句可不写

binlog-ignore-db=mysql

0a1841c1a287cf4d38e182551786c547.png

重启主服务器 service mysqld restart,会有如下提示信息

41e79bbeb6b4b5b635284261761813e3.png

执行如下命令,创建 mysql 目录和 mysql-bin.log 文件,并给该目录与文件赋予权限1

2

3

4

5

6cd /var/log/

mkdir mysql

chmod 777 mysql

cd mysql

touch mysql-bin.log

chmod 777 mysql-bin.log

执行如下命令1

2

3

4

5

6# 重启 mysql 服务器

service mysqld restart

# 登录

mysql -u root -p

# 查看主服务器信息

show master statusG;

51f006d8c13b452bbc05cb12e7db12ab.png

记录,数据库操作日志文件:File: mysql-bin.000001,开始位置:Position: 154,从服务器会用到

登录从服务器,编辑从服务器的该文件 vi /etc/my.cnf ,在 [myqld] 下并添加如下信息:1

2

3server-id=133

# 备份日志文件地址

log_bin=/var/log/mysql/mysql-bin.log

ee6c8774b18a3862e2cb82c5a3238d85.png

重启一样会报错,service mysqld restart,执行下面命令,在重启1

2

3

4

5

6

7

8cd /var/log/

mkdir mysql

chmod 777 mysql

cd mysql

touch mysql-bin.log

chmod 777 mysql-bin.log

service mysqld restart

登录从服务器的 mysql,执行如下命令,用户名密码要与在主服务器创建的保持一致,master_log_file是主服务器备份日志文件,master_log_pos是主服务器日志开始下标,这两个要与主服务一致,在上面是通过该 show master statusG; 命令查看的

因为重启了几次,mysql-bin.000003所以该项改变了1

2

3

4

5

6change master to master_host='192.168.232.132',master_user='backup',master_password='enoch.site',master_log_file='mysql-bin.000003',master_log_pos=154;

# 关闭从服务器,在开启,在查看从服务器状态,如下图红框选中 IO、SQL 为 Yes 即代表主从搭建成功

stop slave;

start slave;

show slave statusG;

5c63f6db59f8e05f8ae9e28182b8867a.png

如何查看是否主从配置成功,主服务器执行 SQL, 从服务器也自动执行相应 SQL1

2

3

4

5

6

7# 主服务器

use test

create table user(id int,name varchar(10));

# 从服务器

use test

show tablse;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值