MySQL 多实例删库脚本】的更多相关文章

DB版本:5.5.14 OS:CentOS 6.3 在测试环境中,在一台服务器上创建多个实例,在每个实例中一个一个删库比较麻烦,因此用下面脚本,可以直接删除所有库,除了系统库以外: #!/bin/bash mysql=/export/servers/mysql/bin/mysql for i in {3361..3362}dofor j in $($mysql -uroot -p123456 -S /export/data/mysql/tmp/mysql$i.sock -e "show data…
我一直在想,地球上这么多程序员,应该有很多人在团队做项目的时候,出过很大的错误,比如说不小心删了库,活动福利字段多写了个零导致全服务器玩家领到数倍奖励,听了沙雕群友的话执行rm -rf命令. 记得有一本专门调侃的书,叫<Mysql从入门到删库跑路>,各种能人异士. 所以掌握如何在数据库被删之后进行恢复,是很重要的. MySQL删除数据有很多种方式,你可以删除一条数据,可以删除一张表,也可以删除一整个库,还有就是你在rm -rf删除磁盘的时候直接把MySQL相关的所有文件都给删了. 删除行 如果…
搭建主从复制 主机: [mysqld] 下增加 vim /etc/my.cnf ## 设置 server_id,一般设置为 IP server_id=8 # # 复制过滤:需要备份的数据库,输出 binlog binlog-do-db=testdb #复制过滤:不需要备份的数据库,不输出(mysql 库一般不同步) binlog-ignore-db=mysql # 开启二进制日志,以备 Slave 作为其它 Slave 的 Master 时使用 log-bin=master-log-1 binl…
一.单实例多库: 一个mysql实例,创建多个数据目录. 规划: 实例路径:/usr/local/mysql 数据目录路径: (1)/usr/local/mysql/data (2)/usr/local/mysql/data2 步骤: 安装mysql. 配置my.cnf文件. 初始化各个数据库. 用mysqld_multi启动. 1.安装mysql. 平常安装. 2.my.cnf文件: 修改数据目录,端口号,日志路径等. 添加模块: [mysqld_multi] mysqld = /usr/lo…
一 什么是存储引擎 mysql中建立的库===>文件夹 库中建立的表===>文件 现实生活中我们用来存储数据的文件应该有不同的类型:比如存文本用txt类型,存表格用excel,存图片用png等 数据库中的表也应该有不同的类型,表的类型不同,会对应mysql不同的存取机制,表类型又称为存储引擎. 存储引擎说白了就是如何存储数据.如何为存储的数据建立索引和如何更新.查询数据等技术的实现方法.因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型) 在O…
1 需求 在同一台服务器同一MySQL实例中的source库和target库都存在student表.如果source库中该表发生增删改操作时,也需要体现到target库的student表中: 2 解决方案 2.1 方案一:使用Shell脚本实现 由于自己缺少使用Shell编程的经验,此路暂时不通: shell脚本实现Mysql主从数据库 2.2 方案二:DataX 官方介绍: DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL.Oracle.SqlServer.…
一 IDE工具介绍 生产环境还是推荐使用mysql命令行,但为了方便测试,可以使用IDE工具 下载链接:https://pan.baidu.com/s/1bpo5mqj 掌握: #1. 测试+链接数据库 #2. 新建库 #3. 新建表,新增字段+类型+约束 #4. 设计表:外键 #5. 新建查询 #6. 备份库/表 #注意: 批量加注释:ctrl+?键 批量去注释:ctrl+shift+?键 二 MySQL数据备份 #1. 物理备份: 直接复制数据库文件,适用于大型数据库环境.但不能恢复到异构系…
如何对比两个MySQL实例的参数情况,生产中常会有这样的需求,最近写了个python脚本,可基本实现该需求. 脚本 #!/usr/bin/python import MySQLdb,sys def fetch_variables(ip,user,passwd,port,variable=False): # Open database connection try: db = MySQLdb.connect(host=ip, user=user,passwd=passwd,port=port) e…
一 数据库是什么 之前所学,数据要永久保存,比如用户注册的用户信息,都是保存于文件中,而文件只能存在于某一台机器上. 如果我们不考虑从文件中读取数据的效率问题,并且假设我们的程序所有的组件都运行在一台机器上,那么用文件存取数据,并没有问题 但需要考虑的问题是:程序的执行效率依赖于承载它的硬件,而一台机器机器的性能总归是有限的,受限于目前的硬件水平,垂直扩展是有极限的.于是我们只能通过水平扩展来增强我们系统的整体性能,这就需要我们将程序的各个组件分布于多台机器去执行. 需要注意的是,虽然我们将程序…
表介绍 表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段 id,name,qq,age称为字段,其余的,一行内容称为一条记录 内容: 1 创建表 2 查看表结构 3 数据类型 4 表完整性约束 5 修改表 6 复制表 7 删除表 总体基本操作 #1 操作文件夹(库) 增 create database db1 charset utf8; 查 show databases; show create database db1; 改 alter d…
一 知识储备 MySQL数据库基本操作知识储备 数据库服务器:一台计算机(对内存要求比较高) 数据库管理系统:如mysql,是一个软件 数据库:oldboy_stu,相当于文件夹 表:student,scholl,class_list,相当于一个具体的文件 记录:1 刘海龙 324245234 22,相当于文件中的一行内容 二 初识SQL语言 SQL(Structured Query Language 即结构化查询语言)SQL语言主要用于存取数据.查询数据.更新数据和管理关系数据库系统,SQL语…
一 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己的宽度,但宽度是可选的 详细参考: http://www.runoob.com/mysql/mysql-data-types.html http://dev.mysql.com/doc/refman/5.7/en/data-type-overview.html mysql数据类型概览 1 数字(默认都是有符号,宽度指的是显示宽度,与存储无关) tinyint int bigint:个数,年龄,id,qq号,手…
一 介绍 约束条件与数据类型的宽度一样,都是可选参数 作用:用于保证数据的完整性和一致性主要分为: PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录 FOREIGN KEY (FK) 标识该字段为该表的外键 NOT NULL 标识该字段不能为空 UNIQUE KEY (UK) 标识该字段的值是唯一的 AUTO_INCREMENT 标识该字段的值自动增长(整数类型,而且为主键) DEFAULT 为该字段设置默认值 UNSIGNED 无符号 ZEROFILL 使用0填充…
mysql:视图.触发器.事务.存储过程.函数 一.视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可,但视图有明显地效率问题,并且视图是存放在数据库中的,如果我们程序中使用的sql过分依赖数据库中的视图,即强耦合,那就意味着扩展sql极为不便,因…
版本:5.5.14 OS: ConetOS 6.3 1.创建recover.sh [root@yoon  export]# vi  recover.sh #!/bin/bash bakdir=/export/datamysql=/export/servers/mysql/bin/mysqluser=rootpasswd=123456 for port in {3361..3362}do ($mysql -u$user -p$passwd -S /export/data/mysql/tmp/mys…
一 介绍 本节内容: 查询语法 关键字的执行优先级 简单查询 单条件查询:WHERE 分组查询:GROUP BY HAVING 查询排序:ORDER BY 限制查询的记录数:LIMIT 使用聚合函数查询 使用正则表达式查询 company.employee 员工id id int 姓名 emp_name varchar 性别 sex enum 年龄 age int 入职日期 hire_date date 岗位 post varchar 职位描述 post_comment varchar 薪水 s…
一 介绍 为何要有索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句的优化显然是重中之重.说起加速查询,就不得不提到索引了. 什么是索引? 索引在MySQL中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构.索引对于良好的性能非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要.索引优化应该是对查询性能优化最有效的手段了.索引能够轻易将查询性能…
一 介绍 本节主题 多表连接查询 复合条件连接查询 子查询 准备表 company.employeecompany.department #建表 create table department( id int, name varchar(20) ); create table employee( id int primary key auto_increment, name varchar(20), sex enum('male','female') not null default 'male…
我们前面已经做了MySQL数据库的介绍以及为什么选择MySQL数据库,最后介绍了MySQL数据库在Linux系统下的多种安装方式,以及讲解了MySQL的二进制方式单实例安装.基础优化等,下面给大家讲解更为实用的MySQL多实例安装.主从复制集群等重要应用实践. 1.1什么是MySQL多实例?   简单的说,就是在一台机器上开启多个不同的服务端口(如:3306,3307),运行多个MySQL服务进程,这些服务进程通过不同的socket监听不同的服务端口提供各自的服务.  这些MySQL多实例共用一…
一.MySQL多实例介绍            一台服务器上开启多个不同的服务端口(3306,3307,3308),运行多个MySQL服务进程,共用一套MySQL安装程序,多实例MySQL在逻辑上看是各自独立的 1.多实例主从复制原理图 2.优点 ①有效利用服务器资源②节约服务器资源③资源互相抢占问题,其中一个实例并发很高或者慢查询,其它实例也受影响 3.应用场景 ①公司资金紧缺②并发访问不是特别大的业务③门户网站应用MySQL多实例场景,一般是从库 4.MySQL多实例常见配置方案 ①多配置文…
Mariadb/MySQL多实例实战 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.安装MySQL程序 无论你喜欢哪种方式安装均可,关于源码安装,yum安装或者二进制安装,可以参考官网文档,也可以参考网络上的博客之类的,推荐参考我之前写的笔记. 博主推荐阅读: https://www.cnblogs.com/yinzhengjie/p/11733897.html 二.基于已经安装的MySQL程序启动三个实例(即三个实例公用同一套MySQL程序) 1>.创建多实例各自的数据…
[root@DB-S ~]# ll /usr/local/|grep mysql lrwxrwxrwx. 1 root root 21 Jun 14 01:52 mysql -> /alidata/server/mysql #这是脚本免编译的安装的环境(比较复杂) [root@DB-S /]# tree /data/ /data/ ├── 3307 │   └── data └── 3308 └── data 4 directories, 0 files [root@DB-S 3307]# fi…
DB: 5.5.14 OS:CentOS 6.3 在MySQL多实例中,一个一个启动灰常麻烦,因此写个简单的启动和关闭脚本 启动脚本:start.sh #!/bin/bash for port in {3390..3396} do (/export/servers/mysql/bin/mysqld_safe --defaults-file=/export/servers/mysql/etc/my$port.cnf  ) & done 关闭脚本:stop.sh #!/bin/bash for po…
1. 引言 使用数据库的时候,我们每个操作都十分小心,尤其是不能直接在数据库上执行 update.delete 等操作,否则万一忘记加全 where 条件,可能就会造成无法挽回的结果. 有一句十分流行的调侃 – "从删库到跑路"就很形象的说明了误操作后的结果,那么如果你真的不小心执行了删库操作,真的就无法挽回了吗? 当然不会了,通常对于线上数据库,我们都会定时冷备,dump 导出数据库的全量备份,并且保留一段时间内的所有修改日志,进而实现在必要时回滚到这段时间内的任何一秒. 这里提到的…
1.背景 前段时间,由于运维同事的一次误操作,清空了内网核心数据库,导致了公司内部管理系统长时间不可用,大量知识库内容由于没有备份险些丢失. 结合这两天微盟的删库跑路事件,我们可以看到,数据库的备份与恢复显得尤为重要. 本文将对此次内网数据恢复过程做一些整理,介绍删库后的抢救方案. 同时,引发对数据库稳定性的思考. 2.数据抢修 这份内网数据事先没有特意备份,所以一开始认为需要从磁盘恢复数据了.所以紧急联系了数据恢复公司,希望过来恢复磁盘数据. 这里需要注意,数据恢复公司建议马上关机,避免磁盘数…
导读 我一直都主张,技多不压身(没有学不会的技术,只有不学习的人),多学一项技能,未来就少求人一次.网上经常听到xxx删库跑路,万一真的遇到了,相信通过今天的学习,也能将数据再恢复回来~~~ 当然啦,备份数据/还原数据也是挺重要的,可以看我另一篇:点我直达 如果感觉这样还不安全,可以考虑授予用户权限:点我直达 介绍 记录着mysql数据库中的一些增删改操作(没有查询) 功能 数据复制(主从复制) 数据恢复 注意事项 开启二进制日志会有性能的消耗!!! 查看二进制日志是否开启 查看是否开启:sho…
脚本原理: 启动MySQL动作: mysqld_safe来执行启动 停止MySQL动作: 使用mysqladmin来执行停止动作 重启的MySQL动作:    原理就是先停止,然后再启动 但是要注意:简单的sleep来等待停止和启动过程极可能出现在短时间内重复运行重启,mysqld_safe报错提示已经启动了一个实例的问题 这里可以参考MySQL提供的默认启动脚本mysqld.service中的wait_for_pid()这个函数. 以下是启动脚本,效果如图: 脚本: 1 #!/bin/sh 2…
教你如何6秒钟往MySQL插入100万条数据!然后删库跑路! 由于我用的mysql 8版本,所以增加了Timezone,然后就可以了 前提是要自己建好库和表. 数据库test, 表user, 三个字段: u_id.u_name.u_pwd,然后主键自增 conn = DriverManager.getConnection("jdbc:mysql:///test?" + "&rewriteBatchedStatements=true&serverTimezone…
前言:MySQL是一个数据库管理系统,也是一个关系数据库.它是由Oracle支持的开源软件,MySQL可以在各种平台上运行UNIX,Linux,Windows等.可以将其安装在服务器甚至桌面系统上. 此外,MySQL是可靠,可扩展和快速的,如果您开发网站或Web应用程序,MySQL是一个不错的选择(强烈建议使用). 建库: 语法: CREATE DATABASE IF NOT EXISTS '指定库名' DEFAULT CHARSET UTF8; 例: CREATE DATABASE IF NO…
上周完成了一个性能测试环境搭建,有富余时间的同时研究了一个一键导库的脚本,一周的开始先马住!!! 一.思路 准备:54.158服务器上分别已经装好了MYSQL数据库 目的:把部分库从54导出并导入到158 步骤: 54上导出数据 复制文件到158 158上执行导库脚本 二.编写脚本 根据思路步骤,完成对应脚本的编写 1.54上导出部分数据库 [exp54_158.sh] #! /bin/bash echo "开始导出gd_base.gd_dbwizard.dbcenter库" mysq…