MySQL 主从复制 搭建

准备环境:两台虚拟机安装mysql

服务机配置:
1.关闭防火墙和沙盒
systemctl stop firewalld.service
setenforce 0
MySQL 主从复制 搭建
2.下载解压mysql 包有安装包 拖进去就行
unzip AliSQL-AliSQL-5.6.32-9.zip
MySQL 主从复制 搭建

3.下载依赖包
yum -y install cmake bison git ncurses-devel gcc gcc-c++

注意:如果这里报错,显示另一个进程被占用 则使用这个命令把进程杀掉就行 这个是报错显示内容:
MySQL 主从复制 搭建
命令:rm -f /var/run/yum.pid
MySQL 主从复制 搭建
MySQL 主从复制 搭建
4.添加用户
groupadd mysql
useradd -g mysql 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
MySQL 主从复制 搭建
MySQL 主从复制 搭建
6.切换到目录,编译安装
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
MySQL 主从复制 搭建

make && make install
MySQL 主从复制 搭建
7.AliSQL修改目录主权限
chown -R mysql:mysql /data/server/mysql
MySQL 主从复制 搭建
8.修改完成后,切换到mysql下
复制文件,并给权限
cd /data/server/mysql
cp support-files/my-default.cnf ./my.cnf
MySQL 主从复制 搭建
chown -R mysql:mysql my.cnf
MySQL 主从复制 搭建

9.配置文件vim my.cnf 在脚本末尾添加 切记不要打错 我打的时候把data打成dat ,所以启动的时候失败 以下标黄处就是(data)
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
MySQL 主从复制 搭建
注意这里的 data 少打了一个字母a

10.数据库初始化
scripts/mysql_install_db --defaults-file=./my.cnf --user=mysql
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 主从复制 搭建

13.切换到/bin目录下,重启数据库
Cd /data/server/mysql/bin
./mysql –u root –p 记得这里“.”前面不能有空格
按回车后进入交互界面 密码不用敲 直接按enter回车就行
MySQL 主从复制 搭建

14.安装ntp服务 yum install ntp ntpdate -y

MySQL 主从复制 搭建
MySQL 主从复制 搭建
15.修改ntp.conf配置文件,restrict前去掉注释,server后地址为服务端地址192.168.110.198
MySQL 主从复制 搭建
MySQL 主从复制 搭建
16.启动ntp服务 service ntpd start 最好是使用systemctl start ntpd

MySQL 主从复制 搭建
17.在系统引导的时候自动启动,执行 service ntpd startchkconfig ntpd on
MySQL 主从复制 搭建
以上操作是错误的,应该是systemctl enable ntpd.service
MySQL 主从复制 搭建

18.检查时间服务器是否正确同步

MySQL 主从复制 搭建

二.客户机配置
在客户机做以下步骤之前必须先安装mysql!!!! 跟服务机前面的步骤是一样的,直到NTP这里
1.关闭防火墙和沙盒
systemctl stop firewalld
setenforce 0
MySQL 主从复制 搭建

2.客户端安装ntp服务 yum install ntp ntpdate -y
MySQL 主从复制 搭建

2.在客户机配置ntp.conf文件,restrict前去掉注释,server后面IP地址为客户端地址192.168.110.160
MySQL 主从复制 搭建
MySQL 主从复制 搭建

3.在客户机手动同步时间 IP为服务机的IP
Ntpdate 192.168.110.198
MySQL 主从复制 搭建

5.在客户机进行 Master主库配置。 注意我把客户机定为了主库,服务机定为了从库
切换到mysql下
MySQL 主从复制 搭建
进入配置文件添加
MySQL 主从复制 搭建
MySQL 主从复制 搭建
第7行
6.切换到support-files,重启mysql
cd /data/server/mysql/support-files/ ./mysql.server restart
MySQL 主从复制 搭建

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
MySQL 主从复制 搭建
注意这里的用户是zc 不是zs 图片里的错误打的时候忽略掉就行

如果此处创建用户失败 则先刷新再建; 要是还报错则删除再刷新再创建,如下:
MySQL 主从复制 搭建
7.在客户机里给从库账号授权,说明给zc从库复制的权限,在192.168.110.198
grant replication slave on . to zc@192.168.110.198;
MySQL 主从复制 搭建
与第6点一样 ,第6题我把上图给截取出来了

8.检查主库创建的复制账号
select user,host from mysql.user;
MySQL 主从复制 搭建
检查主库状态
show master status;
MySQL 主从复制 搭建
exit退出
MySQL 主从复制 搭建

注意从这儿开始去服务机操作 ,以下操作都是在服务机进行的。
去服务机里进行Slave从库配置
切换路径 cd … 进入到mysql 中
MySQL 主从复制 搭建
然后编辑配置文件
MySQL 主从复制 搭建
设置server-id值,关闭binlog功能参数
修改slave的/etc/my.cnf,写入
MySQL 主从复制 搭建

修改保存后,切换到support-files,重启数据库
cd support-files
./mysql.server restart
MySQL 主从复制 搭建

进入数据库检查各项参数
cd …
cd bin/
./mysql -u root -p
MySQL 主从复制 搭建
show variables like ‘log_bin’;
MySQL 主从复制 搭建
show variables like ‘server_id’;
MySQL 主从复制 搭建

三、配置复制参数,Slave从库连接Master主库的配置(分别为主库ip、库名、密码、配置参数、状态值,这里是客户机IP,因为我把客户机定为了主库)

以下这个是个小知识点儿 记住就行 可忽略

在mysql数据库里面注意如果要继续打,继续操作,最后不要写分号,写逗号。
例如:
MySQL 主从复制 搭建
你看这里写的是分号,结果就结束了
MySQL 主从复制 搭建
你看这里写的是逗号,结果就出来下一行让继续敲了
MySQL 主从复制 搭建
MySQL 主从复制 搭建

上面配置的数据是错误的,当时做的时候不太懂,应该要匹配到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
————————————————

启动从库的同步开关,测试主从复制情况
MySQL 主从复制 搭建

查看从库的状态
show slave status\G
MySQL 主从复制 搭建
MySQL 主从复制 搭建

进行测试:
在客户机主库里创建或删除文件 去服务机从库里去查看是否创建或删除成功

具体操作格式如下:

主库创建数据库文件:create database 文件名
去从库查看:show databases;
如需删除该文件 ,进入主库:drop database 文件名
主机从机查看show databases;

以下为创建文件 wxy:
主库:Create database wxy;
MySQL 主从复制 搭建
从库:show databases;
MySQL 主从复制 搭建
以下为删除文件wxy:
主库删除:drop database wxy
并查看:show databases;
MySQL 主从复制 搭建

去从库检查是否同步删除:
Show databases;
MySQL 主从复制 搭建
Mysql 主从复制验证成功。

小编这篇文档写得很失败,比较啰嗦,比较乱,但是很详细,初学者可以帮到你,大神请绕路 嘿嘿

相关文章: