由于binlog未及时清理导致硬盘爆满无法启动mysql

这几天由于太忙了,7天没有观察服务器了,今天用手机打开网站发现报mysql.sock丢失的错误,刚开始以为是my.ini修改的原因,用df一看,/dev/xvda1的占用已经100%了,这样的情况还能启动mysql就真的逆天了。这时候想到了用sql删除binlog,但是根本进不去控制台,连安全模式都启动不了,以下是具体操作。

阅读更多

Mysql的find_in_set函数查询与like查询

对于mysql的like查询,我想都会很熟悉,对于一些基本查询也会常用,但始终不是对大数据量查询的方案。在查询数据需要对某一个字段里的值当作条件时,一般会用到like、instr()、find_in_set(),首先看一下手册里对这3种用法的定义。

expr LIKE pat [ESCAPE ‘escape-char’]

模式匹配,使用SQL简单正规表达式比较。返回1 (TRUE) 或 0 (FALSE)。 若 expr 或 pat 中任何一个为 NULL,则结果为 NULL。
模式不需要为文字字符串。例如,可以被指定为一个字符串表达式或表列。
在模式中可以同LIKE一起使用以下两种通配符:

阅读更多

Sphinx在windows下安装使用(支持中文全文检索)

前段时间听同事谈起过,公司内部的一个搜索功能用的就是Sphinx,但一直没时间去整一下,今天刚好有点时间,那么就折腾一次吧。一般在linux上比较多,今天就在windows下安装于调试一下吧。

前言:

一、关于Sphinx

Sphinx 是一个在GPLv2 下发布的一个全文检索引擎,商业授权(例如, 嵌入到其他程序中)需要联系作者(Sphinxsearch.com)以获得商业授权。
一般而言,Sphinx是一个独立的搜索引擎,意图为其他应用提供高速、低空间占用、高结果相关度的全文搜索功能。Sphinx可以非常容易的与SQL数据库和脚本语言集成。
当前系统内置MySQL和PostgreSQL 数据库数据源的支持,也支持从标准输入读取特定格式的XML数据。通过修改源代码,用户可以自行增加新的数据源(例如:其他类型的DBMS的原生支持)。
搜索API支持PHP、Python、Perl、Rudy和Java,并且也可以用作MySQL存储引擎。搜索API非常简单,可以在若干个小时之内移植到新的语言上。

阅读更多

Mysql数据库访问权限控制

mysql默认的root是不允许远程访问的,只能localhost本地之间的数据访问,如果要想使外部的任何一个ip访问数据权限,可执行以下语句:

也可针对指定ip开放访问权限。

CREATE USER 'root'@'%' IDENTIFIED BY PASSWORD '*7B2F14D9BB629E334CD49A1028BD85750F7D3530';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'%' IDENTIFIED BY PASSWORD '*7B2F14D9BB629E334CD49A1028BD85750F7D3530' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

附:

MySQL的Grant命令(MySQL 5.0 及以上版本)。

MySQL 赋予用户权限命令的简单格式可概括为:

阅读更多

MySQL Workbench的使用

MySQL Workbench 是 MySQL AB 最近释放的可视数据库设计工具。这个工具是设计 MySQL 数据库的专用工具。
在 MySQL Workbench 中建立的被称之为物理数据模型。一个物理数据模型是针对一个特定 RDBMS 产品的数据模型;本文中的模型将具有一些 MySQL 的独特规范。我们可以使用它生成(forward-engineer)数据库对象,除了包含表和列(字段)外,也可以包含视图。
MySQL Workbench 拥有很多的功能和特性;这篇由 Djoni Darmawikarta写的

阅读更多

Mysql一些细节性的优化

1、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。

2、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:

select id from t where num is null

可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:

select id from t where num=0

3、应尽量避免在 where 子句中使用!=或<>操作符,否则

阅读更多

mysql中的unsigned说明

unsigned 既为非负数,用此类型可以增加数据长度!

例如如果 tinyint最大是127,那 tinyint unsigned 最大 就可以到 127 * 2

unsigned 属性只针对整型,而binary属性只用于char 和varchar。

阅读更多