ОШИБКА 1049 (42000): Неизвестная база данных

Я не могу войти в мою среду разработки учебной базы данных:

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 [email protected]                                                                                        |
 +----------------------------------------------------------------------------------------- --------------------+
| 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)

Изменить: для тех, кто спрашивает: я создал блог базы данных с командой CREATE DATABASE в MySql. Вот мои активные базы данных:

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

Ответы

Ответ 1

blog_development не существует

Вы можете увидеть это в sql через сообщение 0 rows affected

создайте его в mysql с помощью

mysql> create database blog_development

Однако, поскольку вы используете рельсы, вы должны привыкнуть к использованию

$ 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

Ответ 2

Очень простое решение. Просто переименуйте свою базу данных и настройте новое имя базы данных в своем проекте.

Проблема заключается в том, когда вы импортируете свою базу данных, вы получаете какие-либо ошибки, а затем база данных будет повреждена. Файлы журнала будут иметь поврежденное имя базы данных. Вы можете легко переименовать свою базу данных, используя phpmyadmin для mysql.

phpmyadmin -> operations -> Rename database to

Ответ 3

Это обычная ошибка, которая возникает, когда мы пытаемся получить доступ к базе данных, которая не существует. Поэтому создайте базу данных, используя

CREATE DATABASE blog_development;

Ошибка обычно возникает при удалении базы данных с помощью

DROP DATABASE blog_development;

а затем попытайтесь получить доступ к базе данных.