【问题标题】:ERROR 1049 (42000): Unknown database错误 1049 (42000):未知数据库
【发布时间】:2012-08-25 02:16:47
【问题描述】:

我似乎无法登录到我的教程数据库开发环境:

Ayman$ mysql -u blog -p blog_development
Enter password: 
ERROR 1049 (42000): Unknown database 'blog_development'

没有 blog_development 部分我可以很好地登录数据库:

Ayman$ mysql -u blog -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1858

我授予所有访问权限时不确定是什么:

mysql> GRANT ALL PRIVILEGES ON blog_development.*
    -> TO 'blog'@'localhost'
    -> IDENTIFIED BY 'newpassword';
Query OK, 0 rows affected (0.01 sec)

mysql> SHOW GRANTS FOR 'blog'@'localhost'
    -> ;
+----------------------------------------------------------------------------------------- --------------------+
 | Grants for blog@localhost                                                                                        |
 +----------------------------------------------------------------------------------------- --------------------+
| GRANT USAGE ON *.* TO 'blog'@'localhost' IDENTIFIED BY PASSWORD    '*FE4F2D624C07AAEBB979DA5C980D0250C37D8F63' |
| GRANT ALL PRIVILEGES ON `blog`.* TO 'blog'@'localhost'                                                        |
| GRANT ALL PRIVILEGES ON `blog_development`.* TO 'blog'@'localhost'                                           |
+----------------------------------------------------------------------------------------- --------------------+
3 rows in set (0.00 sec)

有人知道要尝试什么吗?谢谢!另外,附注 - 我有多个 root 用户很奇怪吗?:

mysql> select User from mysql.user;
+------+
| User |
+------+
| root |
| root |
|      |
| root |
|      |
| blog |
| root |
+------+
7 rows in set (0.00 sec)

编辑:对于那些询问-我在 MySql 中使用 CREATE DATABASE 命令创建了数据库博客。这是我的活动数据库:

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+  
| information_schema |
| blog               |
| mysql              |
| performance_schema |
| test               |
+--------------------+ 
5 rows in set (0.00 sec)

【问题讨论】:

  • 你真的创建了数据库吗? mysql -u blog -p登录mysql但不选择数据库。
  • 是的,它在 mySQL - blog 中,而您在 rails 中尝试使用 blog_development(这是更好的名称,也是示例 database.yml 或开发中建议的名称) .

标签: mysql


【解决方案1】:

blog_development 不存在

你可以通过0 rows affected消息在sql中看到这个

在 mysql 中创建它

mysql> create database blog_development

但是,当您使用 rails 时,您应该习惯使用

$ rake db:create

做同样的事情。它将使用您的 database.yml 文件设置,其中应包括以下内容:

development:
  adapter: mysql2
  database: blog_development
  pool: 5

同时熟悉:

$ rake db:migrate  # Run the database migration
$ rake db:seed     # Run thew seeds file create statements
$ rake db:drop     # Drop the database

【讨论】:

  • 我使用 mysql> CREATE DATABASE 命令创建了数据库博客。过去这为我创造了一个开发环境?除非我弄错了?
  • 是的,这会起作用,但有可能是 sql 命令和 rails database.yml 不匹配。我在 Rails 之前有过 SQL 背景,最初是使用 SQL 命令路由,但是当您学习 rails 时,您会发现使用 rails 命令创建数据库是可行的方法。
  • 如果你像我一样是菜鸟,别忘了用 ; 终止你的命令否则你只会在下一行看到 --> 符号
【解决方案2】:

非常简单的解决方案。 只需重命名数据库并在项目中配置新的数据库名称即可。

问题是当您导入数据库时​​,出现任何错误,然后数据库将被损坏。日志文件将具有损坏的数据库名称。 您可以使用 phpmyadmin for mysql 轻松重命名数据库。

phpmyadmin -> operations -> Rename database to

【讨论】:

    【解决方案3】:

    这是一个常见错误,当我们尝试访问不存在的数据库时会发生这种错误。所以创建数据库使用

    CREATE DATABASE blog_development;
    

    当我们使用删除数据库时通常会发生错误

    DROP DATABASE blog_development;
    

    然后尝试访问数据库。

    【讨论】:

      猜你喜欢
      • 2017-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-27
      • 1970-01-01
      • 2022-06-15
      相关资源
      最近更新 更多