Rails - Mysql database already exists but it doesn't exist
我正在尝试运行rake db:create并且它说数据库已经存在(我以前从未创建过这个数据库,这是一个新项目)。 当我运行rake db:migrate时,它会显示"未知数据库"。 我检查了mysql数据库(show databases;),该数据库确实不存在。
谁知道那是什么? 我搜索了解决方案但没有成功。
当我运行rake db:create时
1 2 3 4
| rake db: create
Celluloid 0.17.3 is running in BACKPORTED mode. [ http: //git.io /vJf3J ]
adimax_development already exists
adimax_test already exists |
当我运行rake db:migrate时
1 2 3 4
| rake db:migrate
Celluloid 0.17.3 is running in BACKPORTED mode. [ http: //git.io /vJf3J ]
rake aborted !
Mysql2::Error: Unknown database 'adimax_development' |
database.yml的
1 2 3 4 5 6 7
| development:
adapter: mysql2
encoding: utf8
database: adimax_development
pool: 5
username: root
password: |
错误:
错误图片:
-
您的database.yml文件定义为主机和端口是什么? 该文件将告诉Rails如何连接到MySql数据库服务器
-
你可以发布你的database.yml文件?
-
@ sameera207我用我的database.yml更新了这个问题。 谢谢
-
@Darkisa我用database.yml更新了这个问题。 谢谢
-
你能用rails dbconsole进入mysql实例吗?
-
@LeoCorrea在运行命令rails dbconsole时发生以下错误:rails dbconsole Celluloid 0.17.3正在BACKPORTED模式下运行。 [git.io/vJf3J] ERROR 1049(42000):未知数据库'adimax_development'
尝试执行此命令:
参考:https://stackoverflow.com/a/4116124/9336629
-
当我尝试"rake db:drop"时,Rails说数据库是未知的,但当我尝试创建一个新数据库时,他说数据库已经存在。
-
您是否尝试过db:reset然后db:migrate?
-
是的,但他说数据库是未知的。
-
你也应该能够用rake db:{drop,create,migrate}做到这一点
我解决了这个直接在mysql中创建数据库的问题。
我使用mysql -u root进入mysql,然后运行"CREATE DATABASE adimax_development;"。 在此之后,我回到我的应用程序并运行rake db:migrate并且工作正常。
感谢所有愿意提供帮助的人。