问题描述
Navicat是数据库中比较常用的辅助工具,主要是用来连接数据库,将sql文件导入或者导出,同时比较直观地查询SQL文件,由于是第一次使用,和首次学习MySql,因此遇到在Navicat的使用中遇到一些问题。
在Navicat中如何导入SQL文件就不用多讲了,相信这一步大多数人都会操作,那么导入数据库,首先选择好数据库文件,运行SQL文件即可。在运行的过程中会发现一个问题:
因为这个文件是小组分享的,其他的成员都可以成功运行这个SQL文件,并且不出错,而在我的电脑上的时候,就出现了很多个错误,但是还是很绝望的。我想会不会是编码的问题,于是查找了一些资料,发现无济于事。
针对第一个出现的Error,
[Err] 1005 - Can’t create table kaoshi
.x2_base_school
(errno: 165 “Table is read only”)大概的意思就是无法创建这个表,所引用的这个表只是已读文件,不可以引用。一看到这里,我还以为是引用的约束问题,于是就看数据库的代码。花费了很长的时间之后,我发现根本没有用。其实这是一个错误的思路,希望我的这篇文章可以大家一些启发,好节省各位宝贵的时间。
网上也有很多关于[Err]1005的解决方法,我看了几个小时都没有找到正确的解决办法。最后我猜想,应该是MySQL版本的问题。于是就尝试了一下。
解决办法
其实我的整个项目都是用的PHP来写的,那PHP一起使用的工具,主要是XAMPP和wamp,这里有一个特殊的地方就是,他们都自带了数据库MySQL,因此也不需要再重新打开电脑上独立的MySQL,我一开始用的时候XMAPP的数据库,在Navicat里面连接之后就出现了上面所描述的这个问题;
那后面我把XAMPP的数据库关掉了,打开wamp.
启动服务和数据库之后发现Navicat里面的错误消失了。
那再导入SQL文件成功之后,当地服务器可使用的前提下,网页也顺利打开。