我想从PHPMyAdmin(或MySQl Workbench)导出数据库并将其导入SQLite数据库,这样我就可以进行本地编辑和测试而不会搞砸实时版本。我是SQL的新手,所以所有的导出选项等对我来说相当密集。我尝试使用默认导出设置PHPMyAdmin和命令
sqlite3 test_db.db < maindb.sql
以及
sqlite3--> .read maindb.sql
但是这些会引发一系列语法错误,并且没有这样的表格&#39;错误。
我也尝试了经常引用的脚本script found here,但是当我尝试使用MySQL Workbench的导出来运行它时,使用命令:
943776/mysql2sqlite.sh maindb.sql | sqlite3 test_db.sqlite
我收到以下错误:
mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/var/run/mysql.sock' (2) when trying to connect
我没有正确配置出口吗?
答案 0 :(得分:3)
请注意引用的脚本连接到数据库服务器本身。它确实不期待转储!
./mysql2sqlite -h example.com -u root -pMySecretPassWord myDbase | sqlite3 database.sqlite
这是脚本的执行方式。使用host,username,passwort和要转储的mysql数据库。
由于不同DBMS(如MySQL和sqlite3)之间的数据库转储和DBMS功能可能会有很大差异,我建议安装本地MySQL服务器而不是使用sqlite3。当您对sqlite3进行更改时,您获得了哪些优势,而您无法在不进行更改的情况下将其应用于MySQL生产数据库?
答案 1 :(得分:1)
另一种解决方案是导出数据库的sql转储,然后将其导回phpLiteAdmin。从那里,您可以在浏览器中管理您的sqlite数据库。如果要导出它,只需打开存储数据库的文件夹并复制数据库文件。
此解决方案不需要乱用脚本,如果您使用的是Mac并且使用MAMP,那么它特别方便,因为phpLiteAdmin预装了它。