MySQL 主从复制 搭建

在这里插入图片描述

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

服务机配置:
1.关闭防火墙和沙盒
systemctl stop firewalld.service
setenforce 0
在这里插入图片描述
2.下载解压mysql 包有安装包 拖进去就行
unzip AliSQL-AliSQL-5.6.32-9.zip
在这里插入图片描述

3.下载依赖包
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
在这里插入图片描述
在这里插入图片描述
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
在这里插入图片描述

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
在这里插入图片描述

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
在这里插入图片描述
注意这里的 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
在这里插入图片描述

13.切换到/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这里
1.关闭防火墙和沙盒
systemctl stop firewalld
setenforce 0
在这里插入图片描述

2.客户端安装ntp服务 yum install ntp ntpdate -y
在这里插入图片描述

2.在客户机配置ntp.conf文件,restrict前去掉注释,server后面IP地址为客户端地址192.168.110.160
在这里插入图片描述
在这里插入图片描述

3.在客户机手动同步时间 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 图片里的错误打的时候忽略掉就行

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

8.检查主库创建的复制账号
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数据库里面注意如果要继续打,继续操作,最后不要写分号,写逗号。
例如:
在这里插入图片描述
你看这里写的是分号,结果就结束了
在这里插入图片描述
你看这里写的是逗号,结果就出来下一行让继续敲了
在这里插入图片描述
在这里插入图片描述

上面配置的数据是错误的,当时做的时候不太懂,应该要匹配到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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL主从复制是指将一个MySQL数据库的变化同步到另一个MySQL数据库上,从而实现数据的备份、负载均衡、读写分离等功能。下面我们来介绍一下MySQL主从复制搭建过程。 1. 配置主服务器 首先需要在主服务器上配置一些参数。打开MySQL配置文件my.cnf,在[mysqld]下添加以下内容: ``` server-id=1 #服务器唯一ID log-bin=mysql-bin #启用二进制日志 binlog-do-db=testdb #指定需要复制的数据库名 ``` 然后重启MySQL服务。 2. 配置从服务器 接着需要在从服务器上配置一些参数。打开MySQL配置文件my.cnf,在[mysqld]下添加以下内容: ``` server-id=2 #服务器唯一ID,要保证与主服务器不同 ``` 然后重启MySQL服务。 3. 创建复制用户并授权 在主服务器上创建一个用于复制的用户,并授权给从服务器使用。在MySQL命令行中输入以下命令: ``` CREATE USER 'replication'@'%' IDENTIFIED BY 'password'; #创建用户 GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%'; #授权 ``` 其中,'password'是复制用户的密码。 4. 获取主服务器状态信息 在主服务器上执行以下命令,获取主服务器的状态信息: ``` SHOW MASTER STATUS; ``` 会显示出如下信息: ``` +------------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+------------------+-------------------+ | mysql-bin.000001 | 120 | testdb | | | +------------------+----------+--------------+------------------+-------------------+ ``` 其中,File列和Position列的值会在后面的步骤中用到。 5. 配置从服务器复制信息 在从服务器上执行以下命令,配置从服务器的复制信息: ``` CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='replication', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', #主服务器的File值 MASTER_LOG_POS=120; #主服务器的Position值 ``` 其中,master_ip是主服务器的IP地址,'password'是复制用户的密码,mysql-bin.000001和120分别是主服务器的File值和Position值。 6. 开启从服务器复制 在从服务器上执行以下命令,开启从服务器的复制: ``` START SLAVE; ``` 执行成功后,可以使用以下命令查看从服务器的状态: ``` SHOW SLAVE STATUS\G; ``` 如果看到“Slave_IO_Running”和“Slave_SQL_Running”两项都为“YES”,则说明从服务器复制已经正常启动。 至此,MySQL主从复制搭建完成。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值