压测: 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
这三个参数general_log、 general_log_file、 log_output都是动态参数,可以随时动态修改。 开启MySQL查询日志
mysql> show variables like 'log_output';+---------------+-------+| Variable_name | Value |+---------------+-------+| log_output | FILE |+---------------+-------+1 row in set (0.00 sec)mysql>
set global general_log = on;
设置日志输出方式为表
如果设置log_output=table的话,则日志结果会记录到名为gengera_log的表中,这表的默认引擎是CSV
mysql> show variables like 'log_output';+---------------+-------+| Variable_name | Value |+---------------+-------+| log_output | FILE |+---------------+-------+1 row in set (0.00 sec)mysql> set global log_output='table';Query OK, 0 rows affected (0.00 sec)mysql> show variables like 'log_output';+---------------+-------+| Variable_name | Value |+---------------+-------+| log_output | TABLE |+---------------+-------+1 row in set (0.01 sec)mysql>
查看查询日志信息。
mysql> select * from mysql.general_log;+---------------------+---------------------------+-----------+-----------+--------------+----------------------------------+| event_time | user_host | thread_id | server_id | command_type | argument |+---------------------+---------------------------+-----------+-----------+--------------+----------------------------------+| 2017-07-06 12:32:05 | root[root] @ localhost [] | 1 | 1 | Query | show variables like 'general%' || 2017-07-06 12:32:28 | root[root] @ localhost [] | 1 | 1 | Query | show variables like 'log_output' || 2017-07-06 12:32:41 | root[root] @ localhost [] | 1 | 1 | Query | select * from MyDB.test || 2017-07-06 12:34:36 | [root] @ localhost [] | 3 | 1 | Connect | root@localhost on || 2017-07-06 12:34:36 | root[root] @ localhost [] | 3 | 1 | Query | KILL QUERY 1 || 2017-07-06 12:34:36 | root[root] @ localhost [] | 3 | 1 | Quit | || 2017-07-06 12:34:51 | root[root] @ localhost [] | 1 | 1 | Query | select * from mysql.general_log |+---------------------+---------------------------+-----------+-----------+--------------+----------------------------------+7 rows in set (0.02 sec)mysql>
MySQL 复制表
如果我们需要完全的复制MySQL的数据表,包括表的结构,索引,默认值等。 如果仅仅使用CREATE TABLE … SELECT** **命令,是无法实现的。 本章节将为大家介绍如何完整的复制MySQL数据表,步骤如下:- 使用 SHOW CREATE TABLE 命令获取创建数据表(CREATE TABLE) 语句,该语句包含了原数据表的结构,索引等。
- 复制以下命令显示的SQL语句,修改数据表名,并执行SQL语句,通过以上命令 将完全的复制数据表结构。
- 如果你想复制表的内容,你就可以使用 INSERT INTO … SELECT 语句来实现。
步骤一:获取数据表的完整结构。
mysql> SHOW CREATE TABLE runoob_tbl \G;*************************** 1. row ***************************Table: runoob_tbl Create Table: CREATE TABLE `runoob_tbl` (`runoob_id` int(11) NOT NULL auto_increment,`runoob_title` varchar(100) NOT NULL default '',`runoob_author` varchar(40) NOT NULL default '',`submission_date` date default NULL,PRIMARY KEY (`runoob_id`),UNIQUE KEY `AUTHOR_INDEX` (`runoob_author`) )ENGINE=InnoDB 1 row in set (0.00 sec)
步骤二:
修改SQL语句的数据表名,并执行SQL语句。
mysql> CREATE TABLE `clone_runoob_tbl` (`runoob_id` int(11) NOT NULL auto_increment,`runoob_title` varchar(100) NOT NULL default '',`runoob_author` varchar(40) NOT NULL default '',`submission_date` date default NULL,PRIMARY KEY (`runoob_id`),UNIQUE KEY `AUTHOR_INDEX` (`runoob_author`) )ENGINE=InnoDB
步骤三:
执行完第二步骤后,你将在数据库中创建新的克隆表 clone_tbl。 如果你想拷贝数据表的数据你可以使用 **INSERT INTO… SELECT** 语句来实现。执行以上步骤后,会完整的复制表的内容,包括表结构及表数据。
mysql> INSERT INTO clone_runoob_tbl (runoob_id,runoob_title,runoob_author,submission_date)SELECT runoob_id,runoob_title,runoob_author,submission_dateFROM runoob_tbl;Query OK, 3 rows affected (0.07 sec) Records: 3 Duplicates: 0 Warnings: 0
