进入mysql的bin目录下
导出任意一张表
./mysqldump -h xxx.xxx.xxx.xxx -P xxxxx -uusername -p --skip-lock-tables databasesname tablename > tablename.sql
--skip-lock-tables的作用是,如果表被锁住了,依然执行导出动作
导出整个数据库
./mysqldump -h xxx.xxx.xxx.xxx -P xxxxx -uusername -p --skip-lock-tables databasesname > databasename.sql
导出所有表的结构
./mysqldump -h xxx.xxx.xxx.xxx -P xxxxx -uusername -p -d --skip-lock-tables databasesname > databasename.sql
-d表示不到处数据
导出某张表的结构
./mysqldump -h xxx.xxx.xxx.xxx -P xxxxx -uusername -p -d --skip-lock-tables databasesname tablename > tablename.sql
但是这样导出的数据比较奇葩,他把几千行的数据放在一行里导出,而不是一行一行的导出,这一点我不太明白。
尤其是在把数据一键导入时遇到了困难
有篇参考链接,里面参数很多,感觉还行,具体没调研
http://www.jb51.net/article/52946.htm
补充:我在用mysqldump导出数据后,想用navicat导入,发现一个insert语句里面包含上千个插入,用navicat的sql导入功能失败
在老司机的提示下,用source导入试了下,完美解决!因此在数据库的导入导出操作时应该保持一致,命令行导出就命令行导入