压测: mysqlslap -u root -p —concurrency=50 —create-schema=’MyDB’ —query=’select * from MyDB.test2’ —number-of-queries=100;

关于MySQL的wait_timeout连接超时问题报错解决方案

查看Mysql的日志是否开启和记录日志路径

MySQL的查询日志记录了所有MySQL数据库请求的信息。无论这些请求是否得到了正确的执行。就是即使我查询一个不存在的表的SQL,查询日志依然会记录; 其他日志查看参考:https://www.cnblogs.com/mungerz/p/10442791.html

常见操作 - 图1

另外,MySQL的查询日志支持写入文件或写入数据表两种形式,这个由参数log_output控制,如下所示:
  1. mysql> show variables like 'log_output';
  2. +---------------+-------+
  3. | Variable_name | Value |
  4. +---------------+-------+
  5. | log_output | FILE |
  6. +---------------+-------+
  7. 1 row in set (0.00 sec)
  8. mysql>
这三个参数general_log、 general_log_file、 log_output都是动态参数,可以随时动态修改。 开启MySQL查询日志
  1. set global general_log = on;

设置日志输出方式为表

如果设置log_output=table的话,则日志结果会记录到名为gengera_log的表中,这表的默认引擎是CSV
  1. mysql> show variables like 'log_output';
  2. +---------------+-------+
  3. | Variable_name | Value |
  4. +---------------+-------+
  5. | log_output | FILE |
  6. +---------------+-------+
  7. 1 row in set (0.00 sec)
  8. mysql> set global log_output='table';
  9. Query OK, 0 rows affected (0.00 sec)
  10. mysql> show variables like 'log_output';
  11. +---------------+-------+
  12. | Variable_name | Value |
  13. +---------------+-------+
  14. | log_output | TABLE |
  15. +---------------+-------+
  16. 1 row in set (0.01 sec)
  17. mysql>

查看查询日志信息。

  1. mysql> select * from mysql.general_log;
  2. +---------------------+---------------------------+-----------+-----------+--------------+----------------------------------+
  3. | event_time | user_host | thread_id | server_id | command_type | argument |
  4. +---------------------+---------------------------+-----------+-----------+--------------+----------------------------------+
  5. | 2017-07-06 12:32:05 | root[root] @ localhost [] | 1 | 1 | Query | show variables like 'general%' |
  6. | 2017-07-06 12:32:28 | root[root] @ localhost [] | 1 | 1 | Query | show variables like 'log_output' |
  7. | 2017-07-06 12:32:41 | root[root] @ localhost [] | 1 | 1 | Query | select * from MyDB.test |
  8. | 2017-07-06 12:34:36 | [root] @ localhost [] | 3 | 1 | Connect | root@localhost on |
  9. | 2017-07-06 12:34:36 | root[root] @ localhost [] | 3 | 1 | Query | KILL QUERY 1 |
  10. | 2017-07-06 12:34:36 | root[root] @ localhost [] | 3 | 1 | Quit | |
  11. | 2017-07-06 12:34:51 | root[root] @ localhost [] | 1 | 1 | Query | select * from mysql.general_log |
  12. +---------------------+---------------------------+-----------+-----------+--------------+----------------------------------+
  13. 7 rows in set (0.02 sec)
  14. mysql>

MySQL 复制表

如果我们需要完全的复制MySQL的数据表,包括表的结构,索引,默认值等。 如果仅仅使用CREATE TABLE … SELECT** **命令,是无法实现的。 本章节将为大家介绍如何完整的复制MySQL数据表,步骤如下:
  • 使用 SHOW CREATE TABLE 命令获取创建数据表(CREATE TABLE) 语句,该语句包含了原数据表的结构,索引等。
  • 复制以下命令显示的SQL语句,修改数据表名,并执行SQL语句,通过以上命令 将完全的复制数据表结构。
  • 如果你想复制表的内容,你就可以使用 INSERT INTO … SELECT 语句来实现。
尝试以下实例来复制表 runoob_tbl 。

步骤一:获取数据表的完整结构。

  1. mysql> SHOW CREATE TABLE runoob_tbl \G;
  2. *************************** 1. row ***************************
  3. Table: runoob_tbl Create Table: CREATE TABLE `runoob_tbl` (
  4. `runoob_id` int(11) NOT NULL auto_increment,
  5. `runoob_title` varchar(100) NOT NULL default '',
  6. `runoob_author` varchar(40) NOT NULL default '',
  7. `submission_date` date default NULL,
  8. PRIMARY KEY (`runoob_id`),
  9. UNIQUE KEY `AUTHOR_INDEX` (`runoob_author`) )
  10. ENGINE=InnoDB 1 row in set (0.00 sec)

步骤二:

修改SQL语句的数据表名,并执行SQL语句。
  1. mysql> CREATE TABLE `clone_runoob_tbl` (
  2. `runoob_id` int(11) NOT NULL auto_increment,
  3. `runoob_title` varchar(100) NOT NULL default '',
  4. `runoob_author` varchar(40) NOT NULL default '',
  5. `submission_date` date default NULL,
  6. PRIMARY KEY (`runoob_id`),
  7. UNIQUE KEY `AUTHOR_INDEX` (`runoob_author`) )
  8. ENGINE=InnoDB

步骤三:

执行完第二步骤后,你将在数据库中创建新的克隆表 clone_tbl。 如果你想拷贝数据表的数据你可以使用 **INSERT INTO… SELECT** 语句来实现。
  1. mysql> INSERT INTO clone_runoob_tbl (runoob_id,
  2. runoob_title,
  3. runoob_author,
  4. submission_date)
  5. SELECT runoob_id,runoob_title,
  6. runoob_author,submission_date
  7. FROM runoob_tbl;
  8. Query OK, 3 rows affected (0.07 sec) Records: 3 Duplicates: 0 Warnings: 0
执行以上步骤后,会完整的复制表的内容,包括表结构及表数据。