SELECT * FROM table WHERE id IN(5,3,7,1) ORDER BY FIELD(id,5,3,7,1)
记录按照5,3,7,1的顺序返回
如果没有ORDER BY FIELD将按 1,3,5,6的顺序返回
阅读全文>>
在MySQL下运行完下面这个建表语句后。 如何从数据字典中,检索出这个表的字段的相关信息?
DROP TABLE IF EXISTS test_table;
CREATE TABLE test_table(
Test_ID int NOT NULL AUTO_INCREMENT PRIMARY &nb...
阅读全文>>
今天我在开启MYSQL慢查询的时候,MYSQL服务死活不能启动,报错:
[ERROR] MySQL: unknown variable 'log-slow-queries=D:/ProgramData/MySQL/phpec_org-slow.log'
半天找不到原因,后面经过不断百度,发现原来MYSQL5.6版以上已经取消了log-slow-queries这个参数,改为slow-query-lo...
阅读全文>>
myql优化,启动mysql缓存机制,实现命中率100%
配置你的mysql配置文件:主要是配置[mysqld]后面的内容。
1,优化远程连接速度。
在[mysqld]下面添加skip-name-resolve
skip-name-resolve
选项就能禁用DNS解析,连接速度会快很多。不过,这样的话就不能在MySQL的授权表中使用主机名了而只能用ip格式。
2,设置连接数,mysq...
阅读全文>>
对于针对字符串位置的操作,第一个位置被标记为1。
ASCII(str)
返回字符串str的最左面字符的ASCII代码值。如果str是空字符串,返回0。如果str是NULL,返回NULL。
mysql> select ASCII('2');
-> 50
mysql> select ASCII(2);
&nb...
阅读全文>>
mysql数据库新加了几个表,结果只有frm文件存在,如果直接复制到别的电脑,这几个表是提示错误的,为什么呢?查了下资料:frm、MYI、MYD分别对应MyISAM表的表结构\索引\数据文件。
我遇到的情况跟表引擎类型有关,我是用innodb,结果出现了这样的情形,MYSQL的默认DB引擎是innodb的时候,innodb表没有没有myd和.myi,其数据文件对应于ibdata1
解决办法,更改表...
阅读全文>>
命令行可以正常登录,但是用navicat连接就是不行,百度后有说增加或是修改
bind-address=0.0.0.0这样的,但是对我的没有效果,重新配置mysql的时候,启用tcp连接,结果就正常了,有时候,小细节真的会让你很杯具。。阅读全文>>
执行,就会报 The definition of table 'table1' prevents operation UPDATE on table 'table2'
update table2 set item = replace(item,'A27-','A28-')
where id in(
select id from table1 where
item like ...
阅读全文>>
GROUP_CONCAT()是MySQL数据库提供的一个函数,通常跟GROUP
BY一起使用。
语法:
GROUP_CONCAT([DISTINCT] expr [,expr ...]
[ORDER BY {unsigned_integer | col_name | expr}
[ASC | DESC] [,col_name ...]]...
阅读全文>>
(1)、back_log: 要求 MySQL 能有的连接数量。当主要MySQL线程在一个很短时间内得到非常多的连接请求,这就起作用,然后主线程花些时间(尽管很短)检查连接并且启动一个新线程。
back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。只有如果期望在一个短时间内有很多连接,你需要增加
它,换句话说,这值对到来的TCP/IP连接的侦听队列的大小...
阅读全文>>
[mysqld]
port = 3306
socket = /tmp/mysql.sock
# 设置mysql的安装目录
basedir=F:\phpecorg\MySql Server 51
# 设置mysql数据库的数据的存放目录,必须是data,或者是\\xxx-data
datadir=F:\phpecorg\MySql Server 51\data
#innodb_log_arch_dir 默认datadir
#innodb_log_group_home_dir 默认datadir
# 设置mysql服务器的字符集,默认编码
default-character-set=utf8
#连接数的操作系统监听队列数量,如果经常出现“拒绝连接”错误可适当增加此值
back_log = 50
#不使用接听TCP / IP端口方法,mysqld通过命名管道连接
#skip-networking
# 最大连接数量
阅读全文>>
1、应用程序(比如PHP)长时间的执行批量的MYSQL语句。
最常见的就是采集或者新旧数据转化。
解决方案:
在
my.ini文件中添加或者修改以下两个变量:
wait_timeout=2880000
interactive_timeout = 2880000
关于两个变量的具体说明可以google或者看官方手册。
如果不能修改my.cnf,则可以在连接数据库的时候设置CLIENT_INTER...
阅读全文>>
查看当前最大连接数:mysqladmin -uusername -ppassword variables |find "max_con"
MYSQL数据库安装完成后,默认最大连接数是100,一般流量稍微大一点的论坛或网站这个连接数是远远不够的,增加默认MYSQL连接数的方法有两个
方法一:进入MYSQL安装目录 打开MYSQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改为 max_connections=1000 服务里重起MYSQL即可
方法二:MySQL的最大连接数默认是100客户端登录:mysql -uusername -ppassword
设置新的最大连接数为200:mysql> set GLOBAL max_connections=200
显示当前运行的Query:mysql> show processlist
显示当前状态:mysql> show status
退出客户端:mysql> exit
查看当前最大连接数:mysqladmin -uusername -ppassword variables
方法三:以centos 4.4 下面的mysql 5.0.33 手工编译版本为例说明:
vi /usr/local/mysql/bin/mysqld_safe
找到safe_mysqld编辑它,找到mysqld启动的那两行,在后面加上参数 :
-O max_connections=1500
具体一点就是下面的位置:
用红字特别说明:
then $NOHUP_NICENESS $ledir/$MYSQLD
$defaults --basedir=$MY_BASEDIR_VERSION
--datadir=$DATADIR $USER_OPTION
--pid-file=$pid_file
--skip-external-locking
-O max_connections=1500
>> $err_log 2>&1 else
eval "$NOHUP_NICENESS $ledir/$MYSQLD
$defaults --basedir=$MY_BASEDIR_VERSION
--datadir=$DATADIR $USER_OPTION
--pid-file=$pid_file
--skip-external-locking $args
-O max_connections=1500 >>
$err_log 2>&1"
保存。
# service mysqld restart
# /usr/local/mysql/bin/mysqladmin -uroot -p variables
输入root数据库账号的密码后可看到
max_connections 1500 即新改动已经生效。
还有一种方法,
修改原代码:
解开MySQL的原代码,进入里面的sql目录修改mysqld.cc找到下面一行:
{"max_connections", OPT_MAX_CONNECTIONS,
"The number of simultaneous clients allowed.", (gptr*) amp;max_connections,
(gptr*) &max_connections, 0, GET_ULONG, REQUIRED_ARG, 100, 1, 16384, 0, 1,
0},
把它改为:
{"max_connections", OPT_MAX_CONNECTIONS,
"The number of simultaneous clients allowed.", (gptr*) amp;max_connections,
(gptr*) &max_connections, 0, GET_ULONG, REQUIRED_ARG, 1500, 1, 16384, 0, 1,
0},
存盘退出,然后./configure ;make;make install可以获得同样的效果。