一、问题澄清
在推进项目的过程中,终端执行rake db:migrate
进行迁移文件时,发生了报错,报错提示是blogs这张表已经存在
二、解决思路
1.阅读报错信息
2.查看是哪个表已经存在,这个表是在哪个数据库中
3.查找资料,搞清楚操作MySQL的数据库和其中的表的方法
4.删除数据库中重复的表
5.重新运行迁移文件
三、解决过程
1.查看报错提示
在运行rake db :migrate
迁移文件时,出现下面的报错:
报错信息提示blogs这张表已经存在了
2.查看表对应的数据库的名称
首先打开你的项目中的database.yml文件,查看数据库的名称,我这里要用的数据库是development环境下,因此你可以看到要操作的数据库是blog2_development
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表已存在的问题了,如下图:
四、补充
我们终端可以通过MySQL的指令来操作数据库,同样也可以借助MySQL的可视化工具来操作数据库。
打开MySQL的可视化工具Sequel Pro,进行数据库的连接,这里使用的是Standard模式,需要注意的是填写好以下信息:
- Host:127.0.0.1
- Username: root
- Password 这个是你的数据库的密码,如果没有设置则不用填写
- Database:你要连接的数据库
如图:
然后,点击"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 删除数据表
网友评论