mysql5.7 主从搭建

环境、版本

centos 7.2    mysql5.7.13

mysql  Master  操作

下载软件包

cd /opt/soft wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz --no-check-certificate

安装

tar -xvf /opt/soft/mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz  -C /usr/local/

mv mysql-5.7.13-linux-glibc2.5-x86_64   mysql

mkdir -p /data/mysql      #数据目录

mkdir -p /data/log/mysql     #日志目录

groupadd mysql

useradd  -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql

chown -R mysql:mysql  /user/local/mysql

chown -R mysql:mysql /data/mysql/

chown -R mysql:mysql /data/log/

./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql    #初始化数据库,完成后会生成一个临时密码,注意保存

./bin/mysql_ssl_rsa_setup --datadir=/data/mysql                    #数据库加密

常规配置

vi  /etc/my.cnf

[mysql]
default-character-set=utf8
 
[mysqld]
default-storage-engine=INNODB
character_set_server=utf8

mysql 命令加环境变量

echo "export PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile

bash  /etc/profile

通过初始密码登录改一个新密码

mysql -uroot -p 
set password=password("密码");
flush privileges;

systemctl enable mysql    开机自启

主从同步配置

vi /etc/my.cnf 

server-id=1
log_bin=master-bin
log_bin_index=master-bin.index
binlog_do_db=test
#备注:
#server-id 服务器唯一标识。
#log_bin 启动MySQL二进制日志,即数据同步语句,从数据库会一条一条的执行这些语句。
#binlog_do_db 指定记录二进制日志的数据库,即需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可。
#binlog_ignore_db 指定不记录二进制日志的数据库,即不需要复制的数据库名,如果有多个数据库,重复设置这个选项即可。
#其中需要注意的是,binlog_do_db和binlog_ignore_db为互斥选项,一般只需要一个即可

创建从服务器权限

[root@localhost mysql]# mysql -uroot -p
Enter password:
 
#创建从数据库的masterbackup用户和权限
mysql> grant replication slave on *.* to masterbackup@'192.168.17.%' identified by '123456';
#备注
#192.168.17.%通配符,表示0-255的IP都可访问主服务器,正式环境请配置指定从服务器IP
#若将 192.168.17.% 改为 %,则任何ip均可作为其从数据库来访问主服务器
 
#退出mysql
mysql> exit;
service mysql restart
mysql -uroot -p 
show master status;              #记录pos 位置,和日志文件名字

mysql  Backup 操作

下载,安装,常规配置同上

主从配置

vi /etc/my.cnf

server-id=2
relay-log=slave-relay-bin
relay-log-index=slave-relay-bin.index
启动同步
mysql -uroot -p

change master to master_host='192.168.1.1',master_port=3306,master_user='masterbackup',master_password='123456',master_log_file='master-bin.000004',master_log_pos=154;

  start slave

  show slave status\G;        #查看状态是否正常

master_log_file,master_log_pos 为在主上执行show master status命令查看获得信息
show slave status;\G     查看状态如下全为yes 即可,否则配置有问题

Slave_SQL_Running: Yes
Slave_IO_Running: Yes

测试

登录mysql 主 
选择test 数据,创建如下表
create table tb_test(ID varchar(36) primary key comment '主键ID',MEMO varchar(500) not null comment '信息');
insert into tb_test(ID,MEMO) values('1','one test');

 后期增加新的要同步数据库

1、直接在master 配置文件上配置要增加的数据库名称,

2、授权从数据库能够访问同步的新数据库

3、停止从的同步服务,重新执行 change master to master_host='192.168.1.1',master_port=3306,master_user='masterbackup',...命令

4、start slave

5、show slave status;

猜你喜欢

转载自www.cnblogs.com/fanggege/p/10856153.html
今日推荐