今天遇到一个mysql数据库内容导出问题,顺便记录一下,下次说不定可以用上。
背景:从远程服务器上的mysql数据库备份数据到本地,然后导入到本地数据库.本地是windows环境。
首先,查询相关命令(本人是边用边查,记性太差),可以使用 mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql。然后我在命令行输入 上面的命令,备份到C盘下,比如,随便写个例子:
mysqldump -h9.111.111.111 -uroot -proot1 mydata> C:\mydata.sql
这时在C盘出现了mydata.sql文件,兴高采烈导入本地数据库,用到的命令是:
mysql -hlocalhost -uroot -pmypass < C:\mydata.sql
连上数据库,发现数据进去了,以为就可以了,结果。。。
远程数据库还有存储过程,所以导出的不够,继续查命令:mysqldump -hhostname -uusername -ppassword -ntd -R databasename > backupflie.sql ,然后我再打上:
mysqldump -h9.111.111.111 -uroot -proot1 -ntd -R mydata > C:\mydata.sql
删除刚才导入本地的数据库,重新导入,才发现,只有存储过程,函数和结构,木有数据。
那继续找:
mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines --default-character-set=utf8 --lock-all-tables --add-drop-database -A > db.all.sql
default-character-set=utf8 --lock-all-tables --add-drop-database -A > db.all.sql
应用这一句,算是解决了问题。
这里有个网址,是别人的博客,数据导入导出写的很不错,我弄上链接,向作者学习~~