mysql数据库

合理使用mysql中的load data infile导入数据

隐身守侯 提交于 2020-03-12 23:34:54
基本语法: load data [low_priority] [local] infile 'file_name txt' [replace | ignore] into table tbl_name [fields [terminated by't'] [OPTIONALLY] enclosed by ''] [escaped by'' ]] [lines terminated by'n'] [ignore number lines] [(col_name, )] load data infile语句从一个文本文件中以很高的速度读入一个表中。使用这个命令之前,mysqld进程(服务)必须已经在运行。为了安全原因,当读取位于服务器上的文本文件时,文件必须处于数据库目录或可被所有人读取。另外,为了对服务器上文件使用load data infile,在服务器主机上你必须有file的权限。 把千万级甚至亿级的数据写入mysql,实在是一件很让人头痛的事情。 load data local infile貌似是最快的方法了, 可是load一个亿级的文件,仍然需要数十分钟。 如果有主从结构的话,在主服务器上面load数十分钟,文件数据会写入binary log,再传输到从服务器, 然后从服务器也需要数十分钟来做load操作,如果从服务器只有一个sql_thread来执行binary log

超详细,多图文使用galera cluster搭建mysql集群并介绍wsrep相关参数

柔情痞子 提交于 2020-03-12 19:12:57
超详细,多图文使用galera cluster搭建mysql集群并介绍wsrep相关参数 介绍galera cluster原理的文章已经有一大堆了,百度几篇看一看就能有相关了解,这里就不赘述了。本文主要侧重实操,因为跟着百度前几页的搭建教程或多或少都有坑,前后配置逻辑矛盾的也有。终于,经过几个通宵的bug修复,反复验证,力求以最简洁的代码,最少的操作量,最直白的逻辑来完成集群的搭建。因为操作过程中,网上对wsrep相关参数的介绍少之又少,所以最后特别写了完整版的参数说明,供搭建成功后,各种测试调试使用,对于这些参数有坑的地方,欢迎在底下留言,供大家参考,谢谢。 对于mysql的集群方案,我之前总结过,详情点击查看, 多图文,详细介绍mysql各个集群方案 一,需求了解 Galera Cluster需要至少三个节点的服务器硬件。 如果群集在单个交换机上运行,请使用三个节点。如果您的群集跨越多个交换机,请使用三个交换机。如果您的群集跨越网络,请使用三个网络。如果您的群集跨越数据中心,请使用三个数据中心。这样可以确保在网络中断的情况下,群集可以维护主组件。 1,硬体需求 对于服务器硬件,每个节点至少需要以下组件: 1 GHz单核CPU; 512 MB RAM; 100 Mbps网络连接; 注意:Galera Cluster可能会由于内存不足而在有限的硬件上运行时偶尔崩溃。为避免这种情况

修改mysql中字符集

扶醉桌前 提交于 2020-03-12 12:46:00
在操作数据库中通常会遇到数据库编码问题 如gbk和utf8编码不一致等 这时候我们可以通过下面的方式查看字符集 mysql> show variables like ‘%character%’; ±-------------------------±--------------------------------------------------------+ | Variable_name | Value | ±-------------------------±--------------------------------------------------------+ | character_set_client | gbk | | character_set_connection | gbk | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | gbk | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.7\share

injector

霸气de小男生 提交于 2020-03-12 11:46:04
网上的注入工具很多,大多也有比较详细的解释,但是大部分windows下的注入软件都是对自己软件的一种推荐,而且很多也不是非常的安全,对于有些破解版本来说,很可能自身会被带有木马,所以,Linux下的注入工具也是非常强大的,不过分的说,可以完全取代Windows下面的所有注入工具。我所介绍的是一款名为SQLMAP的注入工具,有感兴趣的可以去他的官网看看哦! 首先,SQLMAP是一个开放源码的渗透测试工具,它可以自动探测和利用SQL注入漏洞来接管数据库服务器。它配备了一个强大的探测引擎,为最终渗透测试人员提供很多猥琐的功能,可以拖库,可以访问底层的文件系统,还可以通过带外连接执行操作系统上的命令 其次,SQLMAP支持MySQL, Oracle,PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird,Sybase和SAP MaxDB等数据库的各种安全漏洞检测。 SQLMAP支持五种不同的注入模式: l 基于布尔的盲注,即可以根据返回页面判断条件真假的注入; l 基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断; l 基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中; l 联合查询注入

MySQL之explain使用

♀尐吖头ヾ 提交于 2020-03-12 08:28:16
是什么 使用EXPLAIN关键字可以模拟优化器执行SQL语句,从而知道MySQL是如何处理你的SQL语句的。 用法:explain+sql语句 explain之id id是以数字形式呈现,表示查询中执行select子句或操作表的顺序。数字越大,优先级越高,优化器优先执行。 id相同,从上往下顺序执行 id不同,id值越大,优先级越高,越先执行。 explain之select_type select_type表示查询的类型,主要是用来区别普通查询、联合查询、子查询等复杂查询。主要有以下几种: SIMPLE:简单的select查询,查询中不包含子查询或者UNION PRIMARY:查询中若包含任何复杂的子部分,最外层查询则被标记为PRIMARY SUBQUERY:在select或WHERE列表中包含了子查询。 DERIVED:在FROM列表中包含的子查询被标记为DERIVED(衍生),MySQL会递归执行这些子查询,把结果放在临时表里。 UNION:若第二个SELECT出现在UNION之后则被标记为UNION;若UNION包含在FROM子句的子查询中,外层SELECT将被标记为:DERIVED。 UNION RESULT:从UNION表获取结果的SELECT。 explain之table 显示这一行的数据是关于哪张表的! explain之type type显示查询使用了何种类型

浅谈mysql两种常用引擎MyIASM和InnoDB的区别

眉间皱痕 提交于 2020-03-12 08:14:05
Innodb引擎 Innodb引擎提供了对数据库ACID事务的支持,并且实现了SQL标准的四种隔离级别。该引擎还提供了行级锁和外键约束,它的设计目标是处理大容量数据库系统,它本身其实就是基于MySQL后台的完整数据库系统,MySQL运行时Innodb会在内存中建立缓冲池,用于缓冲数据和索引。但是该引擎不支持FULLTEXT类型的索引,而且它没有保存表的行数,当SELECT COUNT(*) FROM TABLE时需要扫描全表。当需要使用数据库事务时,该引擎当然是首选。由于锁的粒度更小,写操作不会锁定全表,所以在并发较高时,使用Innodb引擎会提升效率。但是使用行级锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表。 MyIASM引擎 MyIASM是MySQL默认的引擎,但是它没有提供对数据库事务的支持,也不支持行级锁和外键,因此当INSERT(插入)或UPDATE(更新)数据时即写操作需要锁定整个表,效率便会低一些。不过和Innodb不同,MyIASM中存储了表的行数,于是SELECT COUNT(*) FROM TABLE时只需要直接读取已经保存好的值而不需要进行全表扫描。如果表的读操作远远多于写操作且不需要数据库事务的支持,那么MyIASM也是很好的选择。 主要区别: 1、MyIASM是非事务安全的,而InnoDB是事务安全的

C# 枚举相关操作——解析,遍历

淺唱寂寞╮ 提交于 2020-03-12 08:02:33
我们在开发过程中,有时会让枚举作为数据源来绑定一些下拉列表,这时就需要解析枚举名称和值 。 先看一个枚举的定义: 1 /// <summary> 2 /// 数据库类型 3 /// </summary> 4 public enum DatabaseType { 5 OleDb, 6 SqLite, 7 MssqlServer, 8 MySql, 9 Oracle, 10 Db2, 11 Other 12 } 1.使用所给的字符串匹配枚举类型 (DatabaseType) Enum.Parse(typeof (DatabaseType), "OleDb", true); // 最后一个参数 表示不区分大小写 2.获取枚举的字符串形式: DatabaseType.MySql.ToString() // MySql 3.获取枚举的值 (int)DatabaseType.MySql;  // 3 4.根据值获取枚举类型 (DatabaseType)3; //DatabaseType.MySql 5.根据所给枚举的字符串形式获取枚举的值 Enum.Format(typeof(DatabaseType), Enum.Parse(typeof(DatabaseType), "MySql"), "d") // 3 来源: https://www.cnblogs.com/jayshsoft/p

MySQL问题记录--Can't connect to MySQL server on localhost (10061)解决方法

梦想与她 提交于 2020-03-12 04:58:13
本文mysql的安装环境为win7 64位,mysql版本为MySQL5.7 问题描述:在命令行输入 mysql -u root -p 登录mysql,返回”Can't connect to MySQL server on localhost (10061)”错误 问题原因:在一番谷歌后,查到问题原因是mysql没有启动。 解决方法: 1、将mysql加入到Windows的服务中:切换到mysql安装目录下的bin文件夹,命令行运行"mysqld --install" 1 C:\Program Files\MySQL\MySQL Server 5.7\bin> mysqld --install 2 Service successfully installed. 注: 此时若使用“net start mysql”成功启动msyql,则无须执行下面步骤 2、初始化mysql数据库,输入“mysqld --initialize --user=root --console”。下面红色文字为初始化后的root 密码 C:\Program Files\MySQL\MySQL Server 5.7\bin>mysqld --initialize --user=root --console 2016-10-29T01:35:44.309833Z 0 [Warning] TIMESTAMP with

mysql主从原理

眉间皱痕 提交于 2020-03-12 03:32:59
1.1 mysql主从同步    参考博客: https://www.cnblogs.com/kevingrace/p/6256603.html   1、mysql主从同步(复制)概念       1. 将Mysql某一台主机数据复制到其它主机(slaves)上,并重新执行一遍来实现的。       2. 复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。       3. 主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。       4. 当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。       5. 从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。        binlog: 是二进制日志文件,用于记录mysql的数据更新或者潜在更新(比如DELETE语句执行删除而实际并没有符合条件的数据)   2、Mysql支持哪些复制       1. 基于语句的复制: 在主服务器执行SQL语句,在从服务器执行同样语句。        注: MySQL默认采用基于语句的复制,效率较高。一旦发现没法精确复制时, 会自动选基于行的复制。       2. 基于行的复制: 把改变的内容复制过去,而不是把命令在从服务器上执行一遍. 从mysql5.0开始支持       3.

mysql基础面试题

六月ゝ 毕业季﹏ 提交于 2020-03-12 03:32:41
1、 uuid和id区别   1) uuid类型是varchar(36),而自增长Id则一般是bigInt类型。   2) 相对于bigInt类型的自增长Id,varchar(36)类型的uuid消耗的物理空间更为明显。   3)uuid几乎保证了不同数据库的不同表的id唯一,而自增长id只能保证一个数据库中的一张表的id唯一    进行数据库合并的话并然会因主键冲突而失败,这是一个硬伤。 2、 主从数据库怎么针对从数据库查,主数据库修改增加   1)主从数据库本身就是主表更新操作,从表查询操作,主从分离,数据同步 来源: https://www.cnblogs.com/jiaxinzhu/p/12466852.html