MySQL命令行功能非常强大,甚至可以进行数据库的备份,下面为您介绍的MySQL命令行就用于备份数据库,希望对您有所帮助。
注意,mysqldump命令在DOS的 mysql\bin 目录下执行,不能在mysql环境下执行,因此,不能以分号“;”结尾。若已登录mysql,请运行退出命令mysql> exit
1.MySQL命令行导出整个数据库
导出文件默认是存在mysql\bin目录下
mysqldump -u用户名 -p密码 数据库名 > 导出的文件名
mysqldump -uroot -p123456 database_name > outfile_name.sql
2.MySQL命令行导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u user_name -p database_name table_name > outfile_name.sql
3.MySQL命令行导出一个数据库结构
mysqldump -u user_name -p -d –add-drop-table database_name > outfile_name.sql
-d 没有数据 –add-drop-table 在每个create语句之前增加一个drop table
4.带语言参数导出
mysqldump -uroot -p –default-character-set=latin1 –set-charset=gbk –skip-opt database_name > outfile_name.sql
导入数据库,常用source 命令
#进入mysql数据库控制台,mysql -u root -pmysql>use 数据库mysql>set names utf8; (先确认编码,如果不设置可能会出现乱码,注意不是UTF-8) #然后使用source命令,后面参数为脚本文件(如这里用到的.sql)mysql>source d:\wcnc_db.sql
参考文献:
http://www.cr173.com/html/18961_1.html
http://database.51cto.com/art/201010/229531.htm
如果mysqldump备份数据库时出现when using LOCK TABLES
用mysqldump备份数据库时,如果出现when using LOCK TABLES,解决办法是加上 --skip-lock-tables
例如:
用mysqldump备份数据库时出现
29: File './sq_ziyou/uc_applications.MYD'not found (Errcode: 24) when using LOCKTABLES
在数据库名后加--skip-lock-tables即可。
即备份数据库命令为:
/命令目录/mysqldump -u 用户名 -p 数据库名称 --skip-lock-tables > ***.sql
或者
/命令目录/mysqldump -u 用户名 -p --skip-lock-tables 数据库名称> ***.sql
或者
导出 mysqldump
/命令目录/mysqldump -h 线上数据库IP -P 线上数据库端口 -u 用户名 -p --skip-lock-tables 数据库名称>db.sql
如果还提示某表被损坏了,需要先修复,
那么就直接复制data目录(一般如果数据库已经损坏都无法通过mysqldump备份了)