MYSQL实现主从复制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL实现主从复制相关的知识,希望对你有一定的参考价值。

一.关闭防火墙和SElinux:

systemctl stop firewalld.service 
setenforce 0

二.准备环境:
两台虚拟机安装mysql
IP:192.168.43.176
IP2:192.168.43.213

三.下载解压mysql:

unzip AliSQL-AliSQL-5.6.32-9.zip

技术图片

下载依赖包:

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

技术图片
添加用户:

groupadd mysql
useradd -g mysql mysql

技术图片
下载并解压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

技术图片

编译安装

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 

技术图片
技术图片

修改目录主权限:

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

复制文件给权限:

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

技术图片

配置文件:

vim my.cnf
basedir = /data/server/mysql
datadir = /data/server/mysql/data
socket = /data/server/mysql/mysql.sock
log-error = /dat/server/mysql/data/error.log
pid-file = /data/server/mysql/data/mysql.pid
user = mysql
tmpdir = /tmp

技术图片

数据库初始化:

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

技术图片
进到support-files中启动数据库:

./mysql.server start

技术图片
报错PID解决办法

rm -rf /etc/my.cnf
cd /data/server/mysql
rm -rf my.cof
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 -uroot -p 

技术图片
MYSQL 启动完成。

NTP时间服务同步器
准备两台虚拟机
服务端IP:192.168.43.213
客户端IP:192.168.43.176
服务端配置
安装ntp服务

yum install ntp ntpdate -y

技术图片
修改ntp.conf配置文件

vim /etc/ntp.conf

技术图片

启动NTP服务

service ntpd start

为了使服务可以在系统引导的时候自动启动,执行

  service ntpd startchkconfig ntpd on

技术图片
检查时间服务器是否正确同步

ntpq -p

技术图片

客户端配置
关闭防火墙:

systemctl stop firewalld
setenforce 0

客户端安装ntp服务

yum install ntp ntpdate -y

配置ntp.conf文件

vim /etc/ntp.conf

技术图片

手动同步时间

ntpdate 192.168.124.133

技术图片

NTP时间同步实现

主从复制
master主库配置

vim /mysql/my.cnf

 [mysqld]
server-id=1
 log-bin=mysql-bin

技术图片
重启MySQL:cd /data/server/mysql/support-files

./mysql.server restart

技术图片
新建用于主从同步的用户hong,允许登录的从库是‘192.168.43.176‘

create user ‘hong‘@‘192.168.43.176‘ identified by ‘123‘;

给从库账号授权,说明给hong从库复制的权限,在192.168.43.176机器上复制

grant replication slave on *.* to ‘hong‘@‘192.168.43.176‘;

检查主库创建的复制账号

select user,host from mysql.user;

检查授权账号的权限

show grants for hong@‘192.168.43.176‘;

检查主库的状态:

show master status;

技术图片
slave从库配置
设置server-id值并关闭binlog功能参数
修改Slave的/etc/my.cnf,写入

vim /etc/my.cnf
[mysqld]
server-id=3

技术图片

重启数据库

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

技术图片

检查Slava从数据库的各项参数

show variables like ‘log_bin‘;
show variables like ‘server_id‘;

技术图片
配置复制的参数,Slave从库连接Master主库的配置

change master to master_host=‘192.168.43.213‘,(主库的ip)
master_user=‘hong‘,(主库的用户名)
master_password=123‘,(主库用户的密码)
master_log_file=‘mysql-bin.000001‘,(主库的配置参数)
master_log_pos=265;(主库的状态值)

技术图片
启动从库的同步开关,测试主从复制的情况

start slave;

技术图片
查看复制状态

show slave status\G;

技术图片

以上是关于MYSQL实现主从复制的主要内容,如果未能解决你的问题,请参考以下文章

MySQL的Binlog与主从复制

MySQL:主从复制结构双主复制结构利用SSL实现安全的MySQL主从复制

mysql的主从复制是如何实现的

《MySQL系列-主从相关》Docker安装MySQL,实现主从复制

第五章:MySQL主从复制

MySQL的主从复制是如何实现的