美文网首页
解决MySQL中表已存在的问题

解决MySQL中表已存在的问题

作者: 稻草人_b788 | 来源:发表于2018-03-06 07:20 被阅读42次

一、问题澄清

在推进项目的过程中,终端执行rake db:migrate进行迁移文件时,发生了报错,报错提示是blogs这张表已经存在

二、解决思路

1.阅读报错信息
2.查看是哪个表已经存在,这个表是在哪个数据库中
3.查找资料,搞清楚操作MySQL的数据库和其中的表的方法
4.删除数据库中重复的表
5.重新运行迁移文件

三、解决过程

1.查看报错提示
在运行rake db :migrate迁移文件时,出现下面的报错:

Snip20180305_7.png
报错信息提示blogs这张表已经存在了

2.查看表对应的数据库的名称
首先打开你的项目中的database.yml文件,查看数据库的名称,我这里要用的数据库是development环境下,因此你可以看到要操作的数据库是blog2_development

Snip20180305_2.png

3.终端执行:mysql -u root -p
注意,不要忘了加上-p,否则会出现报错,例如Access denied for user 'xxx'@'xxx' (using password: NO)这样的报错,说明没有连接到MySQL数据库,更多相关内容可阅读连接MySQL数据库时常见故障问题的分析与解决

4.终端依次执行:
use blog2_development;即选择要操作的数据库
drop table blogs; 删除其中的blogs这个表
quit;退出MySQL
rake db:migrate执行迁移文件!
可以看到成功解决了blogs表已存在的问题了,如下图:

Snip20180305_5.png

四、补充

我们终端可以通过MySQL的指令来操作数据库,同样也可以借助MySQL的可视化工具来操作数据库。
打开MySQL的可视化工具Sequel Pro,进行数据库的连接,这里使用的是Standard模式,需要注意的是填写好以下信息:

  • Host:127.0.0.1
  • Username: root
  • Password 这个是你的数据库的密码,如果没有设置则不用填写
  • Database:你要连接的数据库
    如图:
Snip20180305_6.png

然后,点击"Connect"进行连接,效果图:


Snip20180305_4.png

这样的话就可以很直观的看到有哪些tables,也可以直接在这里进行增删改查等操作

五、参考资料:

1.连接MySQL数据库时常见故障问题的分析与解决
2.Access denied for user 'root'@'localhost' (using password: YES)
3.# Error 1046 No database Selected, how to resolve?

4.MySQL 删除数据表

相关文章

网友评论

      本文标题:解决MySQL中表已存在的问题

      本文链接:https://www.haomeiwen.com/subject/zybhfftx.html