mysql主从配置

python后端面试第三部分:数据储存与缓存相关--长期维护

感情迁移 提交于 2020-01-22 15:34:57
################## 数据储存与缓存相关 ####################### mysql数据库, redis数据库, 9. MySQL的索引一般是怎么实现的? B-Tree(一般是B+Tree)和Hash,然后再简单介绍一下。 存储 存储可能包含rdbms,nosql以及缓存等,我以MySQL,redis举例。 mysql相关 mysql 是流行的RDBMS 关系型数据库 1.谈谈mysql字符集和排序规则? 2.var char与char的区别是什么?大小限制?utf8字符集下varchar最多能存多少个字符 char的长度是不可变的,而varchar的长度是可变的,也就是说,定义一个char[10]和varchar[10],如果存进去的是‘csdn’,那么char所占的长度依然为10, 除了字符‘csdn’外,后面跟六个空格,而varchar就立马把长度变为4了,取数据的时候,char类型的要用trim()去掉多余的空格,而varchar是不需要的。 尽管如此,char的存取数度还是要比varchar要快得多,因为其长度固定,方便程序的存储与查找;但是char也为此付出的是空间的代价,因为其长度固定,所以难免会有多余的空格占位符占据空间,可谓是以空间换取时间效率,而varchar是以空间效率为首位的。 再者,char的存储方式是,对英文字符

Mysql-5.7 rpm安装(linux环境)

我的未来我决定 提交于 2020-01-22 09:31:45
本章节阐述为在指定版本环境下示例安装,其它环境可根据实际情况参考安装 一. 下载mysql 软件 版本 centos环境 下载地址 提取码 mysql 5.7.19.el7.x86_64 el7 百度云下载 6s86 mysql 5.7.20.el6.x86_64 el6 百度云下载 de6m mysql 官网定制下载 官网定制下载 官网下载 – 官网下载较慢,上面第一二个可从百度云快速提取 二. 环境准备 使用Centos7环境 使用 5.7.19.el7.x86_64 mysql包 三. 卸载旧版本 检查是否存在旧mysql rpm - qa | grep - i mysql 依次卸载 rpm - e –nodeps 包名 #如果提示错误,尝试用下列命令执行 rpm - ev 包名 -- nodeps rpm - e -- noscripts 包名 查找之前老版本mysql的目录、并且删除老版本mysql的文件和库 # 查询 find / - name mysql # 显示下列结果 / var / lib / mysql / var / lib / mysql / mysql / usr / lib64 / mysql # 依次删除 rm - rf / var / lib / mysql rm - rf / var / lib / mysql / mysql rm - rf /

MySQL8 主从复制配置

淺唱寂寞╮ 提交于 2020-01-21 15:54:05
对于主从复制的原理我这里就不解释了,CSDN其他文章都有介绍,我这边就介绍同步的步骤。 话不多说,直接开干。 首先,我们还是要保证数据库版本的一致性。 1、主节(Master)点配置 首先找到Master的配置文件(my.ini文件) 找到后加入或者配置一下参数: log-bin=mysql-bin server-id=1 2、从节点(Slave)配置 首先找到Slave的配置文件(my.ini文件) 找到后加入或者配置一下参数: server-id=2 3、授权操作的用户 注意root是主服务器的用户,而 192.168.0.2 指的是从数据库的服务器IP,意思就是让从服务器有访问的权限 mysql> CREATE USER 'root'@'192.168.0.1' IDENTIFIED WITH mysql_native_password BY 'admin'; mysql> GRANT REPLICATION SLAVE ON *.* TO 'root'@'192.168.0.2'; 我这边没有新建用户,权当测试用的,你们可以新建一个专门操作同步的用户。 刷新授权表信息 mysql> flush privileges; 4、获取主服务器当前binary log文件名和位置 5、在从(Slave)节点上设置主节点参数 mysql> CHANGE MASTER TO MASTER

mysql配置主主脚本

好久不见. 提交于 2020-01-21 15:32:42
脚本说明: 1.可用于建立mysql数据库主主(主从) 2.可以用于快速恢复mysql数据库主主(主从) 3.可用于查看mysql数据库同步状态 4.可用于mysql数据库用户查看 先决条件: 1.mysql数据库已经安装好,root账号开启远程登陆权限或有其它有远程管理权限的账号 2.两台mysql已经开启日志(log-bin=mysql-bin),且server-id不一致(分别为server-id=1,server-id=2) 3.脚本可以在任意一台安装有mysql客户端的电脑执行(可以连接到主备mysql数据库) 4.两台mysql数据库完全一致,包括版本和存储的数据 脚本: #!/bin/bash #mysql管理用户名及密码 user=root passwd=123456 #mysql用于同步的用户名及密码 slaveUser=slave slavePasswd=123456 #创建slave用户用于同步 slave_create() { mysql -u$user -p$passwd -h$1 <<EOF grant replication slave on *.* to "$slaveUser"@'%' identified by "$passwd"; flush privileges; EOF } #查看mysql中的用户 user_status() {

MySQL性能优化(1)

我怕爱的太早我们不能终老 提交于 2020-01-21 01:25:23
MySQL性能优化(1) MySQL单实例与多实例 MySQL多实例的优缺点 MySQL多实例的实现场景 JSON类型 JSON_EXTRACT()函数 JSON_OBJECT()函数 JSON_INSERT()函数 JSON_MERGE()函数 MySQL单实例与多实例 实例:MySQL数据库由后台线程及一个共享内存区组成,数据库实例才是真正用于操作数据库文件的程序集,是一个动态概念。 多实例就是在一台服务器上同时开启多个不同的数据库服务端口(例如3306、3307),同时运行多个数据库进程就是多实例。 MySQL多实例的优缺点 优点 :充分利用服务器资源。 缺点 :资源抢占问题。 MySQL多实例的实现场景 中小型公司的选择:公司业务访问量不大,希望不同的业务使用不同的数据库服务而互相不受影响,建于资金不足,可食用多实例,比如可以通过3台服务器部署9-15个实例,交叉做主从复制、数据备份及读写分离,这样也能达到多个服务器只装1个数据库的效果。 并发访问不是很大的业务:当业务访问量不大,服务器资源基本都是空闲的,这时很适合多实例应用,如果对sql语句优化较好,多实例是一个很值得使用技术,即使并发打,合理分配资源以及搭配号服务,问题也不大。 门户网站应用:门户网站通常会使用多实例,因为配置硬件好的服务器,可以节省IDC机柜空间,同时运行多个实例可以减少资源浪费情况

MySQL之auto-increment相关处理

泪湿孤枕 提交于 2020-01-20 20:53:51
说明 本文主要用于阅读后记录,参考翻译MySQL 5.7说明文档章节,后续讨论中所使用的的数据库存储引擎为InnoDB。 目录 1.概述 2.术语 3.锁模式 4.AUTO_INCREMENT的使用说明 5.AUTO_INCREMENT 计数器初始化 6.参数查询与设置 1.概述 在数据库表的列中存在AUTO_INCREMENT的列时,配合锁机制可以极大地改进数据库的并发性和SQL的执行性能。 2.术语 “INSERT-like”语句 :任何在数据库表中产生了一行新数据的SQL语句都称为 “类插入” 语句。例如:INSERT, INSERT ... SELECT, REPLACE,REPLACE ... SELECT, and LOAD DATA等。它们可以分为以下三大类: a、Simple inserts:简单插入语句,它描述的是数据进行插入之前就 可以 判断出会有多少条记录插入到表中的情况。 b、Bulk inserts:批量插入语句,它描述的是数据进行插入之前 不可以 判断出会有多少条记录插入到表中的情况。这些批量插入的数据应该是都可以插进入表中的(自己添加)。 c、Mixed-mode inserts:混合模式插入语句,它描述的有两种情况: 情况1:在“Simple inserts”情况下时,如果待插入的行中存在部分行没有指定该auto-increment的值,或者为空

linux , mysql互为主从复制

空扰寡人 提交于 2020-01-20 01:35:51
Master-1:192.169.7.242 Master-2:192.169.0.197 MySQL版本:mysql-5.7 1.mysql配置文件修改及说明 分别修改两个节点的mysql,此处修改配置文件为:/etc/my.cnf 修改Master-1如下: # For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html # *** DO NOT EDIT THIS FILE. It's a template which will be copied to the # *** default location during install, and will be replaced if you # *** upgrade to a newer version of MySQL. [mysqld] # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%

【干货】Mysql的\"事件探查器\"-之Mysql-Proxy代理实战一(安装部署与实战sql拦截与性能监控)

有些话、适合烂在心里 提交于 2020-01-19 17:29:40
1:资料参考 https://blog.csdn.net/coldljy/article/details/3168906 https://www.cnblogs.com/jwentest/p/8552075.html https://www.cnblogs.com/ExMan/p/10396298.html 一:原理 Mysql-Proxy是一个处于你的client端和Mysql Server端之间的一个简单程序,它可以监测、分析和改变他们的通信。它使用灵活没有限制,常见的用途包括:负载平衡,故障、查询分析,查询过滤和修改等等。 Mysql -Proxy就是这么一个中间层代理,简单的说,Mysql-Proxy就是一个连接池,负责将前台应用的请求转发给后台数据库,并且通过使用lua脚本,可以实现复杂的连接控制和过滤,从而实现读写分离和负载平衡。对于应用来说,MySQL Proxy是完全透明的,应用则只需要连接到MySQL Proxy的监听端口即可。当然,这样proxy机器可能成为单点失效,但完全可以使用多个proxy机器做为 冗余 ,在 应用服务器 的连接池配置中配置到多个proxy的连接参数即可。 mysql-proxy最基本的用法,就是作为一个请求拦截,请求中转的中间层: 根本上,mysql-proxy是一个官方提供的框架,具备良好的扩展性,可以用来完成: sql拦截与修改

docker部署mysql一主一从

♀尐吖头ヾ 提交于 2020-01-18 13:32:15
1、首先拉取mysql:5.7镜像 docker pull mysql:5.7 2、拷贝容器mysql配置文件,并配置,以便挂载 docker run --name mysql -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123 mysql:5.7 docker cp mysql1:/etc/mysql/mysql.conf.d /mysql/mysql1 #拷贝容器mysql配置文件,到宿主机上,方便修改 cp -a /mysql/mysql1 /mysql/mysql2 #mysql1主配置,mysql2从配置 docker rm -f mysql #删除容器 echo 'server-id=1 log-bin=mysql-bin'>>/mysql/mysql1 echo 'server-id = 2 relay-log = relay-log'>>/mysql/mysql2 3、运行两个mysql容器 docker run --name mysql1 -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD = 123 -v /mysql/mysql1:/etc/mysql/mysql.conf.d mysql:5.7 docker run --name mysql2 -d -p 3307:3306 -e MYSQL

MySQL 核心技术_存储引擎

淺唱寂寞╮ 提交于 2020-01-18 04:58:10
存储引擎 1. 存储引擎介绍 相当于Linux 文件系统.组织存储表数据. 2. 存储引擎的种类 show engines; InnoDB MyISAM CSV Memory 其他的存储引擎: MariaDB : InnoDB,TokuDB ,Myrocks percona : xtradb ,TokuDB ,Myrocks TokuDB ,Myrocks : 比较适合于在写入操作较多的场景,数据量级大的场景. 原因是: 插入性能很高, 压缩比较高. 监控类的业务. 学员案例: 环境: zabbix 3.x mariaDB 5.5 centos 7.3 现象 : zabbix卡的要死 , 每隔3-4个月,都要重新搭建一遍zabbix,存储空间经常爆满. 问题 :zabbix 版本 数据库版本 —> 5.5 ----> ibdata1 ----> 5.7 ,8.0 zabbix数据库500G,存在一个文件里 优化建议: 1.数据库版本升级到Mairia 10.x版本,zabbix升级更高版本 2.存储引擎改为tokudb 3.监控数据按月份进行切割(二次开发:zabbix 数据保留机制功能重写,数据库分表) 4.关闭binlog和双1 等安全参数需要关闭 5.参数调整… 优化结果: 监控状态良好 select concat(“alter table zabbix.”,table