Mysql中用source还原一个.data文件,出现1146错误,很奇怪

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql中用source还原一个.data文件,出现1146错误,很奇怪相关的知识,希望对你有一定的参考价值。

最近在学习php+mysql,
我是根据o'relly公司的一本叫做 <php&mysql web数据库应用开发指南>学的
书中有个案例, 在http://www.webdatabasebook.com/database.zip这里下载解开得到一个名为winestore.data的文件,
然后将其放入到C:\windows\temp中
打开命令行解释器,
mysql> source c:\windows\temp\winestore.data
问题来了,发现1146错误,说表不存在,我很奇怪啊, 都一步步来的,怎么就会出问题,这书挺贵,看起来也很专业的.求解!!!
系统是windows7,环境用的是easyphp
书封面上有个鸭嘴兽,东南大学出版社出版的,定价78块
找到问题了,,是书中用的mysql太老了,
用记事本打看一看,还在用type=,改成engine= 就ok了

参考技术A = = 额。你自己找到问题了呢= =
求送分吧~
囧~哈哈本回答被提问者采纳

mysql备份与还原-mysqldump备份mysql与source还原

以下都以在linux操作系统上的mysql为例

mysqldump备份

mysqldump实际就是将数据库中的数据转化为建库、建表和插入记录的sql语句

1.备份一个数据库 [或其中几个表],不指定表表示备份整个数据库,指定表表示备份指定的表

在系统命令下:mysqldump -u用户 -p密码 库 [表1  表2  表3   …]  > /opt/backname.sql

[[email protected] opt]# mysqldump -uroot -poldboy oldboy student >/opt/studentbak.sql

备份一个库或其中的表时,备份语句中不包含建库语句,因此还原时需要指定数据库

如果备份整个库时加上-B参数,备份语句中会包含建库和切库语句如mysqldump -uroot -poldboy -B oldboy,-B参数不适用于备份表

2.备份多个数据库

在系统命令下:mysqldump -u用户 -p密码 --databases 库1  库2  库3  … > /opt/backname.sql

                      mysqldump -u用户 -p密码 --B 库1  库2  库3  … > /opt/backname.sql

[[email protected] opt]# mysqldump -uroot -poldboy --databases oldboy oldboy_utf8 >/opt/multidbback.sql

3.备份所有数据库

在系统命令下:mysqldump -u用户 -p密码 --all-databases > /opt/backname.sql

[[email protected] opt]# mysqldump -uroot -poldboy --all-databases >/opt/alldbback.sql

参考视频 http://edu.51cto.com/course/808.html

 

备份时可同时对备份的结果通过gzip压缩

mysqldump -uroot -poldboy oldboy student | gzip > /opt/studentbak.sql

 

mysql备份时常用参数

备份时加--compact参数,会在备份结果中省去一些无用信息,简化输出 ,一般在调试时使用,生产上不使用

[[email protected] opt]# mysqldump -uroot -poldboy --compact oldboy > /opt/dbak.sql

备份时加-d参数,只备份表结构,即--no-data

[[email protected] opt]# mysqldump -uroot -poldboy -d oldboy student > /opt/dbak.sql

备份时加-t参数,只备份数据

[[email protected] opt]# mysqldump -uroot -poldboy -t oldboy student > /opt/tbak.sql

备份时加-B参数,备份多个数据库,即--databases

[[email protected] opt]# mysqldump -uroot -poldboy -B --events |gzip > /opt/Abak.sql

备份时加-A参数,备份所有数据库,即--all-databases

[[email protected] opt]# mysqldump -uroot -poldboy -A -B --events |gzip > /opt/Abak.sql

备份时加-F参数,切割bin log,即--flush-logs

[[email protected] opt]# mysqldump -uroot -poldboy -B -F oldboy|gzip > /opt/Abak.sql

备份时加--maste-date=1(或2,1指定logbin日志及位置时不注释,2注释)参数,会在备份结果中指出从哪个binlog开始恢复

[[email protected] opt]# mysqldump -uroot -poldboy --compact --master-data=1 oldboy > /opt/masterbak.sql

备份时加-x参数,锁表

备份时加-l参数,只读锁表

备份时加--events参数,备份数据库事件

备份时加--single-transaction参数适合innoDB事务数据库备份,原理是将本次会话的隔离级别设定为repeatable read,以确保本次会话dump时,不会看到其他会话已经提交了的数据

 

mysql备份还原

1.还原一个数据库,需指定数据库(如果备份时加了-B参数,则不需要指定数据库)

在linux系统下:mysql  -u用户 -p密码 库 < /opt/backname.sql

[[email protected] opt]# mysql -uroot -poldboy oldboy  < /opt/testback.sql

2.还原多个数据库:mysql  -u用户 -p密码 < /opt/backname.sql

mysql -uroot -poldboy < /opt/twodbback.sql

 

source还原

在数据库下:source 备份路径及文件名

Mysql>source /opt/oldboyB.sql

如果备份文件中不包含建库语句,则需先通过use切换到对应的库,再source还原

 

生产场景备份参数使用

myisam:mysqldump -uroot -poldboy -A -B -x --master-data=1 --events|gzip > /opt/all.sql.gz(混合引擎备份,以myisam为主)

 innodb:mysqldump -uroot -poldboy -A -B --master-data=1 --single-transaction --events|gzip > /opt/all.sql.gz

5.5.35以前默认是myisam引擎,5.5.35以后默认是innodb,现在推荐使用innodb方式备份

 

以上是关于Mysql中用source还原一个.data文件,出现1146错误,很奇怪的主要内容,如果未能解决你的问题,请参考以下文章

mysql用source命令导入.sql

mysql备份与还原-mysqldump备份mysql与source还原

怎么备份和还原mysql数据库

MySQL如何备份与还原

navicat for mysql 导出数据的坑

mysql数据库备份与还原