一、mysql主从同步原理
关于MYSQL的主从同步,最主要的是要了解MYSQL的主从同步是如何工作的也即主从同步的原理。
二、安装mysql-5.7.12
1.下载二进制包(免编译)到/usr/local/src/
wget http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.12-linux-glibc2.5-x86_64.tar.gz
2.解压
tar -zxvf mysql-5.7.12-linux-glibc2.5-x86_64.tar.gz -C /usr/local
3.为mysql-5.7.12创建软连接
ln -s mysql-5.7.12-linux-glibc2.5-x86_64/ /usr/local/mysql
4.建立mysql用户
useradd mysql -s/sbin/nologin -M
5.创建数据库存放目录
mkdir -p /data/mysql/data
6.修改目录的所属主、所属群组
chown -R mysql.mysql /data/mysql
7.配置my.cnf
cd /usr/local/mysql/support-files
cp my-default.cnf /etc/my.cnf
vim /etc/my.cnf
修改:
datadir =/data/mysql/data #数据库存放位置
port=3306 #数据库端口
Server_id = 1 #主服务写1 副服务写2
socket=/data/mysql/tmp/mysql.socket #socket
添加:
log-error=/var/log/mysqld.err.log #错误日志存放位置
pid-file=/data/mysql/mysqld.pid #PID存放位置
#开启查询缓存
explicit_defaults_for_timestamp=true
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
8.初始化数据库(到mysql目录下执行)
./bin/mysqld --initialize --user=mysql --datadir=/data/mysql/data
9.启动mysql(到mysql目录下执行)
./support-files/mysql.server start
三、mysql主从配置
主库master:123.56.15.42 从库slave:49.4.186.132
1、在master上修改my.ini配置文件
server-id=1 //区别master和slave
log-bin=mysql-bin //启动二进制日志文件功能
binlog-do-db=test //二进制文件需要同步的数据库名(不写为同步所有数据)
binlog-ignore-db=mysql //不同步mysql数据库数据,以免发生因同步了用户信息而从机出现登录问题
skip-grant-tables //跳过密码
重新启动mysql数据库
2、指定环境变量
vim /etc/profile.d/mysql.sh
#!/bin/bash
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib
source /etc/profile.d/mysql.sh
echo $PATH
3、跳过密码
mysql --socket=/data/mysql/tmp/mysql.socket
4、修改mysql密码
update mysql.user set authentication_string=password('123') where user='root' and host='localhost';
5、创建同步用户并授权
grant replication slave,reload,super on *.* to 'yskj'@'49.4.186.132' identified by "yskj123";
(用户)(从ip) (密码)
flush privileges;
2、在slave上修改my.cnf配置文件
server-id=2
relay-log=relay-log-bin
relay-log-index=slave-relay-bin.index
3、在master上查看主库状态
Show master status;
可以知道File(mysql-bin.000001),Position(154)
4、在slave上查看从库状态
Stop slave; 停止备
change master to master_host='123.56.15.42',master_user='yskj',master_password='yskj123',master_log_file='mysql-bin.000001',master_log_pos=154; 连接主数据库
Start slave; 启动备
show slave status\G 查看备的状态
Slave_IO_Running: Yes (从库I/O读写正常)
Slave_SQL_Running: Yes (从库mysql监听正常)
主从同步配置完成
服务端新建数据库:create database 123;
服服务器上show databases;如果出现123 就说明同步成功!
关于MYSQL的主从同步,最主要的是要了解MYSQL的主从同步是如何工作的也即主从同步的原理。
二、安装mysql-5.7.12
1.下载二进制包(免编译)到/usr/local/src/
wget http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.12-linux-glibc2.5-x86_64.tar.gz
2.解压
tar -zxvf mysql-5.7.12-linux-glibc2.5-x86_64.tar.gz -C /usr/local
3.为mysql-5.7.12创建软连接
ln -s mysql-5.7.12-linux-glibc2.5-x86_64/ /usr/local/mysql
4.建立mysql用户
useradd mysql -s/sbin/nologin -M
5.创建数据库存放目录
mkdir -p /data/mysql/data
6.修改目录的所属主、所属群组
chown -R mysql.mysql /data/mysql
7.配置my.cnf
cd /usr/local/mysql/support-files
cp my-default.cnf /etc/my.cnf
vim /etc/my.cnf
修改:
datadir =/data/mysql/data #数据库存放位置
port=3306 #数据库端口
Server_id = 1 #主服务写1 副服务写2
socket=/data/mysql/tmp/mysql.socket #socket
添加:
log-error=/var/log/mysqld.err.log #错误日志存放位置
pid-file=/data/mysql/mysqld.pid #PID存放位置
#开启查询缓存
explicit_defaults_for_timestamp=true
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
8.初始化数据库(到mysql目录下执行)
./bin/mysqld --initialize --user=mysql --datadir=/data/mysql/data
9.启动mysql(到mysql目录下执行)
./support-files/mysql.server start
三、mysql主从配置
主库master:123.56.15.42 从库slave:49.4.186.132
1、在master上修改my.ini配置文件
server-id=1 //区别master和slave
log-bin=mysql-bin //启动二进制日志文件功能
binlog-do-db=test //二进制文件需要同步的数据库名(不写为同步所有数据)
binlog-ignore-db=mysql //不同步mysql数据库数据,以免发生因同步了用户信息而从机出现登录问题
skip-grant-tables //跳过密码
重新启动mysql数据库
2、指定环境变量
vim /etc/profile.d/mysql.sh
#!/bin/bash
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib
source /etc/profile.d/mysql.sh
echo $PATH
3、跳过密码
mysql --socket=/data/mysql/tmp/mysql.socket
4、修改mysql密码
update mysql.user set authentication_string=password('123') where user='root' and host='localhost';
5、创建同步用户并授权
grant replication slave,reload,super on *.* to 'yskj'@'49.4.186.132' identified by "yskj123";
(用户)(从ip) (密码)
flush privileges;
2、在slave上修改my.cnf配置文件
server-id=2
relay-log=relay-log-bin
relay-log-index=slave-relay-bin.index
3、在master上查看主库状态
Show master status;
可以知道File(mysql-bin.000001),Position(154)
4、在slave上查看从库状态
Stop slave; 停止备
change master to master_host='123.56.15.42',master_user='yskj',master_password='yskj123',master_log_file='mysql-bin.000001',master_log_pos=154; 连接主数据库
Start slave; 启动备
show slave status\G 查看备的状态
Slave_IO_Running: Yes (从库I/O读写正常)
Slave_SQL_Running: Yes (从库mysql监听正常)
主从同步配置完成
服务端新建数据库:create database 123;
服服务器上show databases;如果出现123 就说明同步成功!
编辑回复