我在Linux Red Hat 7中运行MySQL。我有一个现有的数据库error.db
,我将它复制到MySQL目录中,现在我想将它导入MySQL。我找到了this guide,它建议使用mysqldump
将数据库导出到.sql文件,然后我可以在MySQL客户端中获取该文件。
所以我尝试了以下方法:
$ mysqldump --socket=socket -u root -p error.db > error_db.sql
字符串
输入密码后,我收到了这个错误:
mysqldump: Got error: 1049: Unknown database 'error.db' when selecting the database
型
我肯定在正确的目录下,error.db
肯定存在,我肯定输入了正确的密码。我试着添加-d标志和--databases标志,但没有成功。我也试过使用error
而不是error.db
,但没有成功。
我检查了其他问题,还没有找到一个有效的解决方案。这一个,问题是由错别字引起的(我知道不是这样的:)mysql export table but no database。
这个问题被解决了,因为OP把密码放在命令行中,显然使用-p标志解决了他们的问题(尽管你可以看到,我使用-p标志,但它仍然不起作用:)MYSQL DBDump Error message
我在工作中使用Load Sharing Facility来运行MySQL,但这并没有阻止我使用另一个.sql文件将数据库加载到MySQL中,所以我不确定这是否会有不同。
**编辑:**根据this question,我尝试使用mysql
而不是mysqldump
,但仍然没有成功:
mysql --socket=socket -u root -p error.db > error_db.sql
Enter password:
ERROR 1049 (42000): Unknown database 'error.db'
型
你知道这里可能出了什么问题吗?
编辑2:error.db
数据库在SQLite3中。我曾假设数据库类型是交叉兼容的,但这可能是一个错误的假设。所以我想我的问题是如何将SQLite3数据库转换为MySQL。
2条答案
按热度按时间zujrkrfu1#
所以,原来问题是因为我试图使用MySQL打开SQLite中创建的数据库。回想起来,我可能应该看到这将是一个问题。
我采用的解决方案是通过在SQLite3中打开
error.db
,并使用以下代码将SQLite3中的文件导出为CSV文件:字符串
(Source)
然后我打开MySQL使用:
型
我创建了数据库
error
和表error
,然后运行以下命令,成功地将.csv文件中的数据导入到我的数据库中:型
感谢this question的@mpoletto和this question的OP帮助我弄清楚了这一切。
我不知道为什么会有警告我无法检查它们,因为在我知道必须在命令之后立即运行
SHOW WARNINGS
之前,我已经运行了一个select查询。xv8emn3q2#
使用此mysqldump --socket=socket -u root -p --databases error.db > error_db.sql命令,而不是mysqldump --socket=socket -u root -p error.db > error_db.sql