mysql数据库

Mysql主从复制

£可爱£侵袭症+ 提交于 2020-02-02 04:47:52
1. 复制原理 master将改变记录到二进制日志(binary log),这个记录过程叫二进制日志事件(binary log events)。 slave将master的binary log events拷贝到它的中继日志(relay log)。 slave重做中继日志中的事件,将改变应用到自己的数据库中,Mysql复制是异步且串行化的。 2. 配置(基于mysql 8.x) 2.1 master配置文件修改 [mysqld] # 设置主机Id server-id=1 # 启用二进制日志 log-bin=E:\\Software\\mysql-8.0.19\\data\\logbin 2.2 slave配置文件修改 [mysqld] # 设置从机Id server-id=2 # 启用二进制日志 log-bin=/var/run/mysqld/logbin 2.3 具体操作 主机IP:192.168.1.104 从机IP:192.168.25.103 主节点创建用户并授权 create user 'repl' @' 192.168 .1 .104 ' identified with mysql_native_password by ' 123456 '; grant replication slave on *.* to ' repl '@' 192.168 .1 .104 ' ;

python操作mysql

百般思念 提交于 2020-02-02 04:23:18
数据库的事务机制: 事务机制可以确保数据一致性。 事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。 原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。 一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。 隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。 持久性(durability)。持续性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。 对于支持事务的数据库, 在Python数据库编程中,当游标建立之时,就自动开始了一个隐形的数据库事务。 conn.commit()方法游标的所有更新操作,conn.rollback()方法回滚当前游标的所有操作。每一个方法都开始了一个新的事务。 python连接mysql需要用到MySQLdb这个模块,MySQLdb的常用方法有: cur.fetchone() # 该方法获取下一个查询结果集。结果集是一个对象 cur.fetchall() # 接收全部的返回结果行 例1: 1 # -*-

MySQL高级——索引 (内附索引高频面试题)

三世轮回 提交于 2020-02-01 23:24:27
目录 一、索引介绍以及使用 1.1 什么是索引? 1.2 索引的分类? 1.3 索引的创建、查询、删除 的方式? 二、高频面试题(通过面试题更能了解索引) 2.1 什么是索引? 2.2 MySQL索引是什么样的数据结构? 2.3 MySQL中的常用的存储引擎 MyISAM与InnoDB的区别? 2.4 如何选择存储引擎 MyISAM与InnoDB? 2.5 MyISAM与InnoDB实现BTree索引的方式不同在哪? 2.6 为什么要使用索引?(索引的优点?) 2.7 索引是怎么提高查询速度的? 2.8 既然索引这么多好处,为什么不给表中的每一列都创建索引?(索引的缺点?) 2.9 使用索引有哪些注意事项?(使用索引时,SQL语句怎么优化?) 2.10 什么是最左前缀原则? 2.11 什么是覆盖索引? 一、索引介绍以及使用 1.1 什么是索引? MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。 从官方定义中,我们可以知道索引本质是一种数据结构。 详细一点的解释就是: 数据库除了数据本身之外,数据库还维护着一个满足特定查找算法的数据结构,这些数据结构通过某种方式指向数据。如此一来,就可以在这些数据结构的基础上实现高级查找算法,这种数据结构就是 索引。 简单一点的解释就是: 索引是排好序的可快速查找的数据结构。 形象一点的解释就是:

DVWA-XSS(Stored)

此生再无相见时 提交于 2020-02-01 22:42:26
存储型 XSS 是指应用程序直接将攻击者提交的具有恶意代码存储到后台,在显示数据页面被 访问时恶意脚本在浏览器因 html 注入导致页面执行恶意代码从而被攻击者控制浏览器 Low 直接输入 1、查看服务器端源代码 <?php if( isset( $_POST[ 'btnSign' ] ) ) { // Get input $message = trim( $_POST[ 'mtxMessage' ] ); $name = trim( $_POST[ 'txtName' ] ); // Sanitize message input $message = stripslashes( $message ); $message = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"], $message ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : "")); //

Zabbix部署、监测及邮件报警机制(实战!)

我们两清 提交于 2020-02-01 22:17:57
Zabbix部署 实验环境: CentOS 7-2:192.168.18.147(监测端:部署安装zabbix) CentOS 7-3:192.168.18.128(被监测端) 监测端操作: [root@cacti ~]# systemctl stop firewalld.service #关闭防火墙功能 [root@cacti ~]# systemctl disable firewalld.service #开机禁用防火墙功能 Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. [root@cacti ~]# setenforce 0 #关闭增强型安全功能 `安装LAMP架构` [root@cacti ~]# yum install -y \ httpd \ mariadb-server mariadb \ php \ php-mysql \ php-gd \ libjpeg* \ php-ldap \ php-odbc \ php-pear \ php-xml \ php-xmlrpc \ php-mhash

关于数据库的各种备份与还原姿势详解

别等时光非礼了梦想. 提交于 2020-02-01 22:17:50
数据库的冷备份与热备份 数据导出不完全等于数据备份: 数据导出是指将数据库中的数据逆向成SQL语句进行导出,所以导出的是SQL文件。通常用作把数据从一个系统迁移到另一个系统,目的是屏蔽系统之间的差异性 数据备份是指将数据库中数据存储的相关文件进行拷贝,用于保存一个数据库的全部物理数据,所以备份后的数据与原本数据在细节及状态上都是完全一致的。不会像SQL那样在使用了一些函数的情况下,可能会在不同的时间点或不同的系统上产生不一样的结果 冷备份与热备份: 冷备份:在数据库已经关闭的情况下,对数据的备份称作冷备份 热备份:与冷备份相反,在数据库节点不停机的状态下进行的备份被称作热备份 冷备份的限制: 数据库必须停机备份,这对一些线上数据库是无法接受的 备份的数据文件非常占用存储空间,并且不支持增量备份 冷备份是备份所有的数据文件和日志文件,所以无法单独备份某个逻辑库和数据表 联机冷备份: 单节点的数据库在冷备份时需要停机,这就会对业务系统产生影响。为了解决这个问题,我们可以组建集群然后挑选集群中的一个节点进行停机冷备份。由于集群中还有其他节点在运行,所以不必担心影响正在运行的系统。等备份结束之后再启动该节点,这样就能解决停机备份带来的影响 热备份的限制: 数据库在热备份的时候会全局加读锁,备份期间节点只能读取数据不能写入数据 联机热备份: 同样的方式,为了避免全局加锁

数据库热备份神器 - XtraBackup

随声附和 提交于 2020-02-01 22:09:05
常见的热备份方案 LVM方案 利用Linux的LVM技术来实现热备份,将MySQL的数据目录放到LVM逻辑卷上,然后通过LVM快照技术备份逻辑卷的内容。第一次备份是全量备份,之后的备份都是增量备份。在还原时,将快照中的数据目录恢复到ySQL的数据目录即可。 使用LVM这种技术不仅可以备份MySQL还可以备份MongoDB等其他数据库,但使用LVM做热备份方案也比较麻烦,因为需要手动创建逻辑卷、迁移数据目录、创建快照以及给数据库加锁等等,所以LVM并不是常用的热备份方案。 XtraBackup方案 因为LVM的麻烦,所以人们都希望使用专业的工具去做热备份,这个工具就是XtraBackup。XtraBackup是由Percona开源的免费数据库热备份工具,它能对InnoDB数据库和XtraDB存储引擎的数据库非阻塞地备份。因为XtraBackup在备份过程中不会打断正在执行的事务,而事务日志中记录了哪些是备份前写入的数据哪些是备份后写入的数据,所以无需加锁。 另外,XtraBackup提供了对备份数据的压缩功能,可以节约备份文件占用的磁盘空间及网络带宽。但XtraBackup在备份使用MyISAM作为存储引擎的表时会加读锁,即表中的数据可读但不可写,不过这也不是问题,之前提到了可以使用联机热备份的方式来解决加读锁的问题。同样,XtraBackup支持全量备份和增量备份

教你用MySQL导出一个ER图功能

北城余情 提交于 2020-02-01 20:00:46
教你用MySQL导出一个ER图功能 MySQL数据字典相关的sql查询和navicat的一个导出ER图功能 ##mysql 查看表结构 SELECT COLUMN_NAME 'Field', COLUMN_TYPE 'Type', IS_NULLABLE 'Null', COLUMN_KEY 'Key', COLUMN_DEFAULT 'Default', COLUMN_COMMENT 'Comment' FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = 'dbname' ##数据库名 AND table_name = 'tableName' ##数据库表名 ##mysql 查看索引 show index from tableName ##统计数据库中外键数量 select count(1) from (select TABLE_NAME,CONSTRAINT_NAME from INFORMATION_SCHEMA.KEY_COLUMN_USAGE where CONSTRAINT_NAME like '%fk%' ##约束名,这里限制的是外键 and TABLE_NAME = 'tableName' ##子表名,设置外键的表;REFERENCED_TABLE_NAME父表名,子表外键关联的表 and REFERENCED

教你用MySQL导出一个ER图功能

こ雲淡風輕ζ 提交于 2020-02-01 18:29:28
MySQL数据字典相关的sql查询和navicat的一个导出ER图功能 1 2 3 4 5 6 7 8 9 10 11 12 13 ##mysql 查看表结构 SELECT COLUMN_NAME 'Field', COLUMN_TYPE 'Type', IS_NULLABLE 'Null', COLUMN_KEY 'Key', COLUMN_DEFAULT 'Default', COLUMN_COMMENT 'Comment' FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = 'dbname' ##数据库名 AND table_name = 'tableName' ##数据库表名 1 2 ##mysql 查看索引 show index from tableName 1 2 3 4 5 6 7 ##统计数据库中外键数量 select count(1) from ( select TABLE_NAME,CONSTRAINT_NAME from INFORMATION_SCHEMA.KEY_COLUMN_USAGE where CONSTRAINT_NAME like '%fk%' ##约束名,这里限制的是外键 and TABLE_NAME = 'tableName' ##子表名,设置外键的表;REFERENCED_TABLE

Mysql 数据迁移后 启动出错

偶尔善良 提交于 2020-02-01 18:02:22
今天上班后不知道为什么,mysql一直无法启动,折腾了半天于是决定重装 我本地的server用的是wamp , 重装的时候, 要进行数据备份 , 我使用的最简单粗暴的备份方式, 就是直接进入到mysql的安装文件夹下, 把data拷贝一份就能够了. 然后卸载wamp后重装, 数据迁移就是把data贴到同样位置替换下就ok了 可是今天迁移完后,mysql怎么也启动不了,查看log,显示各种错误 2014-11-13 13:40:29 5196 [Note] Plugin 'FEDERATED' is disabled. 2014-11-13 13:40:29 5196 [Note] InnoDB: The InnoDB memory heap is disabled 2014-11-13 13:40:29 5196 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions 2014-11-13 13:40:29 5196 [Note] InnoDB: Compressed tables use zlib 1.2.3 2014-11-13 13:40:29 5196 [Note] InnoDB: Not using CPU crc32 instructions 2014-11-13 13:40:29