Centos 7 搭建Mysql主从复制

准备环境:两台虚拟机安装mysql
服务机192.168.110.198从库
客户机192.168.110.160主库
服务机配置:
关闭防火墙和沙盒

systemctl stop firewalld.service
setenforce 0

在这里插入图片描述
下载解压mysql 包有安装包 拖进去就行

unzip AliSQL-AliSQL-5.6.32-9.zip

在这里插入图片描述
下载依赖包

yum -y install cmake bison git ncurses-devel gcc gcc-c++

注意:如果这里报错,显示另一个进程被占用 则使用这个命令把进程杀掉就行 这个是报错显示内容:
在这里插入图片描述
命令:rm -f /var/run/yum.pid
在这里插入图片描述
在这里插入图片描述
4.添加用户

groupadd mysql
useradd -g mysql mysql

在这里插入图片描述
5.下载perl并解压

wget http://repo.openfusion.net/centos7-x86_64//perl-Data-Dumper-2.154-1.of.el7.x86_64.rpm
rpm -ivh http://repo.openfusion.net/centos7-x86_64//perl-Data-Dumper-2.154-1.of.el7.x86_64.rpm

在这里插入图片描述
在这里插入图片描述
切换到目录,编译安装

cd AliSQL-AliSQL-5.6.32-9/
cmake -DCMAKE_INSTALL_PREFIX=/data/server/mysql -DMYSQL_UNIX_ADDR=/data/server/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/data/server/mysql/data -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DENABLE_DOWNLOADS=1

在这里插入图片描述

make && make install

在这里插入图片描述
7.AliSQL修改目录主权限

chown -R mysql:mysql /data/server/mysql

在这里插入图片描述
8.修改完成后,切换到mysql下
复制文件,并给权限

cd /data/server/mysql
cp support-files/my-default.cnf  ./my.cnf

在这里插入图片描述

chown -R  mysql:mysql my.cnf

在这里插入图片描述
配置文件vim my.cnf 在脚本末尾添加 切记不要打错 我打的时候把data打成dat ,所以启动的时候失败 以下标黄处就是

basedir = /data/server/mysqldatadir = /data/server/mysql/datasocket = /data/server/mysql/mysql.socklog-error = /data/server/mysql/data/error.logpid-file = /data/server/mysql/data/mysql.piduser = mysqltmpdir = /tmp
basedir = /data/server/mysql
datadir = /data/server/mysql/data
socket = /data/server/mysql/mysql.sock
log-error = /data/server/mysql/data/error.log
pid-file = /data/server/mysql/data/mysql.pid
user = mysql
tmpdir = /tmp

在这里插入图片描述
注意这里的 data 少打了一个字母a
10.数据库初始化

scripts/mysql_install_db  --defaults-file=./my.cnf --user=mysql 

在这里插入图片描述
11.cd切换到support-files中

 cd /support-files

12.启动数据库,启动后会有报错

./mysql.server start

解决报错方法如下

rm -rf /etc/my.cnf
cd /data/server/mysql
rm -rf my.cnf
cd data
rm -rf *
cd /data/server/mysql/
scripts/mysql_install_db  --defaults-file=./my.cnf --user=mysql 
cd support-files
./mysql.server start 开启mysql

在这里插入图片描述
切换到/bin目录下,重启数据库

cd /data/server/mysql/bin
./mysql –u root –p     记得这里“.”前面不能有空格

按回车后进入交互界面 密码不用敲 直接按enter回车就行
在这里插入图片描述
14.安装ntp服务 yum install ntp ntpdate -y
在这里插入图片描述
在这里插入图片描述
15.修改ntp.conf配置文件,restrict前去掉注释,server后地址为服务端地址192.168.110.198
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
16.启动ntp服务 service ntpd start
最好是使用systemctl start ntpd
在这里插入图片描述
17.在系统引导的时候自动启动,执行

service ntpd startchkconfig ntpd on

在这里插入图片描述
以上操作是错误的,应该是

systemctl enable ntpd.service

在这里插入图片描述
18.检查时间服务器是否正确同步
在这里插入图片描述
客户机配置
在客户机做以下步骤之前必须先安装mysql!!!! 跟服务机前面的步骤是一样的,直到NTP这里
关闭防火墙和沙盒

systemctl stop firewalld
setenforce 0

在这里插入图片描述
2.客户端安装ntp服务

yum install ntp ntpdate -y

在这里插入图片描述
在客户机配置ntp.conf文件,restrict前去掉注释,server后面IP地址为客户端地址192.168.110.160
在这里插入图片描述
在这里插入图片描述
在客户机手动同步时间 IP为服务机的IP
Ntpdate 192.168.110.198
在这里插入图片描述
5.在客户机进行 Master主库配置。 注意我把客户机定为了主库,服务机定为了从库
切换到mysql下
在这里插入图片描述
进入配置文件添加
在这里插入图片描述
在这里插入图片描述第7行
6.切换到support-files,重启mysql

cd /data/server/mysql/support-files/  ./mysql.server restart

在这里插入图片描述
7.切换到mysql/bin下进入mysql 注意配置的时候我把客户机设为主库,服务机设为从库了
新建用于主从同步的用户zc,允许登录从库为服务机里的“192.168.110.198”此处为服务机的IP

cd /data/server/mysql/bin
./mysql -u root -p

create user zc@192.168.110.198 identified by ‘123’; 此处也是服务机的IP
grant replication slave on . to zc@192.168.110.198; 此处也是服务机的IP
注意这里的用户是zc 不是zs 图片里的错误打的时候忽略掉就行
在这里插入图片描述
如果此处创建用户失败 234则先刷新再建; 要是还报错则删除再刷新再创建,如下:
在这里插入图片描述
在客户机里给从库账号授权,说明给zc从库复制的权限,在192.168.110.198
grant replication slave on . to zc@192.168.110.198;
在这里插入图片描述
与第6点一样 ,第6题我把上图给截取出来了
检查主库创建的复制账号

select user,host from mysql.user;

在这里插入图片描述
检查主库状态

show master status;

在这里插入图片描述
exit退出
在这里插入图片描述
注意从这儿开始去服务机操作 ,以下操作都是在服务机进行的。
去服务机里进行Slave从库配置
切换路径 cd … 进入到mysql 中
在这里插入图片描述
然后编辑配置文件
在这里插入图片描述
设置server-id值,关闭binlog功能参数
修改slave的/etc/my.cnf,写入
在这里插入图片描述
修改保存后,切换到support-files,重启数据库

cd support-files
./mysql.server restart 

在这里插入图片描述
进入数据库检查各项参数

cd ..
cd bin/
./mysql -u root -p

在这里插入图片描述

show variables like 'log_bin';

在这里插入图片描述

show variables like 'server_id';

在这里插入图片描述
配置复制参数,Slave从库连接Master主库的配置(分别为主库ip、库名、密码、配置参数、状态值,这里是客户机IP,因为我把客户机定为了主库)
开始 以下这个是个小知识点儿 记住就行 可忽略
在mysql数据库里面注意如果要继续打,继续操作,最后不要写分号,写逗号。
例如:
在这里插入图片描述
你看这里写的是分号,结果就结束了
在这里插入图片描述
你看这里写的是逗号,结果就出来下一行让继续敲了停止
从这里继续
在这里插入图片描述
在这里插入图片描述

>change master to master_host=’192.168.110.160’,主客ip
>master_user=’zc’,
>master_password=’123’,
>master_log_file=’mysql-bin.000001’,1
>master_log_pos=435;2

在这里插入图片描述
以下是排错
上面配置的数据是错误的,当时做的时候不太懂,应该要匹配到master
这里的引号都是单引号,没有反撇号
如果这里配置错了,可以采用以下这个方法:
错误点:Master Slave 主从同步错误
Slave_IO_Running:NO
Slave_SQL_Running:Yes
排错的方法:
#在Slave库上查看状态
mysql> show slave status\G
Slave_IO_Running: No
Slave_SQL_Running: Yes
#重启master库:service mysqld restart
mysql> show master status;
±-----------------±---------±-------------±-----------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
±-----------------------±-------------±-------------±-----------------+
| mysql-bin.000534 | 14670663 | | |
±-----------------------±-------------±-------------±-----------------+
mysql> stop slave;
mysql> change master to Master_Log_File=‘mysql-bin.000001’,Master_Log_Pos=98;
mysql> start slave;
mysql> show slave status\G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上是排错
启动从库的同步开关,测试主从复制情况
在这里插入图片描述
查看从库的状态
show slave status\G
在这里插入图片描述
在这里插入图片描述
进行测试:
在客户机主库里创建或删除文件 去服务机从库里去查看是否创建或删除成功
具体操作格式如下:
主库创建数据库文件:create database 文件名
去从库查看:show databases;
如需删除该文件 ,进入主库:drop database 文件名
主机从机查看show databases;
以下为创建文件 wxy:
主库:Create database wxy;
在这里插入图片描述
从库:show databases;
在这里插入图片描述
以下为删除文件wxy:
主库删除:drop database wxy
并产看:show databases;
在这里插入图片描述
去从库检查是否同步删除:
Show databases;
在这里插入图片描述
Mysql 主从复制验证成功。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值