2.1mysql物理文件组成
2.1.1日志文件:
1,查看mysql配置文件:mysql --verbose --help | grep -A 1 'Default options';
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,而仅仅记录针对指定数据库执行的 query
--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