【MySQL】load data语句详解(三)
关于使用local子句与不使用local子句的时候的差异如果load data语句使用了local子句,则客户端使用TCP远程连接mysql server时,没有file权限仍然能够导入文本文件,这个时候是非常危险的,因为local子句的内部原理是从客户端的主机读取文本文件并传送到server端的/tmp目录并保存为一个临时文件,再执行load data语句的。另外,要使用local子句,还需要看server端启动是否关闭了local_infile选项(如果不指定该选项,则服务端默认为ON),mysql client连接时是否关闭了local_infile选项(如果不指定该选项,则客户端默认为ON),local_infile在server或client端任意一端关闭都不能使用local子句,会报错误:ERROR 1148 (42000): The used command is not allowed with this MySQL version如果load data语句不使用local子句,则这个时候用户必须要有file权限才能够执行导入文本文件(并且只能够导入se
【MySQL】load data语句详解(一)
作者 罗小波沃趣科技高级MySQL数据库工程师load data语句详解1、语法解析1.1. 必选子句或关键字1.2. 可选子句或关键字1.2.1. LOW_PRIORITY关键字1.2.2. LOCAL关键字1.2.2.1. 使用与不使用local关键字的流程1.2.2.2. 使用local关键字的错误处理1.2.3. REPLACE与IGNORE关键字1.2.4. PARTITION子句1...
【MySQL】主从GTID复制修复
GTID是5.6新增特性,减少DBA运维的工作。在以前一主两从架构下当主库M1发生故障我们需要选择一个从库S1作为新的主库,但是S2要重新change master 到新主库上 这时master_log_file和master_log_pos我们怎么获取到呢?在没有GTID时 MHA架构帮我们解决了这个问题,在有了GTID情况下 我们只需要在S2上面重新change master 下 设置MASTER_AUTO_POSITION = 1即可。 本文介绍下在GTID复制下遇到了错误如何解决。
MVCC原理探究及MySQL源码实现分析
其实不管隔离级别,我们也抛开数据库中的ACID,我们思考一个问题:众所周知,InnoDB的数据都是存储在B-tree里面的,修改后的数据到底要不要存储在实际的B-tree叶子节点,session2是怎么做到查询出来的结果还是10,而不是20呢?
semi-sync原主库加入集群阻塞问题分析
前段时间支持客户处理问题的时候,发现一个semi-sync复制主从切换原master加入集群时,复制同步阻塞,无法继续同步数据的问题,非常有参考意义,整理一下,供大家参考。
MySQL排序内部原理探秘
MySQL排序其实是一个老生长谈的问题了,但是我们这次想由浅入深详细的说说MySQL排序模式,怎么影响MySQL选择不同的排序模式和怎么优化排序。
事务已提交另外会话查询不到的问题解析
今天遇到一个很有趣的问题:跑python代码程序,使用python程序开启两个session连接数据库,在第二个session往t表插入一行记录,并commit了;在第一个session去查t表,发现t表中查询不到刚插入的这条记录记录。而拿相同的python代码程序,在另一套环境上,也开启2个session,重复上面的操作,结果居然可以查到记录。开发人员认为,我在session 2上数据都插入进去了,并且提交了,为什么sessioin 1查询不到?并且相同的代码,连的同一个mysql环境,怎么两次结果都不一样?
Latch导致MySQL Crash
最近我们遇到一个MySQL的问题,分析后很有代表意义,特地写出来供大家参考。
MySQL执行计划explain的key_len解析
?当用Explain查看SQL的执行计划时,里面有列显示了 key_len 的值,根据这个值可以判断索引的长度,在组合索引里面可以更清楚的了解到了哪部分字段使用到了索引。
MySQL复制应用中继日志解析
前言:SQL线程应用中继日志,在binlog_format是row格式的时候,是居于主键更新,下面结合一张图来证明。
MySQL并发复制系列三:MySQL和MariaDB实现对比
并发复制(Parallel Replication) 系列三:MySQL 5.7 和MariaDB 10的parallel replication对比
MySQL并发复制系列二:多线程复制
并发复制(Parallel Replication) 系列二: Enhanced Multi-threaded Slaves
MySQL并发复制系列一:binlog组提交
并发复制(Parallel Replication) 系列 一 : Binary Log Group Commit