bitsCN.com
MySQL日志文件
一、
MySQL有不同类型的日志文件,从它们当中可以查询到MYSQL都做了什么,对于MYSQL的管理是不可或缺的。
1、错误日志(The error log):记录数据库启动、运行以及停止过程中错误信息;
--log-error=[file-name]用来指定错误日志存放的位置。
如果没有指定[file-name],默认hostname.err做为文件名,默认存放在DATADIR目录中。
错误日志文件的格式:
时间 [错误级别] 错误信息
MySQL客户端可以通过下列方法来获取错误日志的详细位置:
1. mysql> show variables like 'log_error';
2. +---------------+-------------------------------------------+
3. | Variable_name | Value |
4. +---------------+-------------------------------------------+
5. | log_error | /usr/local/mysql/var/51ososdb.err |
6. +---------------+-------------------------------------------+
7. 1 row in set (0.00 sec)
通过命令show variables like 'log_error'; 可以得到log_error变量的值,即是错误日志文件的详细位置。
错误日志文件的记录级别:
错误日志有3个level:error、warning 和information。我使用的是mysql-5.1.51,安装在/usr/local/mysql下。
在/usr/local/mysql/include/my_sys.h中
#cat my_sys.h你会发现下面的定义
enum loglevel {
ERROR_LEVEL, //错误级别
WARNING_LEVEL, //警告级别
INFORMATION_LEVEL //信息级别
};
下面是一个错误日志样版:
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)
2、ISAM(索引顺序访问方法)操作日志(The isam log):记录所有对ISAM表的修改,该日志仅仅用于调试ISAM模式;
3、SQL执行日志(the query log):记录了客户端的连接以及所执行的SQL语句;
4、更新日志(the update log):记录了改变数据的语句,已经不建议使用,由二进制日志替代;
5、二进制日志(the binary log):记录了所有对数据库数据的修改语句;
6、超时日志(the slow log):记录所有执行时间超过最大SQL执行时间(long_query_time)或未使用索引的语句;
如果你是在用mysql的复制、备份功能,那么服务器还提供一个叫做relay log的日志文件;
二、
默认情况下所有日志文件会记录在MYSQL的数据目录下,你可以通过强制mysql去关闭并重新打开一个文件进行日志记录,系统会自动加后缀(如.00001),方式有在mysql环境下执行语句mysql>flush logs;或者通过mysqladmin管理程序执行#mysqladmin flush-logs或#mysqladmin refresh
这些日志的启动方式可以在mysql_safe方式启动数据库的时候,后面跟选项参数,也可以在配置文件里配置,推荐采用第二种方式,配置方法很简单。
我只配置了三种日志:
[mysqld]
log=/var/log/mysqld_common.log
log-error=/var/log/mysqld_err.log
log-bin=/var/log/mysqld_bin.bin
日志的查看很简单,大部分都是文本,直接用vim、less、more之类的工具看就可以了,值得说明的是二进制文件的查看:
1). 首先确定是否开启了二进制文件记录功能
mysql>show variables like 'log_bin';
2). 如果你想知道现在记录二进制数据的文件具体信息,你可以通过下列语句看到现在正在记录哪个文件,以及记录的当前位置:
mysql>show master status;
3). 查看二进制数据需要借助程序mysqlbinlog,看看它支持哪些选项,根据自己需要来使用。
mysql>mysqlbinlog /var/log/mysql/mysql-bin.000040;
4)查询某个时间范围的可以执行下列语句,如果记录很多可以将结果定向到一个文件里自己慢慢看:-) :
mysql>mysqlbinlog --start-datetime='2008-01-01 00:00:00' --stop-datetime='2008-08-08 00:00:00' /var/log/mysql/mysql-bin.000040 > ./tmp.log
bitsCN.com

mysql'sblobissuitable forstoringbinarydatawithinarationaldatabase、whileenosqloptionslikemongodb、redis、andcassandraofferferulesions forunstructureddata.blobissimplerbutcanslowdowdowd withwithdata

toaddauserinmysql、使用:createuser'username '@' host'identifidedby'password '; here'showtodoitsely:1)chosehostcarefilytoconを選択しますTrolaccess.2)setResourcelimitslikemax_queries_per_hour.3)usestrong、uniquasswords.4)endforcessl/tlsconnectionswith

toavoidcommonMonmistakeswithStringDatatypesinmysql、undultingStringTypenuste、choosetherightType、andManageEncodingandCollationsEttingtingive.1)Usecharforfixed-LengthStrings、Varcharforaible Length、AndText/Blobforlardata.2)setCurrectCherts

mysqloffersechar、varchar、Text、anddenumforstringdata.usecharforfixed-lengthstrings、varcharerforvariable-length、text forlarger text、andenumforenforcingdataantegritywithaetofvalues。

MySQLBlob要求の最適化は、次の戦略を通じて実行できます。1。ブロブクエリの頻度を減らす、独立した要求の使用、または読み込みの遅延。 2。適切なブロブタイプ(TinyBlobなど)を選択します。 3。ブロブデータを別々のテーブルに分離します。 4.アプリケーションレイヤーでBLOBデータを圧縮します。 5.ブロブメタデータをインデックスします。これらの方法は、実際のアプリケーションでの監視、キャッシュ、データシェルディングを組み合わせることにより、パフォーマンスを効果的に改善できます。

MySQLユーザーを追加する方法を習得することは、データベース管理者と開発者にとって重要です。これは、データベースのセキュリティとアクセス制御を保証するためです。 1)CreateUserコマンドを使用して新しいユーザーを作成し、2)付与コマンドを介してアクセス許可を割り当て、3)FlushPrivilegesを使用してアクセス許可を有効にすることを確認します。

choosecharforfixed-lengthdata、varcharforvariable-lengthdata、andtextforlargetextfields.1)chariseffienceforconsistent-lengthdatalikecodes.2)varcharsuitsvariaible-lengthdatalikenames、balancingflexibilityandperformance.3)Textisidealforforforforforforforforforforforidex

MySQLの文字列データ型とインデックスを処理するためのベストプラクティスには、次のものが含まれます。1)固定長のchar、可変長さのvarchar、大規模なテキストのテキストなどの適切な文字列タイプを選択します。 2)インデックス作成に慎重になり、インデックスを避け、一般的なクエリのインデックスを作成します。 3)プレフィックスインデックスとフルテキストインデックスを使用して、長い文字列検索を最適化します。 4)インデックスを定期的に監視および最適化して、インデックスを小さく効率的に保つ。これらの方法により、読み取りと書き込みのパフォーマンスをバランスさせ、データベースの効率を改善できます。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ドリームウィーバー CS6
ビジュアル Web 開発ツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SublimeText3 中国語版
中国語版、とても使いやすい

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。
