美文网首页
MySql双主互备配置

MySql双主互备配置

作者: 瞬即逝转 | 来源:发表于2019-08-08 11:58 被阅读0次

我把文档拆分成多个部分,然后各自组合成了全新安装和现有环境升级安装,各位可以根据自己的情况选择

全新安装

安装步骤:1.master1节点配置—》2.master2节点配置—》3.主从配置

现有环境升级安装

安装步骤:4.数据备份—》2.master2节点配置—》5.数据恢复—》6.卸载mysql5.6环境——》1.master1节点配置—》5.数据恢复—》3.主从配置

1.master1节点配置

创建目录

cd /home
mkdir mysql
cd /home/mysql
mkdir ./{binlog,data,undo,redo,errorlog,slowlog,sock,script}

解压文件

将mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz上传到服务器/home目录下
cd /home/mysql
tar -zxvf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.27-linux-glibc2.12-x86_64 mysql-5.7.27

添加mysql用户及用户组

groupadd mysql
useradd -r -g mysql mysql

修改当前目录拥有者为mysql用户

chown -R mysql:mysql /home/mysql

修改配置文件 将下面配置添加到 配置文件中

vim /etc/my.cnf

[client]
socket=/home/mysql/sock/mysql.sock
[mysqld]
basedir=/home/mysql/mysql-5.7.27
datadir=/home/mysql/data
socket=/home/mysql/sock/mysql.sock
port=3307
server-id = 1
lc-messages-dir=/home/mysql/mysql-5.7.27/share

innodb_data_home_dir = /home/mysql/data
innodb_data_file_path = ibdata1:50M:autoextend
innodb_file_per_table #支持私有表空间

innodb_undo_tablespaces = 3
innodb_undo_logs = 128
innodb_undo_directory = /home/mysql/undo/

event_scheduler = ON #支持触发器

log-bin = /home/mysql/binlog/mysql-bin
max_binlog_size = 500M
binlog_format = row
gtid_mode = on
enforce-gtid-consistency = on
sync_binlog = 1
slave-skip-errors = all
master_info_repository=TABLE
auto-increment-increment = 2
auto-increment-offset = 1

symbolic-links=0
lower_case_table_names=1
transaction-isolation=read-committed
expire_logs_days = 10
innodb_buffer_pool_size=524288000
skip-name-resolve

max_connections = 1000
max_connect_errors = 6000

[mysqld_safe]
log-error=/home/mysql/errorlog/mysqld.log
pid-file=/home/mysql/mysqld.pid

安装数据库

cd /home/mysql/mysql-5.7.27/bin
./mysqld --defaults-file=/etc/my.cnf --user=mysql --initialize-insecure

修改启动文件

cd /home/mysql/mysql-5.7.27/support-files
vim mysql.server
basedir=/home/mysql/mysql-5.7.27
datadir=/home/mysql/data

MySQL启动

./mysql.server start

登录mysql修改权限,直接回车,默认空密码

cd /home/mysql/mysql-5.7.27/bin
./mysql -uroot -p
执行sql命令
mysql> alter user 'root'@'localhost' identified by '!qaz@wsx';
mysql>flush privileges;
mysql>grant all privileges on . to root@'%' identified by '!qaz@wsx';
mysql>flush privileges;
mysql> grant replication slave,replication client on . to repl@'%' identified by '!qaz@wsx';
mysql>exit;

配置环境变量

将下面内容加到/etc/profile文件最后的位置

vim /etc/profile
export MYSQL_HOME=/home/mysql/mysql-5.7.27
export PATH=$PATH:$MYSQL_HOME/bin
source /etc/profile

设置开机启动

cp /home/mysql/mysql-5.7.27/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
service mysqld restart
service mysqld status

2.Master2节点配置

创建目录

cd /home
mkdir mysql
cd /home/mysql
mkdir ./{binlog,data,undo,redo,errorlog,slowlog,sock,script}

解压文件

将mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz上传到服务器/home目录下
cd /home/mysql
tar -zxvf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.27-linux-glibc2.12-x86_64 mysql-5.7.27

添加mysql用户及用户组

groupadd mysql
useradd -r -g mysql mysql

修改当前目录拥有者为mysql用户

chown -R mysql:mysql /home/mysql

修改配置文件 将下面配置添加到 配置文件中

vim /etc/my.cnf

[client]
socket=/home/mysql/sock/mysql.sock
[mysqld]
basedir=/home/mysql/mysql-5.7.27
datadir=/home/mysql/data
socket=/home/mysql/sock/mysql.sock
port=3307
server-id = 2
lc-messages-dir=/home/mysql/mysql-5.7.27/share

innodb_data_home_dir = /home/mysql/data
innodb_data_file_path = ibdata1:50M:autoextend
innodb_file_per_table #支持私有表空间

innodb_undo_tablespaces = 3
innodb_undo_logs = 128
innodb_undo_directory = /home/mysql/undo/

event_scheduler = ON

log-bin = /home/mysql/binlog/mysql-bin
max_binlog_size = 500M
binlog_format = row
gtid_mode = on
enforce-gtid-consistency = on
sync_binlog = 1
slave-skip-errors = all
master_info_repository=TABLE
auto-increment-increment = 2
auto-increment-offset = 2

symbolic-links=0
lower_case_table_names=1
transaction-isolation=read-committed
expire_logs_days = 10
innodb_buffer_pool_size=524288000
skip-name-resolve

max_connections = 1000
max_connect_errors = 6000

[mysqld_safe]
log-error=/home/mysql/errorlog/mysqld.log
pid-file=/home/mysql/mysqld.pid

安装数据库

cd /home/mysql/mysql-5.7.27/bin
./mysqld --defaults-file=/etc/my.cnf --user=mysql --initialize-insecure

修改启动文件

cd /home/mysql/mysql-5.7.27/support-files
vim mysql.server
basedir=/home/mysql/mysql-5.7.27
datadir=/home/mysql/data

MySQL启动

./mysql.server start

登录mysql修改权限,直接回车,默认空密码

cd /home/mysql/mysql-5.7.27/bin
./mysql -uroot -p

执行sql命令

mysql> alter user 'root'@'localhost' identified by '!qaz@wsx';
mysql>flush privileges;
mysql>grant all privileges on . to root@'%' identified by '!qaz@wsx';
mysql>flush privileges;
mysql> grant replication slave,replication client on . to repl@'%' identified by '!qaz@wsx';
mysql>flush privileges;
mysql>exit;

配置环境变量

将下面内容加到/etc/profile文件最后的位置
vim /etc/profile
export MYSQL_HOME=/home/mysql/mysql-5.7.27
export PATH=$PATH:$MYSQL_HOME/bin
source /etc/profile

设置开机启动

cp /home/mysql/mysql-5.7.27/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
service mysqld restart
service mysqld status

3.主从配置

Master1节点数据库登录

mysql -uroot -p

执行sql命令

mysql> change master to master_host='master2节点ip',master_user='repl',master_password='!qaz@wsx',master_port=3307,master_auto_position=1;
mysql>start slave;
mysql>show slave status\G;

查看主要参数

Slave_IO_Running: Yes
Slave_SQL_Running: Yes
mysql>exit;

Master2节点数据库登录

mysql -uroot -p

执行sql命令

mysql> change master to master_host='master1节点ip',master_user='repl',master_password='!qaz@wsx',master_port=3307,master_auto_position=1;
mysql>start slave;
mysql>show slave status\G;

查看主要参数

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

mysql>exit;

4.数据备份

登录现有mysql环境服务器

mysqldump -uroot -p –all-databases > /home/all.sql

5.数据恢复

master2节点恢复数据

将备份的all.sql文件上传到master2节点/home/mysql目录下

mysql -uroot –p
mysql>source /home/mysql/all.sql
mysql>exit;

6.卸载mysql5.6环境

登录现有mysql环境服务器

service mysqld stop
rm -rf /usr/local/mysql
rm -rf /etc/my.cnf

相关文章

  • MySql双主互备配置

    我把文档拆分成多个部分,然后各自组合成了全新安装和现有环境升级安装,各位可以根据自己的情况选择 全新安装 安装步骤...

  • 基于Docker的Mysql主备搭建

    Docker mysql主从配置。我们会在一台centos的虚拟机上,配置mysql主备 前期规划: docker...

  • Mycat实现MySQL主从复制和读写分离----mysql双主

    1 机器准备 2 mysql双主双从安装配置 2.1 mysql的安装 2.2 配置和验证 3 mycat的安装 ...

  • Mysql主从配置

    mysql主备配置的时候,这时主添加数据,备库未更新,这时有查询进来,查询到了备库。如何解决。可以sql语句强行走...

  • MySQL-18.高可用的基础-主备切换逻辑

    MySQL 要提供高可用能力,只有最终一致性是不够的。 双 M 结构的主备切换流程图: 1.主备延迟 主备切换可能...

  • Mysql 高可用方案 Keepalived

    前言:当mysql有了主主或者主备配置后,数据备份有了保障,但是当其中一个master挂掉后,mysql还是无法使...

  • Mysql 主备双库方案

    一、简介 1、我们为什么要用主从复制? 主从复制目的:可以做数据库的实时备份,保证数据的完整性;可做读写分离,主服...

  • 配置Keepalived 双主热备

    规则:以一个虚拟ip分组归为同一个路由主节点配置: 备用节点配置

  • MySQL备份与主备配置

    数据备份类型 全量备份:备份整个数据库 增量备份:备份自上一次备份以来(增量或完全)以来变化的数据 差异备份:备份...

  • 主备和集群

    今天来聊聊,什么是主备,什么是集群,什么是节点 主备主备多用来数据库场景,比如:mysql主备,redis主备等等...

网友评论

      本文标题:MySql双主互备配置

      本文链接:https://www.haomeiwen.com/subject/cmotjctx.html