【问题标题】:How do I export a MySQL database from PHPMyAdmin and import it to SQLite?如何从 PHPMyAdmin 导出 MySQL 数据库并将其导入 SQLite?
【发布时间】:2014-05-05 00:44:40
【问题描述】:

我想从 PHPMyAdmin(或 MySQl Workbench)导出数据库并将其导入 SQLite 数据库,这样我就可以进行本地编辑和测试,而不会搞砸实时版本。我对 SQL 很陌生,所以此时所有的导出选项等对我来说都相当密集。我尝试使用命令

使用默认导出设置 PHPMyAdmin
sqlite3 test_db.db < maindb.sql

还有

sqlite3--> .read maindb.sql

但是这些会引发一堆语法错误和“没有这样的表”错误。

我也尝试了经常被引用的脚本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

我没有正确配置导出吗?

【问题讨论】:

    标签: mysql sql sqlite


    【解决方案1】:

    请查看引用的脚本连接到数据库服务器本身。它确实期待转储!

    ./mysql2sqlite -h example.com -u root -pMySecretPassWord myDbase | sqlite3 database.sqlite
    

    这是脚本应该执行的方式。包含主机、用户名、密码和您要转储的 mysql 数据库。

    由于不同 DBMS(如 MySQL 和 sqlite3)之间的数据库转储和 DBMS 功能可能存在很大差异,因此我建议安装本地 MySQL 服务器而不是使用 sqlite3。当您对 sqlite3 进行更改时,您获得了哪些优势,如果不进行更改就无法应用于 MySQL 生产数据库?

    【讨论】:

    • 如何根据我当前的数据库创建本地 MySQL 服务器?
    • 您可以阅读其工作原理,例如 here。如果您已经正确安装并启动了mysql服务器,您可以在MySQL Workbench中输入localhostroot和您在安装时设置的密码来连接本地安装而不是远程生产服务器。
    • 这是一个奇怪的错误。您是否为主机名输入了“localhost”?然后尝试“127.0.0.1”。
    • 我将连接类型从“本地主机/套接字”更改为“标准”,并将主机名中的 127.0.0.1 替换为“本地主机”。这似乎已经解决了它。感谢您的帮助!
    【解决方案2】:

    另一种解决方案是导出数据库的 sql 转储,然后将其导入回 phpLiteAdmin。从那里您可以在浏览器中管理您的 sqlite 数据库。当你想导出它时,只需打开存储数据库的文件夹并复制数据库文件即可。

    此解决方案不需要乱用脚本,如果您在 Mac 上并且使用 MAMP,它特别方便,因为 phpLiteAdmin 预装了它。

    【讨论】:

      猜你喜欢
      • 2016-10-16
      • 2016-08-27
      • 2017-01-05
      • 2017-03-18
      • 1970-01-01
      • 1970-01-01
      • 2021-05-26
      • 2019-03-02
      • 1970-01-01
      相关资源
      最近更新 更多