mysql主从配置

MySQL打造扛得住的数据库架构.md-目前只有监控篇

怎甘沉沦 提交于 2020-04-08 04:53:26
[TOC] MySQL性能管理及架构设计笔记 数据库监控 要监控的内容 对数据库的可用性进行监控: 不是仅仅监控数据库进程是否存在,要通过网络连接到数据库并确定是可用的 对数据库性能进行监控: QPS TPS, 并发线程数量, innnoDB阻塞和死锁 对主从复制进行监控: 主从链路状态, 主从延迟, 主从数据一致性 对服务器资源监控: 磁盘: 且并不意味着磁盘空间大,MySQL能用的就大,因为可能分区分配的不够大. CPU使用率 内存使用情况 swap分区使用情况 网络IO使用情况 数据库可用性监控 确认数据库是否可用通过网络正常连接 要注意,如果我们在MySQL本机使用SQL来连接MySQL,这并不意味着外部也能通过tcp/ip协议来访问MySQL,因为外部面临的环境更为复杂. 比如tcp/ip被占满之类的, 所以我们必须通过远程服务器来实际的连接请求: 使用mysqladmin: # 如果数据库存活,该命令会返回mysqld is alive ~ ⌚ 23:30:42 $ mysqladmin -u root -p -h localhost ping Enter password: mysqld is alive 使用Telnet(一般作为手动使用) # telnet连接成功后,都懂得,只要不是提示连接失败,同时提供给我们可以交互式命令行,那就是成功了 ~ ⌚ 23:42

CentOS7.3 部署两个实例 MySQL

拈花ヽ惹草 提交于 2020-04-07 17:12:39
描述 在同一台服务器中安装两个MySQL数据库。目的是为了配置主从分离,所以需要多安装一台用于从数据库。使用 mysqld_multi 启动多个实例。 mysql官网下载 需要安装的版本。 下载与安装 在 /usr/local/ 下创建 mysqltemp (用于临时下载数据库安装包)。 [root@localhost local]# cd /usr/local [root@localhost local]# mkdir mysqltemp [root@localhost local]# cd mysqltemp [root@localhost mysql3307]# wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.28-linux-glibc2.12-i686.tar.gz [root@localhost mysql3307]# tar -xvf mysql-5.7.28-linux-glibc2.12-i686.tar.gz // 重命名解压的文件为mysql,并移动mysql到/usr/local/mysql [root@localhost mysql3307]# mv mysql-5.7.28-linux-glibc2.12-i686 /usr/local/mysql 下载、解压和重命名之后,完整路径是

第十五周

风格不统一 提交于 2020-04-07 14:03:07
1、编写脚本,支持让用户自主选择,使用mysqldump还是xtraback全量备份。 #!/bin/bash PS3="Please input a choice:" select menu in mysqldump xtrabackup; do case $REPLY in 1) mkdir /backup/dump/ &> /dev/null mysqldump -F -A --single-transaction --master-data=1 > /backup/dump/all.sql break ;; 2) mkdir /backup/test/ &> /dev/null xtrabackup --backup --target-dir=/backup/test/ &> /dev/null break ;; *) echo "please input again!" esac done 2、配置Mysql主从同步 环境:192.168.43.127 master 192.168.43.137 slave 1、master配置文件: [root@centos7 backup]#cat /etc/my.cnf [mysqld] **server-id=1** max_connections=2000 binlog_format=ROW **log-bin=/data

Mysql主从复制搭建

百般思念 提交于 2020-04-06 11:31:54
1.mysql主库会把所有的写操作记录在binlog日志中,并且生成log dump线程,将binlog日志传给从库的I/O线程,从库生成两个线程,一个是I/O线程,另外一个是SQL线程。 主将更改操作记录到binlog里从将主的binlog事件(sql语句) 同步本机上并记录在relaylog里从根据relaylog里面的sql语句按顺序执行。 2.主从复制步骤: 确保从数据库与主数据库里的数据一致 在主数据库里创建一个同步账户授权给从数据库使用 配置主数据库(修改配置文件) 配置从数据库(修改配置文件) 一主一从 主主复制 一主多从---扩展系统读取的性能,因为读是在从库读取的 多主一从---5.7版本开始支持 联级复制 3.需求: 搭建两台MYSQL服务器,一台作为主服务器,一台作为从服务器,主服务器进行写操作,从服务器进行读操作。 4.环境说明【使用docker启动两个】 名称 Ip Port M1 192.168.149.128 3307 M1S1 192.168.149.128 3308 5.安装【阿里云需要放掉端口3307,3308,本机关闭防火墙即可】 docker run --name M1 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 docker run --name M1S1 -p 3308

mysql 5.7.25 解压版安装-整理

跟風遠走 提交于 2020-04-06 06:53:06
下载 mysql 的 解压版安装文件mysql-5.7.25-winx64.zip D:\mysql\master D:\mysql\salve 分别新建 data 和 binlog 目录,以及配置文件 my.ini master 配置文件 [mysqld] # 设置3306端口 port=3306 # innodb_force_recovery = 0 # 设置mysql的安装目录 basedir=D:\\mysql\\master # 设置mysql数据库的数据的存放目录 datadir=D:\\mysql\\master\\data # 允许最大连接数 max_connections=1000 # 允许连接失败的次数。 max_connect_errors=10 # 服务端使用的字符集默认为utf8mb4 character-set-server=utf8mb4 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # 默认使用“mysql_native_password”插件认证 #mysql_native_password #default_authentication_plugin=mysql_native_password #满查询日志 slow_query_log = ON slow_query_log_file = D:\

CentOS-7.5 搭建 MySQL 主从复制

生来就可爱ヽ(ⅴ<●) 提交于 2020-04-06 00:12:50
一、实验环境 两台同样配置的CentOS-7.5虚拟机; 两台虚机的防火墙+selinux均关闭; 两台虚机均可以上外网; master:CentOS-1(192.168.218.128) slave: CentOS-2 (192.168.218.136) 二、搭建主从复制 1)两台服务器同时安装MySQL服务 说明:因为本人之前已经写过“CentOS-7.5 安装 社区版 MySQL-5.7”这样的博文,所以在此就不在做重复性动作了;两台虚拟机安装MySQL服务的操作是一摸一样的,直接复制粘贴即可 博文链接为: https://blog.51cto.com/14783377/2485030 2)修改两台MySQL的配置文件 master端如下: slave端如下: 切记:修改完配置文件以后,都要重启MySQL服务使配置生效 3)mysql主服务器初始化以后的第一次全备 [root@CentOS-1 ~]# [root@CentOS-1 ~]# mysqldump -uroot -p'Mysql.2020' --all-databases --single-transaction > /tmp/mysql_all.sql #数据库第一次全量备份 mysqldump: [Warning] Using a password on the command line interface

CentOS-7.5 安装 社区版 MySQL-5.7

时光总嘲笑我的痴心妄想 提交于 2020-04-05 23:50:21
1、实验环境 服务器类型:VMware虚拟机 服务器操作系统:CentOS-7.5 服务器名称:CentOS-1 服务器IP:192.168.218.128 防火墙+selinux均已关闭 网络连通状况:服务器可以上外网 2、MySQL-5.7 安装源的下载 1)先卸载系统自带的mariadb [root@CentOS-1 ~]# [root@CentOS-1 ~]# rpm -qa mariadb mariadb-libs-5.5.56-2.el7.x86_64 [root@CentOS-1 ~]# [root@CentOS-1 ~]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64 [root@CentOS-1 ~]# [root@CentOS-1 ~]# rpm -qa mariadb [root@CentOS-1 ~]# 2)下载并安装mysql-5.7的安装源 yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm #安装mysql-5.7的安装源 [root@CentOS-1 ~]# ll /etc/yum.repos.d/ | grep 'mysql-community*' [root@CentOS-1

删库了一定要跑路吗?爱情 36 技之记忆重生!

笑着哭i 提交于 2020-04-04 09:51:11
今天一位跨界老码农不知咋回事,兴奋过了头,一不小心把数据库给删掉啦,然后问我咋恢复,然后我告诉他基于 binlog 可以恢复,谁成想没有开启 binlog,最后只能躲在角落里伤心。 爱情 36 技系列,好久没更新啦,真是苦了追逐爱情系列的那些朋友们。 好了,请忘记上面的一切,因为我们的爱情故事系列又要更新啦。 自从 Java 那小子喜获 Python 菇凉的芳心之后,两人就迈入了柴米油盐酱醋茶的生活,但是锅碗瓢盆难免磕磕碰碰, 生活中吵吵闹闹甚是正常 。 不过每次小吵小闹,Python 菇凉都会忍不住想删除存储在 MySQL 上的旅途记忆(不是想删库,就是想跑路)。但是老话说的好:天上月亮圆圆的,小两口吵架总是闹着玩的,况且小两口没有隔夜的仇,所以每次花好月圆之时,Java 那小子总会凭自己精湛的技艺把 Python 菇凉放在 MySQL 上的记忆给恢复如初。 另外 Java 那小子为了帮助其他家庭能够快速重建美好记忆,考虑到家庭稳固,特意把秘诀分享给大家,希望大家拿去使用,估计会屡试不爽。 秘诀一: 记录日志,让你有迹可查 第一步:确认 binlog 日志是否处于开启状态 ? show variables like 'log_%'; 第二步:开启 MySQL binlog 日志 首先找到 my.cnf 文件。 mysql --help | grep 'Default

30.6. MySQL并发控制,加锁和事务,隔离级别,日志等

点点圈 提交于 2020-04-02 12:12:18
并发控制 锁粒度: 表级锁 行级锁 锁: 读锁:共享锁,只读不可写(包括 自己当前用户 和当前事务) ,多个读互不阻塞 写锁:独占锁,排它锁,写锁会阻塞其它事务(不包括当前事务)的读和它锁 实现 存储引擎:自行实现其锁策略和锁粒度 服务器级:实现了锁,表级锁,用户可显式请求 分类: 隐式锁:由存储引擎自动施加锁 显式锁:用户手动请求 锁策略:在锁粒度及数据安全性寻求的平衡机制 显式使用锁 LOCK TABLES 加锁 lock tables tbl_name [[AS] alias] lock_type [, tbl_name [[AS] alias] lock_type] ... lock_type: READ ,WRITE UNLOCK TABLES 解锁 FLUSH TABLES [tb_name[,...]] [WITH READ LOCK] 关闭所有正在打开的表,同时清除掉查询缓存以及准备好的语句缓存, 如果加上with read lock 选项的话,它代表关闭所有正在打开的表并加上全局锁(不清除缓存了), 通常在备份前加全局读锁 SELECT clause [FOR UPDATE | LOCK IN SHARE MODE] 查询时加写或读锁 注意点1(加锁): 注意,读锁加到表上之后,此表将只能读,不能进行其他任何操作。

mysql基于GTID搭建主从复制

亡梦爱人 提交于 2020-04-01 14:09:30
gtid的含义 Global Transaction Identifier,全局事务标识 阿里云的rds目前已经使用gtid 基于gtid的主从复制原理 每个mysql数据库上都有一个唯一uuid 每个事务生成一个id gtid由上面两者组合: uuid+事务id 相对使用binlog+位置的方法来说 gtid让配置主从更加方便 从提升为主时比较方便 主从库的配置一样,实践中的版本5.6.41 gtid_mode=on enforce_gtid_consistency=on log-slave-updates=1 log-bin=master-bin log-bin-index = master-bin.index relay-log = relay-log relay-log-index = relay-log.index binlog_format=row 查看数据库的uuid 在数据目录的auto.cnf 在mysql里面使用命令查看show global variables like 'server_uuid' 主库给从库复制权限 grant replication slave on . to 'replication'@'192.168.237.129' identified by 'shijiange'; flush privileges; 从库使用命令进行复制