mysql主从模式部署
1.下载tar.gz格式的安装包
下载地址https://dev.mysql.com/downloads/mysql/
2.解压
tar -zvxf mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.19-linux-glibc2.12-x86_64 mysql5719
mv mysql5719 /mysql
chown -R mysql:mysql /mysql/mysql5719
3.配置my.cnf
master节点配置,进入到/mysql/mysql5719目录下面,创建文件my.cnf,文件内容如下
[mysqld]
datadir=/mysql/mysql5719/data
socket=/mysql/mysql5719/data/mysql.sock
tmpdir = /tmp
user=mysql
basedir = /mysql/mysql5719
log-bin = master-bin
log-bin-index = master-bin.index
server-id = 1
# Disabling symbolic-links is recommended to prevent assorted security risks
#symbolic-links=0
#key_buffer = 16M
key_buffer_size = 32M
max_allowed_packet = 16M
thread_stack = 128K
thread_cache_size = 64
query_cache_limit = 8M
query_cache_size = 64M
query_cache_type = 1
# Important: see Distributing the Databases and Setting max_connections
max_connections = 3000
binlog_format=mixed
log_bin_trust_function_creators = 1
## @!!@
lower_case_table_names = 1
#default-storage-engine=InnoDB
#character_set_client=utf8
#default-collation=utf8_unicode_ci
character-set-server=utf8
collation-server=utf8_unicode_ci
read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
join_buffer_size = 8M
lower_case_table_names = 1
# InnoDB settings
innodb_data_home_dir=/mysql/mysql5719/data
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 64M
innodb_buffer_pool_size = 2G
innodb_thread_concurrency = 8
innodb_flush_method = O_DIRECT
innodb_log_file_size = 512M
#skip-grant-tables
#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
slave节点配置,进入到/mysql/mysql5719目录下面,创建文件my.cnf,文件内容如下
[mysqld]
datadir=/mysql/mysql5719/data
socket=/mysql/mysql5719/data/mysql.sock
user=mysql
port = 3306
basedir =/mysql/mysql5719
tmpdir =/tmp
relay-log = slave-relay-bin
relay-log-index = slave-relay-bin.index
server-id = 2
# Disabling symbolic-links is recommended to prevent assorted security risks
#symbolic-links=0
#key_buffer = 16M
key_buffer_size = 32M
max_allowed_packet = 16M
thread_stack = 128K
thread_cache_size = 64
query_cache_limit = 8M
query_cache_size = 64M
query_cache_type = 1
# Important: see Distributing the Databases and Setting max_connections
max_connections = 3000
binlog_format=mixed
log_bin_trust_function_creators = 1
## @!!@
lower_case_table_names = 1
#default-storage-engine=InnoDB
#character_set_client=utf8
#default-collation=utf8_unicode_ci
character-set-server=utf8
collation-server=utf8_unicode_ci
read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
join_buffer_size = 8M
lower_case_table_names = 1
# InnoDB settings
innodb_data_home_dir=/mysql/mysql5719/data
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 64M
innodb_buffer_pool_size = 2G
innodb_thread_concurrency = 8
innodb_flush_method = O_DIRECT
innodb_log_file_size = 512M
#skip-grant-tables
#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
4.创建数据目录
mkdir /mysql/mysql5719/data
5.修改mysql服务启动脚本


6.初始化数据库(root操作)
./bin/mysqld --defaults-file=./my.cnf --initialize

上图红框里面就是root的初始密码
7.启动MySQL服务(root操作)

8.设置mysql.sock
ln -s /mysql/mysql5721/data/mysql.sock /tmp/mysql.sock

9.设置root密码(初始密码在初始化数据库的时候生成)
set password for root@localhost = password('Zaq1@wsx');

10.设置MySQL服务
cp mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld

如果出现下面的报错

原因:MySQL默认的日志:/var/log/mysqld.log被占用了,删除即可。

11.设置MySQL客户端
mv /usr/bin/mysql /usr/bin/mysql.bak #删除备份旧的mysql命令,若不存在可忽略
cp mysql /usr/bin/
chmod 755 /usr/bin/mysql

到此为止,master机器的安装配置完成,接下来安装slave机器,slave机器的安装和master类似,但请注意my.cnf配置不一样
12.在master上添加主从同步用户
GRANT REPLICATION SLAVE ON *.* TO 'rep_user'@'%' IDENTIFIED BY 'Qwer1@#$';

查看主服务器,出现以下类似信息
mysql> show master status;

13.配置slave服务器
mysql -u root -p #进入MySQL控制台
stop slave; #停止slave同步进程
change master to master_host='134.176.72.82',master_user='rep_user',master_password='Qwer1@#$',master_log_file='master-bin.000002' ,master_log_pos=837; #执行同步语句
start slave; #开启slave同步进程
SHOW SLAVE STATUS\G #查看slave同步信息,出现以下内容

/images2018.cnblogs.com/blog/1394203/201807/1394203-20180721175143436-265635643.png)
注意查看:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上这两个参数的值为Yes,即说明配置成功!
14.测试MySQL主从服务器双机热备是否成功
(1)进入MySQL主服务器
mysql -u root -p #进入主服务器MySQL控制台
mysql> create database test;
mysql> use test; #进入数据库
mysql> CREATE TABLE test ( id int not null primary key,name char(20) ); #创建test表
mysql> insert into test values(001,'zhangsan');
mysql> insert into test values(002,'lisi');
(2)进入MySQL从服务器
mysql -u root -p #进入MySQL控制台
use test; #进入数据库
show tables; #查看mstest库,会看到有一个新建的表test,表示数据库同步成功
select * from test;
mysql主从模式部署的更多相关文章
- mysql主从模式下在主库上的某些操作不记录日志的方法
mysql主从模式下在主库上的某些操作不记录日志的方法 需求场景: 在主库上的需要删除某个用户,而这个用户在从库上不存在(我在接手一个业务的时候,就遇到主从架构用户授权不一致的情况,主库比较全,而从库 ...
- mysql 主从模式总结(一)
1. 主从模式的部署步骤 目标:部署一个有3台主机的单主模式的MySQL分组. Primary:192.168.197.110. Secondary:192.168.197.111. Secondar ...
- Mycat在MySQL主从模式(1主1从)下读写分离和及自动切换模式的验证
实验环境 两台Centos7 MySQL5.7.12 IP地址为:192.168.10.36 192.168.10.37 一台Centos7 Mycat IP地址为:192.168.10.31 一 ...
- Mysql主从同步(1) - 概念和原理介绍 以及 主从/主主模式 部署记录
Mysql复制概念Mysql内建的复制功能是构建大型高性能应用程序的基础, 将Mysql数据分布到多个系统上,这种分布机制是通过将Mysql某一台主机数据复制到其它主机(slaves)上,并重新执行一 ...
- 通过 Docker 部署 Mysql 8.0 主从模式
文章转载自:http://www.mydlq.club/article/106/ 系统环境: Mysql 版本:8.0.23 Docker 版本:19.03.13 一.为什么需要 Mysql 主从复制 ...
- mysql主从备份、主从切换的例子
指定binlog(因为时通过binlog实现数据同步的) 配置完后重启数据库服务,用show master status可以看到Master信息. StepB: 在SerB的my.cnf中指定 [ht ...
- mysql主从同步(5)-同步延迟状态考量(seconds_behind_master和pt-heartbea)
一般情况下,我们是通过"show slave status \G;"提供的Seconds_Behind_Master值来衡量mysql主从同步的延迟情况.具体说明见:mysql主从 ...
- mysql主从从
1.从官网下载安装percona-xtrabackup2.xtrabackup只能备份和恢复innodb的表,所以这里用innobackupex,可以实现对myisam和innodb的表在线备份和恢复 ...
- docker搭建简单mysql主从
关于MySQL主从模式,如果我们直接在本机上搭建的话,是没法搭建的,只能借助于虚拟机,但有的时候我们又需要搭建一个主从集群,以便于进行一些功能性的测试.这个时候我们就可以尝试使用docker,借助于d ...
随机推荐
- windows10永久激活工具 新版win10激活工具(绝对有效的永久激活工具)
来看这篇文章的,都用过KMS了吧?对!KMS是批量激活的,激活时间是一年,如果给女神激活,此法首选呀!!!但是帮基友激活,过了一年又来找自己,作为程序员的你,脸上是不是有点挂不住然后又不想花钱去买某宝 ...
- 2-1关闭和重启linux系统
0x01 shutdown命令 语法:shutdown [选项][时间][警告信息] 选项 含义 -k 并不执行shutdown,只是发出警告信息 -r 重新启动系统 -h 关闭系统 -c 取消运行s ...
- 火题大战Vol.0 B 计数DP
火题大战Vol.0 B 题目描述 \(n\) 个沙茶,被编号 \(1\)~$ n$.排完队之后,每个沙茶希望,自己的相邻的两人只要无一个人的编号和自己的编号相差为 \(1\)(\(+1\) 或\(-1 ...
- 真正从底层理解 Synchronized 实现原理
实现synchronized的基础有两个:Java 对象头和 Monitor. 在虚拟机规范中定义了对象在内存中的布局,主要由以下 3 部分组成: 对象头 实例数据 对齐填充 而synchronize ...
- docker入门1-docker container
image和container介绍 一个image是一个可被docker执行的包,它包括程序运行的所有东西,包括代码,运行时,库,环境变量和配置文件. 一个container是image在内存中的运行 ...
- Linux之lldptool工具
1. 描述当我们想在操作系统里面查看网口和交换机连接的状态信息,我们可以使用lldptool这个工具2.LLDP协议LLDP是Link Layer Discovery Protocol 链路层发现协议 ...
- Eclipse导入项目后JSP页面出现报红
Multiple annotations found at this line:- javax.servlet.jsp.JspException cannot be resolved to a typ ...
- Java面试题(网络篇)
网络 79.http 响应码 301 和 302 代表的是什么?有什么区别? 301,302 都是HTTP状态的编码,都代表着某个URL发生了转移. 区别: 301 redirect: 301 代表永 ...
- 【原创】探索容器底层知识之Namespace
一.先谈谈进程 在正式介绍Namespace之前,先介绍下进程,因为容器本质上是进程,但是在介绍进程之前,先理清下“程序”和“进程”的关系,这是IT从业人员在日常工作中经常碰到的两个词汇,举个通俗点的 ...
- 3点带你快速学会Selenium工具的使用
(一)Selenium IDE Firefox的一个插件,有助于我们理解测试框架.在附加组件里搜索下载,一般搜的结果里前几个都不是,得点那个查看更多才行,找到这个: 安装以后浏览器工具栏会有: 安装好 ...