mysql
闪电侠风行
这个作者很懒,什么都没留下…
展开
-
Mysql中改变客户/服务器协议中可配置的最大包的大小(改变longblob的大小)
MySQL有四种BLOB类型: ·tinyblob:仅255个字符 ·blob:最大限制到65K字节 ·mediumblob:限制到16M字节 ·longblob:可达4GB 在每个MySQL的文档(从MySQL4.0开始)的介绍中,一个longblob列的最大允许长度依赖于在客户/服务器协议中可配置的最大包的大小和可用内存数。 你可能对在BLOB中存储大型文件转载 2013-04-22 22:04:07 · 1420 阅读 · 0 评论 -
mysql慢查询-ubuntu
一,为什么要开启这个查询呢?数据库是很容易产生瓶颈的地方,现在Nosql大家讨论这么热,估计都被数据库搞郁闷了。mysql中最影响速度的就是那些查询非常慢的语句,这些慢的语句,可能是写的不够合理或者是大数据下多表的联合查询等等,所以我们要找出这些语句,分析原因,加以优化。这也是发这篇博文的原因二,开启mysql的慢查询方法1,用命令开启慢查询查看复制打印?转载 2013-09-15 20:48:40 · 2048 阅读 · 0 评论 -
mysql 3NF
通俗地理解三个范式,对于数据库设计大有好处。在数据库设计中,为了更好地应用三个范式,就必须通俗地理解三个范式(通俗地理解是够用的理解,并不是最科学最准确的理解): 第一范式:1NF是对属性的原子性约束,要求属性(列)具有原子性,不可再分解;(只要是关系型数据库都满足1NF) 第二范式:2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性; 第三范式:3NF是对字段冗余性的约束转载 2013-09-15 22:02:28 · 1466 阅读 · 0 评论 -
mysql索引的使用
查询要使用索引最重要的条件是查询条件中需要使用索引。下列几种情况下有可能使用到索引:1,对于创建的多列索引,只要查询条件使用了最左边的列,索引一般就会被使用。2,对于使用like的查询,查询如果是 ‘%aaa’ 不会使用到索引‘aaa%’ 会使用到索引。下列的表将不使用索引:1,如果条件中有or,即使其中有条件带索引也不会使用。2,对于多列索引,不是使用的第一部分,则不会原创 2013-09-15 22:16:02 · 836 阅读 · 0 评论 -
分析Query 语句对系统性能的影响
通过对比两个解决觉方案的 SQL 实际执行的 profile 详细信息,来验证我们的判断。 由于 SQL 语句执行所消耗的最大两部分资源就是 IO 和 CPU ,所以这里为了节约篇幅,仅列出 BLOCK IO 和 C PU两项 profile 信息( Query Profiler 的详细介绍将在后面章节中独立介绍)先打开 profiling 功能,然后分别执行两个解决方案的 SQL 语句:原创 2013-09-16 09:56:17 · 1047 阅读 · 0 评论 -
mysql数据库锁定机制
为了保证数据的一致完整性,任何一个数据库都存在锁定机制。锁定机制的优劣直接应想到一个数据库系统的并发处理能力和性能,所以锁定机制的实现也就成为了各种数据库的核心技术之一。下面将对 MySQL 的 Innodb 各自的锁定机制进行较为详细的分析。总的来说, MySQL 各存储引擎使用了三种类型(级别)的锁定机制:行级锁定,页级锁定和表级锁定。下面我们先分析一下 MySQL 这三种锁定的特点和各自原创 2013-09-16 11:12:13 · 849 阅读 · 0 评论 -
合理利用锁机制优化MySQL
1 、 缩短锁定时间缩短锁定时间,短短几个字,说起来确实听容易的,但实际做起来恐怕就并不那么简单了。如何让锁定时间尽可能的短呢?唯一的办法就是让我们的 Query 执行时间尽可能的短。a) 尽两减少大的复杂 Query ,将复杂 Query 分拆成几个小的 Query 分布进行;b) 尽可能的建立足够高效的索引,让数据检索更迅速;c) 尽量让 MyISAM 存储引擎的表只存放必要的原创 2013-09-16 12:11:29 · 753 阅读 · 0 评论 -
mysql日志记录操作人员的信息以便于追踪
本文观点:使用init-connect + binlog的方法进行mysql的操作审计。由于mysql binlog记录了所有对数据库长生实际修改的sql语句,及其执行时间,和connection_id但是却没有记录connection_id对应的详细用户信息。因此本文将通过init-connect,在每次连接的初始化阶段,记录下这个连接的用户,和connection_id转载 2013-11-05 16:13:54 · 5101 阅读 · 0 评论 -
mysql的数据库双机热备
1、安装mysql#apt-get install mysql-server2、配置外部数据库访问vi /etc/mysql/my.cny将下面这一条注释掉bind-address 127.0.0.13、登录数据库mysql -uroot -ppasswd授权外网访问账号:grant all on *.* to root@'%' identified by '原创 2013-12-03 15:15:50 · 875 阅读 · 0 评论 -
mysql的运算符的优先级
Operator precedences are shown in the following list, from highest precedence to the lowest. Operators that are shown together on a line have the same precedence.INTERVALBINARY, COLLATE!- (u原创 2013-12-31 09:44:19 · 3215 阅读 · 0 评论 -
MySQL数据库垂直和水平切分
replication的限制:一旦数据库过于庞大,尤其是当写入过于频繁,很难由一台主机支撑的时候,我们还是会面临到扩展瓶颈。数据切分(sharding):通过某种特定的条件,将我们存放在同一个数据库中的数据分散存放到多个数据库(主机)上面,以达到分散单台设备负载的效果。。数据的切分同时还可以提高系统的总体可用性,因为单台设备Crash之后,只有总体数据的某部分不可用,而不是所有的数据。数据转载 2013-12-20 11:15:16 · 1365 阅读 · 0 评论 -
MySQL插入中文时出现ERROR 1406 (22001): Data too long for column 'name' at row 1
使用命令行方式登陆到MySQL服务器, 建立一个数据库,数据库编码设为UTF-8。此时,如果直接在命令行窗口使用insert语句插入中文,就遇到类似ERROR 1406 (22001): Data too long for column 'name' at row 1 错误。乍一看,是字段长度引起的问题,但是实际是字符编码的问题。可是尝试以下解决方法: 1、在Linux中,使用终端方转载 2013-12-21 14:17:53 · 2984 阅读 · 0 评论 -
mysql错误:ERROR 29 (HY000): File '/tmp/cun' not found (Errcode: 13)
突然遇到ERROR 29 (HY000): File '/tmp/cun' not found (Errcode: 13)错误,因为之前一直用的很好,换了个机器就出现这个问题了mysql的操作语句:mysql> load data infile '/tmp/cun' into table cun1 fields terminated by '\t' lines terminated by '\转载 2013-12-21 14:24:38 · 8248 阅读 · 1 评论 -
MySQL中group_concat函数
函数使用说明:该函数返回带有来自一个组的连接的非NULL 值的字符串结果。其完整的语法如下所示:GROUP_CONCAT([DISTINCT]>完整的语法如下:group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])基本查询 mysql> select * from转载 2013-12-25 21:06:29 · 770 阅读 · 0 评论 -
mysql show命令集合
a. show tables或show tables from database_name; -- 显示当前数据库中所有表的名称b. show databases; -- 显示mysql中所有数据库的名称c. show columns from table_name from database_name; 或show columns from database_name.table_nam转载 2014-01-11 16:48:06 · 733 阅读 · 0 评论 -
百万级数据库sql优化方案
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select转载 2014-05-31 17:45:54 · 1053 阅读 · 0 评论 -
Table '.\mysql\proc' is marked as crashed and should be repaired 报错
Table '.\mysql\proc' is marked as crashed and should be repaired 报错原创 2014-08-21 19:13:05 · 6590 阅读 · 0 评论 -
mysqldump 导出数据库报错 “does not exist when using LOCK TABLES”
在网上查了一下,说是权限不够,然后我改为用root权限执行,还是同样的错误。那说明不是权限的问题了。后来细想,之所以会出现这样的问题,是因为mysqldump在导出的时候会请求锁定导出数据库中的所有表,以保证数据的一致性。但是导出时如果数据库在使用状态,则会出现 “does not exist when using LOCK TABLES”错误。解决方法是在导出时加上-x选原创 2016-12-12 14:20:46 · 7542 阅读 · 2 评论 -
mysql开启慢查询日志及查询--windows
MYSQL慢查询配置1. 慢查询有什么用?它能记录下所有执行超过long_query_time时间的SQL语句, 帮你找到执行慢的SQL, 方便我们对这些SQL进行优化.2. 如何开启慢查询?首先我们先查看MYSQL服务器的慢查询状态是否开启.执行如下命令:show variables like '%quer%';我们可以看到当前log_sl原创 2013-08-02 10:33:49 · 33387 阅读 · 3 评论 -
MySQL 访问控制实现原理
1.MySQL 访问控制实现原理如果同一个用户有两条权限信息,一条是针对特定域名的,另外一个是含有通配符的域名,而且前者属于后者包含。这时候 My SQL如何来确定权限信息呢?实际上 MySQL 永远优先考虑更精确范围的权限。在 MySQL 内部会 按照 username 和 hostname 作一个排序,对于相同 username 的 权限,其 host 信息越接近访 问者的来源 host原创 2013-09-06 00:14:23 · 1981 阅读 · 0 评论 -
mysql存储过程基本函数
一.字符串类 CHARSET(str) //返回字串字符集CONCAT (string2 [,... ]) //连接字串INSTR (string ,substring ) //返回substring首次在string中出现的位置,不存在返回0LCASE (string2 ) //转换成小写LEFT (string2 ,length ) //从string2中的左边起取le原创 2013-04-23 10:20:46 · 602 阅读 · 0 评论 -
mysql 查看存储过程
1、查询存储过或函数 select name from mysql.proc where db='db_name' and type='procedure'; select name from mysql.proc where db='db_name' and type='function'; select specfic_name from mysql.p原创 2013-04-23 11:48:52 · 933 阅读 · 0 评论 -
修改mysql字符编码出现Job failed to start解决办法
可能是版本的问题,查5.5以后的版本对字符编码方式修改的办法,发现[mysqld]修改方法变了:[mysqld]下添加的应该为:character-set-server=utf8collation-server=utf8_general_ci保存退出$ /etc/init.d/mysql restart成功进入MySQL控制台: s原创 2013-04-15 17:30:54 · 577 阅读 · 0 评论 -
mysqlslap压力测试工具
mysqlslap Ver 1.0 Distrib 5.5.20, for Win32 (x86)Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaff原创 2013-04-24 09:02:22 · 736 阅读 · 0 评论 -
mysql的正则表达式
1. Mysql的正则表达式仅仅使SQL语言的一个子集,可以匹配基本的字符、字符串。 例如:select * from wp_posts where post_name REGEXP 'hello',可以检索出列post_name中所有包含hello的行REGEXP '.og' .是正则表达式中里一个特殊的字符。它表示匹配一个字符,因此,dog,hog,mog等等都能匹配。注意原创 2013-04-24 11:05:58 · 587 阅读 · 0 评论 -
ERROR : Unable to connect to foreign data source: Can't create TCP/IP socket (24)
author:skatetime:2012/12/4ERROR : Unable to connect to foreign data source: Can't create TCP/IP socket (24)环境说明:192.168.213.137:A192.168.213.120:B在B上mysql> show create table b\G;转载 2013-04-24 12:22:32 · 3412 阅读 · 1 评论 -
MySQL server has gone away解决办法
1、应用程序(比如PHP)长时间的执行批量的MYSQL语句。最常见的就是采集或者新旧数据转化。解决方案:在my.cnf文件中添加或者修改以下两个变量:wait_timeout=2880000interactive_timeout = 2880000 关于两个变量的具体说明可以google或者看官方手册。如果不能修改my.cnf,则可以在连接数据库的时候设置CLIENT_INTE原创 2013-05-01 12:40:55 · 596 阅读 · 0 评论 -
mysql的自动备份脚本
说明:我这里要把MySql数据库存放目录/var/lib/mysql下面的pw85数据库备份到/home/mysql_data里面,并且保存为mysqldata_bak_2012_04_11.tar.gz的压缩文件格式(2012_04_11是指备份执行时当天的日期),最后只保留最近7天的备份。实现步骤:1、创建保存备份文件的目录:/home/mysql_datacd转载 2013-07-19 23:13:43 · 817 阅读 · 0 评论 -
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.0.123' (10061)
错误:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.0.123' (10061) 我在linux上安装了mysql,远程使用windows连接,结果提示:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.0.123' (10061),找到这原创 2013-07-22 09:43:20 · 3235 阅读 · 1 评论 -
mysql的innodb引擎优化
InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在SELECT语句 提供一个Oracle风格一致的非锁定读。这些特色增加了多用户部署和性能。没有在InnoDB中扩大锁定的需要,因为在InnoDB中行级锁定适合非常 小的空间。InnoDB也支持FOREIGN KEY强制。在SQL查询中,你可以自由地将InnoDB类型的表与其它转载 2013-07-24 09:55:45 · 682 阅读 · 0 评论 -
ubuntu 12.04下mysql5.5.31热备份的配置
1、安装mysql#apt-get install mysql-server2、配置外部数据库访问vi /etc/mysql/my.cny将下面这一条注释掉bind-address 127.0.0.13、登录数据库mysql -uroot -ppasswd授权外网访问账号:grant all on *.* to root@'%' identified by '原创 2013-07-25 18:34:28 · 1124 阅读 · 0 评论 -
提高MySQL在高并发情况下的负载
TCMalloc(Thread-Caching Malloc)是google开发的开源工具──“google-perftools”中的成员。与标准的glibc库的malloc相比,TCMalloc在内存的分配上效率和速度要高得多,可以在很大程度上提高MySQL服务器在高并发情况下的性能,降低系统负载。 TCMalloc的实现原理和测试报告请见一篇文章:《TCMalloc:线程缓存的M转载 2013-08-02 11:23:59 · 1802 阅读 · 0 评论 -
在没有QT环境的windows机器上发布QT程序的方法
在一台没有安装Qt的电脑上发布Qt程序(与数据库连接),其方法如下:直接把DeBug或release中的.exe文件拖出来,直接双击,它需要什么.dll库,就按提示把这些动态链接库找出来,在DeBug中生成的.exe一般会需要:1、Mingwm10.dll, QtCored4.dll, QtGuid4.dll, QtSqld4.dll(如果你使用了数据库的话)这四个动态连接库原创 2013-07-29 22:26:23 · 3445 阅读 · 0 评论 -
mysql创建触发器报错
报错:ERROR 1442 (HY000): Can't update table ‘yckj_company' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.在用mysql数据库的时候,想写一个触发器实现这个原创 2013-08-10 21:55:32 · 3682 阅读 · 0 评论 -
mysql的Innodb存储引擎学习
总是记不住事情,已经看过好几本mysql的书了,但是不经常用,很多基础性的东西又都忘了,从今天开始,将重新看mysql的书籍,并做相应的记录InnoDB存储引擎1.支持事务安装Innodb 在功能方面最重要的一点就是对事务安全的支持,这无疑是让 Innodb 成为 MyS QL最为流行的存储引擎之一的一个非常重要原因。而且实现了 SQL92 标准所定义的所有四个 级别( READ UN原创 2013-09-05 23:13:35 · 836 阅读 · 0 评论 -
SQL 注入攻击
SQL Injection 原理 :结构化查询语言 (SQL) 是一种用来和数据库交互的文本语言。 SQL Injection 就是利用某些数据库的外部接口把用户数据插入到实际的数据库操作语言 (SQL) 当中,从而达到入侵数据库乃至操作系统的目的。它的产生主要是由于程序对用户输入 的数据没有进行严格的过滤,导致非法数据库查询语句的执行。如下面的用户登陆验证程序:$sql = "SELEC原创 2013-09-05 23:36:16 · 931 阅读 · 0 评论 -
mysql的权限级别
MySQL 中的权限分为五个级别,1 、 Global Level :Global Level 的权限控制又称为全局权限控制,所有权限信息都保存在 mysql.user 表中。 Global Level 的所有权限都是针对整个 mysqld 的,对所有的数据库下的所有表及所 有字段都有效。如果一个权限是以 Global Level 来授予的,则会覆盖其他所有级别的相同权限设置。2原创 2013-09-05 23:49:34 · 2357 阅读 · 0 评论 -
mysql免安装版数据库精简
1、删除 mysql-test 文件夹;2 、删除 sql-bench 文件夹; 3、删除script文件夹;4、删除bin目录下*test*.exe的文件夹;5、删除 bin 目录下的 debug 文件夹; 6、删除 bin 目录下所有扩展名为 .pdb 的文件; 7、删除 lib 目录下的 debug 文件夹; 8 、删除 lib 目录下所有扩展名为 .lib 和原创 2016-11-28 10:25:13 · 3691 阅读 · 0 评论