如何移值(恢复、还原)Mysql中的innoDB的数据库。
今天搞了一天,终于搞定了。
对于Mysql有两种模式,MYISAM与INNODB
如果是MYISAM的话,在data目录下里会.frm .myd .myi 三种文件,那么直接把DATA移过去,配置好权限就可以还原了。
如果是INNODB的话,那是相当的烦啊。在data目录下只有.frm(这只是一个数据格式),这个移过去后,是无法还原原始数据的。
真正的数据是正放在data目录下的iddata1里。因此,如果有这个文件,那么还是有希望还原的。
但我试了网上所有的文章,都还是提示“数据库里没有表”。
最后我找到了答案。那就是my.ini的配置文件。里面有一项:
innodb_data_home_dir="C:\Program Files\MySQL\MySQL Server 5.1\data"
只要把上面的地址设为你正确的地址就可以了。
记得重启一下mysql (在CMD里输入net stop mysql,然后net start mysql)就可以了还原了。。。
我花了一天时间发现的问题,希望能对同样遇到问题的朋友有所帮助。
总结,对于Mysql还是默认采用MYISAM的比较好,容易转移。数据库与数据库是分开的,不会混在一起。所以可以在My.ini里设一下默认项:
default-storage-engine=MYISAM
good luck!!
相关文档:
默认情况下Linux内的mysql数据库mysql,user表内的用户权限只是对localhost即本机才能登陆。需要更改权限:
如下的方式确认:
root#mysql -h localhost-u mysql -p
Enter password: ******
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connectio ......
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jee="http://www.springframework.org/schema/jee"
&nbs ......
在DOS中进行MySQL的访问可能乱码的情况有三种,
首先,要做的是检查MySQL的配置,安装的时候选择utf-8的语言环境会省去很多的麻烦
1. 检查MySQL的服务端、客户端的语言设置是否为“utf8”,不是的话手动将my.int更改过来;
2. 在PHP进行第一次mysql_query之前设置使用连接的字符集为"SET N ......
1.在WINDOW下,记录数据的文本文件必须不能以中文命名(命令行界面无法输入中文),且需保存在磁盘根目录下。
2.字段值之间必须要以LOAD DATA命令中指定的分隔符分隔,默认为TAB,否则不识别,造成该字段值为NULL。
3.值为空的字段,在文本文件里可以设为空,也可以设为\N.
4.WINDOW下,不加"LINES TERMINATED BY ' ......