美文网首页
解决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