2.1mysql物理文件組成mysql
2.1.1日誌文件:web
1,查看mysql配置文件:mysql --verbose --help | grep -A 1 'Default options';sql
1,錯誤日誌:--log-error[=file_name] 指定錯誤日誌位置數據庫
2,二進制日誌:安全
--log-bin[=file_name] 若是未指定file_name默認在數據目錄下mysql-bin.****服務器
--max_binlog_size:設置 binlog 的最大存儲上限,當日志達到該上限時,MySQL 會 從新建立一個日誌開始繼續記錄。不過偶爾也有超出該設置的 binlog 產生,通常都是由於 在即將達到上限時,產生了一個較大的事務,爲了保證事務安全,MySQL 不會將同一個事務分開記錄到兩個 binlog 中。架構
--binlog-do-db=db_name:參數明確告訴 MySQL,須要對某個(db_name)數據庫記 錄 binlog,若是有了 「--binlog-do-db=db_name」參數的顯式指定, MySQL 會忽略針對其餘 數據庫執行的 query,而僅僅記錄針對指定數據庫執行的 querysocket
--binlog-ignore-db=db_name:與「--binlog-do-db=db_name」徹底相反,它顯式指 定忽略某個(db_name)數據庫的 binlog 記錄,當指定了這個參數以後,MySQL 會記錄指定 數據庫之外全部的數據庫的 binlog。工具
注意:上面兩個參數只的是user dbname,而不是查詢時候的sql語句優化
3,查詢日誌:query log --log[=file_name]來打開該功能 配置文件:
會記錄全部query,因此體積很大,特殊要求時候開啓
4,慢查詢日誌:--log-slow-queries[=file_name]
5,慢查詢日誌分析工具:mysqlslowdump
-s t | 按總query time排序 | -s at | 按平均query time排序 |
-s l | 按總locktime排序 | -s al | 按平均lock time排序 |
-s s | 按總row send排序 | -s as | 按平均row send排序 |
-s c | 按count排序 | -- | -- |
2.1.2數據文件
1,.frm文件:與表相關的元數據信息都存放在此文件中,包括表結構的定義信息等。每種存儲引擎都有此文件
2,.MYD:文件是 MyISAM 存儲引擎專用,存放 MyISAM 表的數據。每個 MyISAM 表都會 有一個 「.MYD」文件與之對應,一樣存放於所屬數據庫的文件夾下,和 「.frm」文件在一塊兒
3,.MYI:文件也是專屬於 MyISAM 存儲引擎的,主要存放 MyISAM 表的索引相關信息。 對 於 MyISAM 存儲來講,能夠被 cache 的內容主要就是來於「.MYI」文件中。每個 MyISAM 表對應一個「.MYI」文件,存放於位置和「.frm」以及「.MYD」同樣。
2.1.3Replication相關文件:
1,master.info文件
2,relay log 和 relay log index
3,relay-log.info文件
2.1.4其它文件:
1,system config file /etc/my.cnf
2,pid file 3,socket file
2.2Mysql server 系統架構:
2.2.1邏輯模塊組成
2.3 MySQL自帶工具使用
1,mysql
1,mysql --help
//恢復用這個語句就行了。
2, mysql -uroot -p watch07 < D:/mysql.bak.20140724 --default-character-set=utf8
2,mysqladmin
1,mysqladmin -u sky -ppwd -h localhost ping
2,mysqladmin -u sky -ppwd -h localhost status
3,查看服務器當前連接線程信息:
3,mysqldump:
mysqldump [OPTIONS] database [tables]
mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3]...
mysqldump [OPTIONS] --all-databases [OPTIONS]
1》myisam 引擎,能夠直接拷貝數據表。
2》mysqldump:數據導出爲SQL語句
3》select * from table1 into outfile '/tmp/table1.txt';
4》恢復:load data infile '/tmp/table1.txt' into table table1;
4,mysqlimport
mysqlimport [OPTIONS] database textfile ...
mysqlimport 程序是一個將以特定格式存放的文本數據(如經過「select * into OUTFILE from ...」所生成的數據文件)導入到指定的 MySQL Server 中的工具程序,好比 將一個標準的 csv 文件導入到某指定數據庫的指定表中。mysqlimport 工具實際上也只是 「load data infile」命令的一個包裝實現。
5,mysqlbinlog
mysqlbinlog [OPTIONS] log-files
6,mysqlcheck:
mysqlcheck [OPTIONS] database [tables]
mysqlcheck [OPTIONS] --databases DB1 [DB2 DB3...]
mysqlcheck [OPTIONS] --all-databases
mysqlcheck 工具程序能夠檢查(check),修復( repair),分析( analyze)和優化 (optimize)MySQL Server 中的表,但並非全部的存儲引擎都支持這裏全部的四個功能, 像 Innodb 就不支持修復功能。實際上, mysqlcheck 程序的這四個功能均可以經過 mysql 連 接登陸到 MySQL Server 以後來執行相應命令完成徹底相同的任務。
7,myisamchk:myisamchk [OPTIONS] tables[.MYI]
8,myisampack
9,mysqlhotcopy