国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

MySQL中開啟和使用通用查詢?nèi)罩镜膶?shí)例教程

2024-07-24 13:08:38
字體:
供稿:網(wǎng)友
這篇文章主要介紹了MySQL中開啟和使用通用查詢?nèi)罩镜膶?shí)例教程,包括其備份和關(guān)閉等基礎(chǔ)操作的例子講解,需要的朋友可以參考下
 

開啟通用查詢?nèi)罩?/strong>
因?yàn)闉榱诵阅芸紤],一般通用查詢?nèi)罩緂eneral log不會(huì)開啟。slow log可以定位一些有性能問題的sql,而general log會(huì)記錄所有的SQL。

mysql5.0版本,如果要開啟slow log、general log,需要重啟,從MySQL5.1.6版開始,general query log和slow query log開始支持寫到文件或者數(shù)據(jù)庫表兩種方式,并且日志的開啟,輸出方式的修改,都可以在Global級(jí)別動(dòng)態(tài)修改。

mysql>select version();
+————+| version() |+————+| 5.1.37-log |+————+1 row in set (0.02 sec)

設(shè)置日志輸出方式為文件(如果設(shè)置log_output=table的話,則日志結(jié)果會(huì)記錄到名為gengera_log的表中,這表的默認(rèn)引擎都是CSV):

mysql>set global log_output=file;
Query OK, 0 rows affected (0.00 sec)

設(shè)置general log的日志文件路徑:

mysql>set global general_log_file='/tmp/general.log';
Query OK, 0 rows affected (0.00 sec)

 開啟general log:

mysql>set global general_log=on;
Query OK, 0 rows affected (0.02 sec)

過一段時(shí)間后,關(guān)閉general log:

mysql>set global general_log=off;
Query OK, 0 rows affected (0.02 sec)

通用查詢?nèi)罩镜南到y(tǒng)變量

log_output=[none|file|table|file,table] #通用查詢?nèi)罩据敵龈袷?/pre>	
general_log=[on|off]      #是否啟用通用查詢?nèi)罩緂eneral_log_file[=filename]    #通用查詢?nèi)罩疚恢眉懊?/pre>	

通用查詢?nèi)罩镜膫浞?/strong>

在Linux或Unix中,你可以通過下面的命令重新命名文件

并創(chuàng)建一個(gè)新文件:

shell> mv hostname.log hostname-old.logshell> mysqladmin flush-logsshell> cp hostname-old.log to-backup-directoryshell> rm hostname-old.log

在Windows中,服務(wù)器打開日志文件期間不能重新命名日志文件。必須先停止服務(wù)器然后重新命名日志文件。然后重啟服務(wù)器來創(chuàng)建新日志文件。

演示通用查詢?nèi)罩镜氖褂?/strong>

a、啟用通用查詢?nèi)罩?/strong>

--演示環(huán)境root@localhost[(none)]> show variables like '%version%';
+-------------------------+------------------------------+| Variable_name  | Value  |+-------------------------+------------------------------+| innodb_version | 5.5.39  || protocol_version | 10   || slave_type_conversions |   || version  | 5.5.39-log  || version_comment | MySQL Community Server (GPL) || version_compile_machine | x86_64  || version_compile_os | Linux  |+-------------------------+------------------------------+
--查看系統(tǒng)變量root@localhost[(none)]> show variables like '%general%';
+------------------+----------------------------+| Variable_name | Value  |+------------------+----------------------------+| general_log | OFF  || general_log_file | /var/lib/mysql/suse11b.log |+------------------+----------------------------+
--查看當(dāng)前的通用日志,顯示無日志文件root@localhost[(none)]> system ls /var/lib/mysql/suse11b.log 
ls: cannot access /var/lib/mysql/suse11b.log: No such file or directory
--設(shè)置變量general_log以開啟通用查詢?nèi)罩緍oot@localhost[(none)]> set @@global.general_log=1;
Query OK, 0 rows affected (0.00 sec)
--再次查看通用日志文件已存在root@localhost[(none)]> system ls /var/lib/mysql/suse11b.log /var/lib/mysql/suse11b.logroot@localhost[(none)]> select * from tempdb.tb1; --執(zhí)行查詢
+------+------+| id | val |+------+------+| 1 | jack |+------+------+
--查看通用日志文件內(nèi)容root@localhost[(none)]> system more /var/lib/mysql/suse11b.log/usr/sbin/mysqld, Version: 5.5.39-log (MySQL Community Server (GPL)). started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sockTime  Id Command Argument141003 16:18:12 4 Query show variables like '%general%'141003 16:18:55 4 Query select * from tempdb.tb1


b、更改通用查詢?nèi)罩疚恢?/strong>

root@localhost[(none)]> exit
Byesuse11b:~ # service mysql stopShutting down MySQL...   donesuse11b:~ # mysqld --general_log_file=/tmp/suse11b.log --user=mysql &[1] 47009suse11b:~ # ps -ef|grep mysql|grep -v grepmysql 47009 44514 1 16:22 pts/0 00:00:00 mysqld --general_log_file=/tmp/suse11b.log --user=mysqlroot 47053 44514 0 16:22 pts/0 00:00:00 grep mysqlsuse11b:~ # mysql
root@localhost[(none)]> system ls /tmp/suse11b.log
ls: cannot access /tmp/suse11b.log: No such file or directory
root@localhost[(none)]> show variables like '%gener%';
+------------------+------------------+| Variable_name | Value |+------------------+------------------+| general_log | OFF  || general_log_file | /tmp/suse11b.log |+------------------+------------------+
root@localhost[(none)]> set global general_log=on;
Query OK, 0 rows affected (0.01 sec)
--此時(shí)從系統(tǒng)變量看出,通用日志已經(jīng)到/tmp目錄下root@localhost[(none)]> show variables like '%gener%';
+------------------+------------------+| Variable_name | Value |+------------------+------------------+| general_log | ON  || general_log_file | /tmp/suse11b.log |+------------------+------------------+
--發(fā)布查詢r(jià)oot@localhost[(none)]> select count(*) from tempdb.tb1;
+----------+| count(*) |+----------+| 1 |+----------+
--查看通用日志文件內(nèi)容root@localhost[(none)]> system more /tmp/suse11b.log
mysqld, Version: 5.5.39-log (MySQL Community Server (GPL)). started with:Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sockTime  Id Command Argument141003 16:30:03 1 Query show variables like '%gener%'141003 16:30:09 1 Query select count(*) from tempdb.tb1


c、通用查詢?nèi)罩据敵龇绞?/strong>

--可以輸出為文件,表以及不輸出,即TABLE,F(xiàn)ILE,NONE--系統(tǒng)變量log_outputroot@localhost[(none)]> show variables like 'log_output';
+---------------+-------+| Variable_name | Value |+---------------+-------+| log_output | FILE |+---------------+-------+
--下面修改為輸出為表方式root@localhost[(none)]> set global log_output='TABLE';
Query OK, 0 rows affected (0.00 sec)
root@localhost[(none)]> show variables like 'log_output';
+---------------+-------+| Variable_name | Value |+---------------+-------+| log_output | TABLE |+---------------+-------+
--發(fā)布查詢r(jià)oot@localhost[(none)]> select * from tempdb.tb1;
+------+------+| id | val |+------+------+| 1 | jack |+------+------+
root@localhost[(none)]> system more /tmp/suse11b.log
mysqld, Version: 5.5.39-log (MySQL Community Server (GPL)). started with:Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sockTime  Id Command Argument141003 16:30:03 1 Query show variables like '%gener%'141003 16:30:09 1 Query select count(*) from tempdb.tb1141003 16:31:00 1 Query show variables like 'log_output'141003 17:00:48 1 Query set global log_output='TABLE' #通用查詢?nèi)罩据敵龅轿募H僅記錄到全局變量的修改
--mysql.general_log記錄了通用查詢?nèi)罩镜男畔oot@localhost[(none)]> desc mysql.general_log;
+--------------+------------------+------+-----+-------------------+-----------------------------+| Field | Type | Null | Key | Default  | Extra  |+--------------+------------------+------+-----+-------------------+-----------------------------+| event_time | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP || user_host | mediumtext | NO | | NULL  |  || thread_id | int(11) | NO | | NULL  |  || server_id | int(10) unsigned | NO | | NULL  |  || command_type | varchar(64) | NO | | NULL  |  || argument | mediumtext | NO | | NULL  |  |+--------------+------------------+------+-----+-------------------+-----------------------------+
--從通用查詢?nèi)罩颈砝锊榭赐ㄓ貌樵內(nèi)罩镜膬?nèi)容root@localhost[(none)]> select thread_id,command_type,argument from mysql.general_log; 
+-----------+--------------+---------------------------------------------------------------+| thread_id | command_type | argument    |+-----------+--------------+---------------------------------------------------------------+| 1 | Query | show variables like 'log_output'   || 1 | Query | select * from tempdb.tb1   || 1 | Query | desc mysql.general_log   || 1 | Query | select thread_id,command_type,argument from mysql.general_log |+-----------+--------------+---------------------------------------------------------------+
root@localhost[(none)]> show variables like 'log_output';
+---------------+-------+| Variable_name | Value |+---------------+-------+| log_output | TABLE |+---------------+-------+
--使用FILE,TABLE 2者混合輸出通用日志root@localhost[(none)]> set global log_output='file,table';
Query OK, 0 rows affected (0.00 sec)
root@localhost[(none)]> select @@global.log_output;
+---------------------+| @@global.log_output |+---------------------+| FILE,TABLE |+---------------------+
root@localhost[(none)]> insert into tempdb.tb1 values(2,'robinson');
Query OK, 1 row affected (0.06 sec)
root@localhost[(none)]> commit;
Query OK, 0 rows affected (0.01 sec)
--驗(yàn)證結(jié)果,表和文件里邊存在通用的日志記錄root@localhost[(none)]> system tail /tmp/suse11b.log|grep robinson
141003 17:41:54 2 Query insert into tempdb.tb1 values(2,'robinson')
root@localhost[(none)]> select thread_id,command_type,argument from mysql.general_log -> where argument like '%robinson%';
+-----------+--------------+------------------------------------------------------------------------+| thread_id | command_type | argument     |+-----------+--------------+------------------------------------------------------------------------+| 2 | Query | insert into tempdb.tb1 values(2,'robinson')  || 2 | Query | select thread_id,command_type,argument from mysql.general_log ||  |  | where argument like ''robinson''   | +-----------+--------------+------------------------------------------------------------------------+


d、關(guān)閉通用查詢?nèi)罩?/strong>

--可以通過設(shè)置系統(tǒng)變量general_log來關(guān)閉通用查詢?nèi)罩荆藭r(shí)日志輸出設(shè)置為FILE,TABLEroot@localhost[(none)]> show variables like 'log_output';
+---------------+------------+| Variable_name | Value |+---------------+------------+| log_output | FILE,TABLE |+---------------+------------+
root@localhost[(none)]> set global general_log=off;
Query OK, 0 rows affected (0.01 sec)
root@localhost[(none)]> show variables like '%gener%';
+------------------+------------------+| Variable_name | Value |+------------------+------------------+| general_log | OFF  || general_log_file | /tmp/suse11b.log |+------------------+------------------+
root@localhost[(none)]> delete from tempdb.tb1 where id=2;
Query OK, 1 row affected (0.12 sec)
root@localhost[(none)]> commit;
Query OK, 0 rows affected (0.00 sec)
root@localhost[(none)]> system tail -n 1 /tmp/suse11b.log
141003 17:45:13 2 Query set global general_log=off
root@localhost[(none)]> select thread_id,command_type,argument from mysql.general_log -> where argument like '%delete%';
Empty set (0.00 sec)

--從上面的演示可知,盡管我們?cè)O(shè)置了log_output為FILE,TABLE,但general_log為OFF,通用日志無任何記錄產(chǎn)生

root@localhost[(none)]> set global log_output=none;
Query OK, 0 rows affected (0.00 sec)
root@localhost[(none)]> set global general_log=1;
Query OK, 0 rows affected (0.00 sec)
root@localhost[(none)]> truncate table tempdb.tb1;
Query OK, 0 rows affected (0.01 sec)
root@localhost[(none)]> system tail -n 1 /tmp/suse11b.log
Time  Id Command Argument--通過上面的演示,在log_output=none,general_log=on的清下下無任何通用日志輸出。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到MYSQL教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 丹寨县| 衡山县| 司法| 浦江县| 烟台市| 苍山县| 泗洪县| 额济纳旗| 澎湖县| 信丰县| 望城县| 平南县| 海淀区| 聂拉木县| 商洛市| 曲松县| 合水县| 玉屏| 镇远县| 岐山县| 西宁市| 翁牛特旗| 台南市| 沙洋县| 台湾省| 通许县| 东乌| 阿克苏市| 鄂托克旗| 抚松县| 即墨市| 邹城市| 平凉市| 元氏县| 大方县| 松潘县| 卓资县| 旺苍县| 灌阳县| 久治县| 景泰县|