mysql数据库

MySQL自动化(全量+增量)备份脚本

空扰寡人 提交于 2020-02-01 03:35:49
文章转自:http://www.it-hack.cn/forum.php?mod=viewthread&tid=220&extra=page%3D1 一、MySQL的日常备份方案: 全备+增量备份: 1、周日凌晨三点进行全备; 2、周一到周日增量备份。 不是往常的周日全备份,周一到周六增量备份,这样如果周日数据库在完全备份前出问题,恢复完成后,会少周日一天的数据量,所以七天增量备份,周日全备可以更好的保全数据。 这是备份周期演示表: Sun 3:00------Mon 3:00-----------------Tue 3:00----------Wed 3:00----------Thu 3:00----------Fri 3:00----------Sat 3:00----------Sun 3:00 (flush)Sun full---(flush)Sun->Mon binlog---(flush)Mon->Tue---(flush)Tue->Wed---(flush)Wed->Thu---(flush)Thu->Fri---(flush)Fri->Sat---(flush)Sun full---(flush)Sun->Mon binlog---(flush)Mon->Tue---(flush)Tue->Wed---(flush)Wed->Thu---(flush)Thu-

Linux 使用crontab定时备份Mysql数据库

走远了吗. 提交于 2020-02-01 03:24:31
项目中数据库的数据是至关重要的!在实际项目中,遇到有客户机房断电导致数据库数据丢失的问题,又因为备份容灾不及时,导致部分数据恢复不了,而刚好这部分丢失的数据对于客户来说又是至关重要的,那么怎么办呢?盲羊补牢,为时晚矣!所以,对应日常数据库的自动备份千万不能马虎!首先想到的是,使用Linux的自动定时任务命令crontab对数据库进行定时备份! 1、 在/home/test创建新脚本文件test_database_backup.sh: [root@win7 /]# cd home/test [root@win7 test]# touch test_database_backup.sh [root@win7 test]# chmod 770 test_database_backup.sh 2、使用VI工具编写test_database_backup.sh备份数据库脚本内容: # Name:test_database_backup.sh # This is a ShellScript For Auto DB Backup and Delete old Backup #备份地址 backupdir=/www/test_backup #备份文件后缀时间 time=_` date +%Y_%m_%d_%H_%M_%S ` #需要备份的数据库名称 db_name=test #mysql 用户名

python的mysql --练习题

梦想与她 提交于 2020-02-01 03:08:36
题目 随机生成100个人名和对应的密码; 人名由三个汉字或者2个汉字组成, 姓 = [许, 张, 赵, 钱, 孙, 李, 朱, 杨] 名 = [彬, 群, 宁, 盼, 龙, 欢, 丹] 密码统一6位, 由字母和字符组成; 存储上述用户信息到数据库中, 保存在数据库users中的userinfo表中; 编程 import random from random import choice as choice import string import pymysql # 生成指定位数密码 , 前 n - 1 位为数字 , 最后一位为密码 ; def create_passwd ( count = 6 ) : nums = random . sample ( string . digits , count - 1 ) letters = random . sample ( string . ascii_letters , 1 ) return "" . join ( nums + letters ) a = create_passwd ( ) print ( a , type ( a ) ) # 生成随机的姓名 , 有两个或三个汉字组成 ; def create_name ( ) : first = [ '许' , '张' , '赵' , '钱' , '孙' , '李' , '朱' ,

搭建mysql主从复制

落花浮王杯 提交于 2020-02-01 01:54:51
1、准备两台机器 两台linux虚拟机,安装好mysql数据库。主从复制原理:从机通过读取主机的binlog日志写入自身的中继日志来实现同步。 ps :不建议安装好一台mysql后,复制到另一台,会出现mysql的server-uuid=06905c59-2d3b-11ea-8f21-000c29942721一致导致主从复制失败。 vim data / auto . cnf 2、主机配置 my.cnf配置 port=3306 default - time_zone= '+8:00' sql_mode=NO_ENGINE_SUBSTITUTION , STRICT_TRANS_TABLES basedir= / usr / local / mysql - 5 . 6 . 46 datadir= / usr / local / mysql - 5 . 6 . 46 / data log - error= / usr / local / mysql - 5 . 6 . 46 / log / error . log server - id=1 #binlog日志格式,mysql默认采用statement,建议使用mixed binlog_format=statement ##binlog日志文件 log - bin= / usr / local / mysql - 5 . 6 . 46 /

树莓派安装mysql

浪尽此生 提交于 2020-02-01 00:13:58
步骤 安装 mysql server $ sudo apt-get update $ sudo apt-get install mysql-server 安装完毕以后,root密码默认为空。即任意密码都可以登录。 $ sudo mysql -u root $ 回车登录数据库 # 出现下面提示,表示成功 Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 13 Server version: 10.1.37-MariaDB-0+deb9u1 Raspbian 9.0 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> # MariaDB是一个完全兼容mysql的数据库,具体可以自行百度。 设置root密码 MariaDB [(none)]> use mysql; MariaDB [mysql]> update user set plugin='mysql_native_password

golang Mysql -- Tx

浪子不回头ぞ 提交于 2020-02-01 00:11:43
Transaction 事务 事务处理是数据的重要特性。尤其是对于一些支付系统,事务保证性对业务逻辑会有重要影响。golang的mysql驱动也封装好了事务相关的操作。我们已经学习了db的Query和Exec方法处理查询和修改数据库。 tx对象 一般查询使用的是db对象的方法,事务则是使用另外一个对象。sql.Tx对象。使用db的Begin方法可以创建tx对象。tx对象也有数据库交互的Query,Exec和Prepare方法。用法和db的相关用法类似。查询或修改的操作完毕之后,需要调用tx对象的Commit提交或者Rollback方法回滚。 一旦创建了tx对象,事务处理都依赖与tx对象,这个对象会从连接池中取出一个空闲的连接,接下来的sql执行都基于这个连接,直到commit或者rollback调用之后,才会把连接释放到连接池。 在事务处理的时候,不能使用db的查询方法,虽然后者可以获取数据,可是这不属于同一个事务处理,将不会接受commit和rollback的改变,一个简单的事务例子如下: tx, err := db.Begin() tx.Exec(query1) tx.Exec(query2) tx.commit() 在tx中使用db是错误的: tx, err := db.Begin() db.Exec(query1) tx.Exec(query2) tx.commit()

MySQL事务隔离级别详解

坚强是说给别人听的谎言 提交于 2020-01-31 13:03:57
MySQL事务隔离级别详解 博客分类: SQL MySQL 数据结构 SQL SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。 Read Uncommitted(读取未提交内容) 在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少。读取未提交的数据,也被称之为脏读(Dirty Read)。 Read Committed(读取提交内容) 这是大多数数据库系统的默认隔离级别(但不是MySQL默认的)。它满足了隔离的简单定义:一个事务只能看见已经提交事务所做的改变。这种隔离级别 也支持所谓的不可重复读(Nonrepeatable Read),因为同一事务的其他实例在该实例处理其间可能会有新的commit,所以同一select可能返回不同结果。 Repeatable Read(可重读) 这是MySQL的默认事务隔离级别,它确保同一事务的多个实例在并发读取数据时,会看到同样的数据行。不过理论上,这会导致另一个棘手的问题:幻读 (Phantom Read)。简单的说,幻读指当用户读取某一范围的数据行时,另一个事务又在该范围内插入了新行,当用户再读取该范围的数据行时,会发现有新的“幻影” 行

MySQL事务隔离级别详解

家住魔仙堡 提交于 2020-01-31 13:03:16
原文地址: http://xm-king.iteye.com/blog/770721 SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。 Read Uncommitted(读取未提交内容) 在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少。读取未提交的数据,也被称之为脏读(Dirty Read)。 Read Committed(读取提交内容) 这是大多数数据库系统的默认隔离级别(但不是MySQL默认的)。它满足了隔离的简单定义:一个事务只能看见已经提交事务所做的改变。这种隔离级别也支持所谓的不可重复读(Nonrepeatable Read),因为同一事务的其他实例在该实例处理其间可能会有新的commit,所以同一select可能返回不同结果。 Repeatable Read(可重读) 这是MySQL的默认事务隔离级别,它确保同一事务的多个实例在并发读取数据时,会看到同样的数据行。不过理论上,这会导致另一个棘手的问题:幻读(Phantom Read)。简单的说,幻读指当用户读取某一范围的数据行时,另一个事务又在该范围内插入了新行,当用户再读取该范围的数据行时,会发现有新的“幻影”行

MySQL事务隔离级别详解

白昼怎懂夜的黑 提交于 2020-01-31 13:02:34
SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。 Read Uncommitted(读取未提交内容) 在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少。读取未提交的数据,也被称之为脏读(Dirty Read)。 Read Committed(读取提交内容) 这是大多数数据库系统的默认隔离级别(但不是MySQL默认的)。它满足了隔离的简单定义:一个事务只能看见已经提交事务所做的改变。这种隔离级别 也支持所谓的不可重复读(Nonrepeatable Read),因为同一事务的其他实例在该实例处理其间可能会有新的commit,所以同一select可能返回不同结果。 Repeatable Read(可重读) 这是MySQL的默认事务隔离级别,它确保同一事务的多个实例在并发读取数据时,会看到同样的数据行。不过理论上,这会导致另一个棘手的问题:幻读 (Phantom Read)。简单的说,幻读指当用户读取某一范围的数据行时,另一个事务又在该范围内插入了新行,当用户再读取该范围的数据行时,会发现有新的“幻影” 行。InnoDB和Falcon存储引擎通过多版本并发控制(MVCC,Multiversion

MySql之深入分析MySql 的锁

时光毁灭记忆、已成空白 提交于 2020-01-31 11:21:47
文章目录 1.InnoDB 存储引擎的锁 1.1.锁的类型 -八中类型 1.2.锁的基本模式 1.2.1.表锁 1.2.2.行锁 1.2.3.关于行锁和表锁的粒度概述 1.3.锁的类型 1.3.1.Shared Locks (共享锁) ----->行级别的锁 1.3.1.1.概念 1.3.1.2.如何设置共享锁 1.3.1.2.如何释放共享锁 1.3.1.3.案例1-查询加锁后查询 1.3.1.3.案例2-查询加锁后更新 1.3.2.Exclusive Locks(排它锁)又称写锁或者X锁 ----->行级别的锁 1.3.2.1.概念 1.3.2.2.如何设置排它锁 自动加锁 delete/update/insert 手动加锁 FOR UPDATE 1.3.2.3.如何释放排它锁 commit/rollback; 1.3.2.3.案例演示 1.3.3.意向锁 1.3.3.1.概念 1.3.3.1.如何设置意向锁 1.3.3.2.意向锁的意义 1.3.3.3.意向锁使用场景 1.3.3.4.案例演示- 行锁之后进行表锁试验 1.3.3.5.案例演示- 表锁之后进行行锁试验 1.3.3.6.解锁 1.4. 数据准备 SET NAMES utf8mb4 ; SET FOREIGN_KEY_CHECKS = 0 ; -- -- -- -- -- -- -- -- -- -- -- -- -