1.备份工具
mysqldump 客户端和服务器端都能用
select outfile 只能写到服务器端
2.按表单位备份
a.单个表备份
mysqldump -uusername -p database table1 >tableback.sql mysql> select * into outfile 'D:\someBookes\mysql\pracitce\mysql_user.sql' fields terminated by ',' -> optionally enclosed by '"' escaped by '#' -> lines terminated by '\n' from user; Query OK, 7 rows affected (0.07 sec) mysql> exit Bye
小插曲:windows操作系统的下反斜杠会被忽略,文件直接创建到D盘的根目录了。用正斜杆才能创建到对应的目录,如下:
mysql> use mysql; Database changed mysql> select * into outfile 'D:/someBookes/mysql/pracitce/mysql_user.sql' fields terminated by ',' -> optionally enclosed by '"' escaped by '#' -> lines terminated by '\n' from user; Query OK, 7 rows affected (0.00 sec) mysql>
这样只能将数据导出到服务器端,如何将数据写入客户端呢?只能包装下SQL 写到客户端
mysql -h192.168.1.119 -uroot -ppasswd -e"select * from std.ygxxwh_b0;" > D:/someBookes/mysql/pracitce/stdd.sql
b.多个表备份
mysqldump -uusername -p database table1 table2 >tablesback.sql
3.按数据库单位备份
a.备份单个数据库
mysqldump -uusername -p --database database1 >databaseback.sql
b.备份多个数据库
mysqldump -uusername -p --database database1 database2 >databasesback.sql
4.mysqldump常用参数
--add-drop-database Add a Drop database before each create.
--add-drop-table Add a Drop table before each create.(默认开启)
--hex-blob Dump binary strings (BINARY,VARBINARY,BLOB) in hexadecimal format.
--no-data 只导出表结构
--single-transaction Create a consistent snapshot by dumping all tables in a single transaction.Works only for tables stored in storage engines which support multiversioning(INNODB).
5.恢复工具
由于Mysql的备份都是以SQL的形式生成的,运行备份的脚本即可。
6.Mysql的日志文件系统的组成
a.错误日志:记录启动、运行或停止是Mysql出现的问题。
b.通用日志:记录建立的客户端连接和执行的SQL语句。
c.二进制日志:记录所有更改数据的语句。还用于复制。
d.慢查询日志:记录所有执行时间超过long_query_time秒的所有查询或不使用索引的查询。
e.Innodb日志:innodb redo log
缺省情况下所有日志创建于mysql数据目录中
可以通过刷新日志来强制Mysqld关闭和重新打开日志文件
执行flush logs 或者 mysqladmin flush-logs 或 mysqladmin refresh 时,日志被老化。