一直没怎么用过mysql数据库, 今天用mysqldump备份了一下表结构, 记录一下遇到的问题mysql
1. mysqldump默认导出没有事务和存储过程, 若是想导出这些能够用 -E 和 -R[--routines Dump stored routines (functions and procedures)]sql
2. mysqldump默认导出表中是带着触发器的, 不要触发器能够用--skip-triggers数据库
3. 默认导出是连数据一起导出,不要数据能够用(-d, --no-data)服务器
mysqldump --host=${source_ip} --user=${user} --password=${passwd} \ --no-data --databases ${database} --table ${table} -R -E >/tmp/${table}.sql
4. 从本地导入数据spa
mysql --user=${user} --password=${passwd} --host=${mysql_ip} ${database} --default-character-set=utf8 <<EOF LOAD DATA LOCAL INFILE '${file}' INTO TABLE ${table} FIELDS TERMINATED BY ',';
5. 从target服务器上导入数据code
mysql --user=${user} --password=${passwd} --host="172.0.0.1" ${database} --default-character-set=utf8 <<EOF LOAD DATA INFILE '${file}' INTO TABLE ${table} FIELDS TERMINATED BY ',';
数据库和数据在同一台服务器
6. mysql的注释blog
mysql的注释有4 种 :
“#” : # 开头到行尾的都为注释,只能注释一行
“-- ” (2个减号 一个空格) : -- 开头到行尾都为注释 , 只能注释一行
“/* xxx */" : 能够注释多行,可是必定要闭合,否则出错
”/*! 数字 代码 */" : 能够跨行注释,可是必定要闭合,否则出错。
其中 , ”/*! 数字 代码 */" 是有特殊含义的
例如: /*!40101 SET NAMES gbk */; 表明的是 若是mysql 版本大于4.0.1.01 ,就执行后面的 set names gbk 这句代码。
这就有一个好处,这样就能够把mysql 特有的功能用这种注释,给注释掉,对于非mysql数据库能够正常运行,不须要修改,
而对于mysql 数据库,就能够利用这些特性。事务