mysql常见用法

查看连接数
show processlist;
查看慢日志
show variables like '%slow_query_log%';
show variables like 'long_query_time%';设置慢日志记录什么样的SQL,默认10s
log-queries-not-using-indexes:未使用索引的查询也被记录到慢查询日志中,一般也开启这个变量


如果出现如下情况

mysql> show variables like '%slow_query_log%';
+---------------------+---------------------+
| Variable_name | Value |
+---------------------+---------------------+
| slow_query_log | OFF |
| slow_query_log_file | ZhiBingLiu-slow.log |
+---------------------+---------------------+
2 rows in set

 

windows下my.ini添加
[mysqld]

slow-query-log=1
slow-query-log-file = "D:/xampp/mysql/data/mysql-slow.log"
long_query_time = 4 #默认为10秒

#min-examined-row-limit=30 #查询检查返回少于该参数指定行的SQL不被记录到慢查询日志
log-queries-not-using-indexes

{注:

slow_query_log

long_query_time = 5

log-slow-queries=slow.log

现在必须要这种设置才行

slow-query-log=1

long_query_time = 5 #这个没变
slow-query-log-file=slow.log

看来从5.6.* 可能已经全面取消了

log-slow-queries=slow.log这种写法了}

查看log日志是否开启
show variables like 'general_log'
set GLOBAL general_log='ON';
SET GLOBAL general_log_file = '/tmp/mysql.log'
不使用的时候记得关掉,否则会大量占用磁盘空间。

 mysql的性能和max_connections(最大连接数默认值为100) 和 wait_timeout(空闲等待时长,缺省情况下,wait_timeout的初始值是28800)  都有关系。wait_timeout 的值越大,连接的空闲等待就越长,这样就会造成当前连接数越大

[mysqld]
max_connections=1000 #默认是100
wait_time_out=1814400  #21天,默认是8小时
interactive_timeout=1814400 #需要和上一个参数必须同时设置  

 将MySQL慢查询日志写入表的的设置为。set global log_output='TABLE';

在抓取数据的时候总是提示:MySQL server has gone away, 在这样的情况下正是由于某两条SQL查询之间隔离的时间过长,导致该连接自动断开。 解决方案:在打开链接的时候如下多加一个参数

mysql_connect($dbhost, $dbuser, $dbpw, false, MYSQL_CLIENT_INTERACTIVE)
然后接着执行这样的query:

mysql_query("set interactive_timeout=24*3600");
这样的话,就不会出现mysql server has gone away 了。
为什么呢? 看看官方手册里的说明
MYSQL_CLIENT_COMPRESS 使用压缩的通讯协议 
MYSQL_CLIENT_IGNORE_SPACE 允许在函数名后留空格位 
MYSQL_CLIENT_INTERACTIVE 允许设置断开连接之前所空闲等候的 interactive_timeout 时间(代替 wait_timeout)。
MYSQL_CLIENT_SSL 使用 SSL 加密。本标志仅在 MySQL 客户端库版本为 4.x 或更高版本时可用。在 PHP 4 和 Windows 版的 PHP 5 安装包中绑定的都是 3.23.x。

  

posted @ 2017-06-21 17:10  雨落知音  阅读(162)  评论(0编辑  收藏  举报