一.錯誤日志
成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計、做網(wǎng)站、察雅網(wǎng)絡(luò)推廣、重慶小程序開發(fā)公司、察雅網(wǎng)絡(luò)營銷、察雅企業(yè)策劃、察雅品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供察雅建站搭建服務(wù),24小時服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
錯誤日志在Mysql數(shù)據(jù)庫中很重要,它記錄著mysqld啟動和停止,以及服務(wù)器在運行過程中發(fā)生的任何錯誤的相關(guān)信息。
1.配置信息
--log-error=[file-name]用來指定錯誤日志存放的位置。
如果沒有指定[file-name],默認(rèn)hostname.err做為文件名,默認(rèn)存放在DATADIR目錄中。
也可以將log-error配置到my.cnf文件中,這樣就省去了每次在啟動mysqld時都手工指定--log-error.例如:
[mysql@test2]$ vi /etc/my.cnf
# The MySQL server
[mysqld]
....
log-error = /var/lib/mysql/test2_mysqld.err
.....
2.錯誤信息樣板
080313 05:21:55 mysqld started
080313 5:21:55 InnoDB: Started; log sequence number 0 43655
080313 5:21:55 [Note] /usr/local/mysql/bin/mysqld: ready for connections.
Version: '5.0.26-standard-log' socket: '/var/lib/mysql/mysql.sock' port: 3306 MySQL Community Edition - Standard (GPL)
080313 5:24:13 [Note] /usr/local/mysql/bin/mysqld: Normal shutdown
080313 5:24:13 InnoDB: Starting shutdown...
080313 5:24:16 InnoDB: Shutdown completed; log sequence number 0 43655
080313 5:24:16 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete
080313 05:24:16 mysqld ended
080313 05:24:47 mysqld started
080313 5:24:47 InnoDB: Started; log sequence number 0 43655
080313 5:24:47 [Note] /usr/local/mysql/bin/mysqld: ready for connections.
Version: '5.0.26-standard-log' socket: '/var/lib/mysql/mysql.sock' port: 3306 MySQL Community Edition - Standard (GPL)
080313 5:33:49 [Note] /usr/local/mysql/bin/mysqld: Normal shutdown
三.查詢?nèi)罩?/p>
查詢?nèi)罩居涗浟薱linet的所有的語句。
Note:由于log日志記錄了數(shù)據(jù)庫所有操作,對于訪問頻繁的系統(tǒng),此種日志會造成性能影響,建議關(guān)閉。
1.配置信息
--log=[file-name]用來指定錯誤日志存放的位置。
如果沒有指定[file-name],默認(rèn)為主機(jī)名(hostname)做為文件名,默認(rèn)存放在DATADIR目錄中。
也可以將log配置到my.cnf文件中,這樣就省去了每次在啟動mysqld時都手工指定--log.例如:
# The MySQL server
[mysqld]
......
#query-log
log = /var/lib/mysql/query_log.log
......
2.讀取查詢?nèi)罩?/p>
查詢?nèi)罩臼羌兾谋靖窨桑梢允褂肙S文本讀取工具直接打開查看。例如:
[mysql@test2]$ tail -n 15 query_log.log
080313 7:58:28 17 Query show tables
080313 8:07:45 17 Quit
080313 10:01:48 18 Connect root@localhost on
080313 10:02:38 18 Query SELECT DATABASE()
18 Init DB test
080313 10:02:42 18 Query show tables
080313 10:03:07 18 Query select * from pet
080313 10:06:26 18 Query insert into pet values('hunter','yxyup','cat','f','1996-04-29',null)
080313 10:06:39 18 Query select * from pet
080313 10:07:13 18 Query update pet set sex='m' where name='hunter'
080313 10:07:38 18 Query delete from pet where name='hunter'
080313 10:13:48 18 Query desc test8
080313 10:14:13 18 Query create table t1(id int,name char(10))
080313 10:14:41 18 Query alter table t1 add sex char(2)
[mysql@test2]$
四.慢查詢?nèi)罩?/p>
慢查詢?nèi)罩臼怯涗浟藞?zhí)行時間超過參數(shù)long_query_time(單位是秒)所設(shè)定值的SQL語句日志。
Note:慢查詢?nèi)罩緦τ谖覀儼l(fā)現(xiàn)性能有問題的SQL有很幫助,建議使用并經(jīng)常分析
1.配置信息
--log-slow-queries=[file-name]用來指定錯誤日志存放的位置。
如果沒有指定[file-name],默認(rèn)為hostname-slow.log做為文件名,默認(rèn)存放在DATADIR目錄中。
也可以將log-slow-queries配置到my.cnf文件中,這樣就省去了每次在啟動mysqld時都手工指定--log-slow-queries.例如:
# The MySQL server
[mysqld]
......
#slow-query-log
log-slow-queries = /var/lib/mysql/slow_query_log.log
......
2.讀取慢查詢?nèi)罩?/p>
[mysql@test2]$ cat slow_query_log.log
/usr/local/mysql/bin/mysqld, Version: 5.0.26-standard-log. started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
# Time: 080313 5:41:46
# User@Host: root[root] @ localhost []
# Query_time: 108 Lock_time: 0 Rows_sent: 0 Rows_examined: 8738
use test;
select count(1) from t1 a, t1 b,t1 c where a.id=b.id and b.name=c.name;
# Time: 080313 5:52:04
# User@Host: root[root] @ localhost []
# Query_time: 583 Lock_time: 0 Rows_sent: 0 Rows_examined: 508521177
select count(1) from t1 a, t1 b where a.id=b.id;
/usr/local/mysql/bin/mysqld, Version: 5.0.26-standard-log. started with:
Tcp port: 3306 Unix socket: /var/lib/mysql/mysql.sock
Time Id Command Argument
# Time: 080313 10:39:59
# User@Host: root[root] @ localhost []
# Query_time: 11 Lock_time: 0 Rows_sent: 4537467 Rows_examined: 4537467
use test;
select id from tail;
如果慢查詢?nèi)罩居涗浐芏嗫梢允褂胢ysqldumpslow進(jìn)行分類匯總
[mysql@test2]$ mysqldumpslow slow_query_log.log
Reading mysql slow query log from slow_query_log.log
Count: 1 Time=583.00s (583s) Lock=0.00s (0s) Rows=0.0 (0), root[root]@localhost
select count(N) from t1 a, t1 b where a.id=b.id
Count: 1 Time=108.00s (108s) Lock=0.00s (0s) Rows=0.0 (0), root[root]@localhost
select count(N) from t1 a, t1 b,t1 c where a.id=b.id and b.name=c.name
Count: 1 Time=11.00s (11s) Lock=0.00s (0s) Rows=4537467.0 (4537467), root[root]@localhost
select id from tail;
mysql有以下幾種日志:
錯誤日志: -log-err
查詢?nèi)罩荆? -log
慢查詢?nèi)罩? -log-slow-queries
更新日志: -log-update
二進(jìn)制日志: -log-bin
在mysql的安裝目錄下,打開my.ini,在后面加上上面的參數(shù),保存后重啟mysql服務(wù)就行了。
例如:
#Enter a name for the binary log. Otherwise a default name will be used.
#log-bin=
#Enter a name for the query log file. Otherwise a default name will be used.
#log=
#Enter a name for the error log file. Otherwise a default name will be used.
log-error=
#Enter a name for the update log file. Otherwise a default name will be used.
#log-update=
查看日至:
1. 首先確認(rèn)你日志是否啟用了
mysqlshow variables like 'log_bin';
如果啟用了,即ON
那日志文件就在mysql的安裝目錄的data目錄下
cat/tail 日志文件名
2. 怎樣知道當(dāng)前的日志
mysql show master status;
3. 查看從某一段時間到某一段時間的日志
mysqlbinlog --start-datetime='2008-01-19 00:00:00'
--stop-datetime='2008-01-30 00:00:00' /var/log/mysql/mysql-bin.000006
mysqllog1.log
估計是你沒有給本地或者遠(yuǎn)程管理員登錄授權(quán)導(dǎo)致無法連接,請按下面的流程更改授權(quán)遠(yuǎn)程mysql訪問 #ps auxgrep mysqld //先查看一下mysql 是否已經(jīng)啟動 #netstat -ant grep 3306 //查看一下端口是否已經(jīng)起來如果已經(jīng)啟動那么,請使用本地登錄(不是遠(yuǎn)程或者交互登錄哦)# mysqld-nt --skip-grant-tables 或者 sudo /usr/sbin/mysqld --skip-grant-tables //ubuntu #/usr/sbin/mysqld --skip-grant-tables //redhat 或者centos 直接管理員進(jìn)入 懂mysql語句的看下面,mysql use mysql mysql select user,host,password from user where user='root'; 、、 mysql update user set host='localhost' where user='root' and host='%';mysqlSET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword'); mysql flush privileges; 舉例:GRANT ALL PRIVILEGES ON phpstudy.* TO 'root'@'192.168.1.3' IDENTIFIED BY '123456' WITH GRANT OPTION; 說明:授權(quán)root 遠(yuǎn)程ip 192.168.1.3 登錄操作 phpstudy.* 所有的操作權(quán)限。 %:通配符代表所有的ip地址。#service mysqld restart 或者重啟linux也可以,之后你連接一下是否可以連上,如果連上mysql的日志一般都有記錄的。
1)怎么查看mysql是否啟用了日志
mysqlshow variables like 'log_bin';
2)怎樣知道當(dāng)前的日志
mysql show master status;
3)如何查看當(dāng)前的二進(jìn)制日志,可以使用mysqlbinlog的的工具,命令如下:
shellmysqlbinlog mail-bin.000001(要寫絕對問題路徑 d://)
或者shellmysqlbinlog mail-bin.000001 | tail
4)mysql有以下幾種日志:
錯誤日志:????
-log-err
查詢?nèi)罩荆????
-log
慢查詢?nèi)罩????
-log-slow-queries
更新日志:?????
-log-update
二進(jìn)制日志:?
-log-bin
在mysql的安裝目錄下,打開my.ini,在后面加上上面的參數(shù),保存后重啟mysql服務(wù)就行了。
例如:
#Enter a name for the error
log file.?? Otherwise a default
name will be used.
log-error=err.log
#Enter a name for the query
log file. Otherwise a default name will be used.
#log=
#Enter a name for the slow
query log file. Otherwise a default name will be used.
#log-slow-queries=
#Enter a name for the update
log file. Otherwise a default name will be used.
#log-update=
#Enter a name for the binary
log. Otherwise a default name will be used.
#log-bin=
上面只開啟了錯誤日志,要開其他的日志就把前面的“#”去掉。
long_query_time =2--
這里設(shè)置慢日志的最大實現(xiàn)是指執(zhí)行超過多久的sql會被log下來,這里是2秒
log-slow-queries=slowqueris.log --將查詢返回較慢的語句進(jìn)行記錄,這里設(shè)置慢日志的名稱
log-queries-not-using-indexes
= nouseindex.log --就是字面意思,log下來沒有使用索引的query
5)下面是配置日志的幾種方式,不一定全都要配置,請根據(jù)自身需求選擇性配置
log=mylog.log
--對所有執(zhí)行語句進(jìn)行記錄
log-error=log-error.log
log=log-query.log
log-queries-not-using-indexes
log-warnings=2
log-slow-queries=log-slow-query.log
log-update=log-update.log
long_query_time=2
MySQL日志在哪
MySQL日志一般保存在/var/log/目錄下,但還需要看具體的配置文件才能確定,具體方法如下:
1、首先登陸 mysql:mysql -u root -p
2、然后查看是否啟用了日志mysqlshow variables like 'log_%';
3、查看當(dāng)前的日志mysql show master status;
4、你需要知道的mysql的日志類型:錯誤日志: -log-err
查詢?nèi)罩荆?-log
慢查詢?nèi)罩? -log-slow-queries
更新日志: -log-update
二進(jìn)制日志: -log-bin
5、修改配置/etc/my.cnf(以下為日志文件保存位置)[mysqld]
log=/var/log/mysqld_common.log
log-error=/var/log/mysqld_err.log
log-bin=/var/log/mysqld_bin.bin
如何查看當(dāng)前的二進(jìn)制日志,可以使用mysqlbinlog的的工具,命令如下:shellmysqlbinlog mail-bin.000001(要寫絕對問題路徑 d://)或者shellmysqlbinlog mail-bin.000001 | tail
4)mysql有以下幾種日志:錯誤日志: -log-err查詢?nèi)罩荆? -log慢查詢?nèi)罩? -log-slow-queries更新日志: -log-update二進(jìn)制日志: -log-bin在mysql的安裝目錄下,打開my.ini,在后面加上上面的參數(shù),保存后重啟mysql服務(wù)就行了。例如:#Enter a name for the errorlog file. Otherwise a defaultname will be used.log-error=err.log#Enter a name for the querylog file. Otherwise a default name will be used.#log=#Enter a name for the slowquery log file. Otherwise a default name will be used.#log-slow-queries=#Enter a name for the updatelog file. Otherwise a default name will be used.#log-update=#Enter a name for the binarylog. Otherwise a default name will be used.#log-bin=上面只開啟了錯誤日志,要開其他的日志就把前面的“#”去掉。
查看mysql日志的方法:
使用BIN目錄下mysqlbinlog命令,如:
Binmysqlbinlog d:/mysql_log/mysql_bin.000001
Binmysqlbinlog d:/mysql_log/mysql_bin.000002
Binmysqlbinlog d:/mysql_log/mysql_bin.000003
Binmysqlbinlog d:/mysql_log/mysql_bin.000004
Binmysqlbinlog d:/mysql_log/mysql_bin.000005
使用SQL語句也可查看mysql創(chuàng)建的二進(jìn)制的文件目錄:
Mysql show master logs; 查看當(dāng)前二進(jìn)制文件狀態(tài):
mysql show master status;