Ошибка sql 1049

I am trying to restore database from .sql file , i have created the database in phpmyadmin and also using the create if not exist command in the .sql file which i am restoring to the database and b...

I am trying to restore database from .sql file , i have created the database in phpmyadmin and also using the create if not exist command in the .sql file which i am restoring to the database and both names of database are same in phpmyadmin and .sql file which is»mydatabase».

Here is the command which i am using to restore database.

mysql -uroot -pmypassword mydatabase<mydatabase.sql;

When i execute the above command i am getting the following error, i have also given all the permission to the user upon this database.

ERROR 1049 (42000): Unknown database 'mydatabasename'

BenMorel's user avatar

BenMorel

33.5k49 gold badges174 silver badges310 bronze badges

asked Oct 30, 2013 at 9:44

La Chi's user avatar

5

If dump file contains:

CREATE DATABASE mydatabasename;
USE mydatabasename; 

You may just use in CLI:

mysql -uroot –pmypassword < mydatabase.sql

It works.

answered Mar 24, 2016 at 17:02

Dobpbiu's user avatar

DobpbiuDobpbiu

4814 silver badges4 bronze badges

2

Whatever the name of your dump file, it’s the content which does matter.

You need to check your mydatabase.sql and find this line :

USE mydatabasename;

This name does matter, and it’s the one you must use in your command :

mysql -uroot -pmypassword mydatabasename<mydatabase.sql;

Two options for you :

  1. Remove USE mydatabasename; in your dump, and keep using :
    mysql -uroot -pmypassword mydatabase<mydatabase.sql;
  2. Change your local database name to fit the one in your SQL dump, and use :
    mysql -uroot -pmypassword mydatabasename<mydatabase.sql;

answered Oct 30, 2013 at 10:02

zessx's user avatar

zessxzessx

67.5k28 gold badges135 silver badges157 bronze badges

1

Open the sql file and comment out the line that tries to create the existing database and remove USE mydatabasename and try again.

answered Oct 30, 2013 at 10:05

Sathish D's user avatar

Sathish DSathish D

4,83629 silver badges44 bronze badges

0

You can also create a database named ‘mydatabasename’ and then try restoring it again.

Create a new database using MySQL CLI:

mysql -u[username] -p[password]
CREATE DATABASE mydatabasename;

Then try to restore your database:

mysql -u[username] -p[password] mydatabase<mydatabase.sql;

answered Oct 11, 2016 at 8:20

Iulian Cucoanis's user avatar

I solved because I have the same problem and I give you some clues:

1.- As @eggyal comments

mydatabase != mydatabasename

So, check your database name

2.- if in your file, you want create database, you can’t set database that you not create yet:

mysql -uroot -pmypassword mydatabase<mydatabase.sql;

change it for:

mysql -uroot -pmypassword <mydatabase.sql;

answered Jan 31, 2017 at 2:55

molavec's user avatar

molavecmolavec

8,6311 gold badge26 silver badges21 bronze badges

Create database which gave error as Unknown database,
Login to mysql shell:

sudo mysql -u root -p
create database db_name;

Now try restoring database using .sql file, -p flag will ask for a sql user’s password once command is executed.

sudo mysql -u root -p db_name < db_name.sql

answered Oct 19, 2020 at 8:05

Nabeel Shaikh's user avatar

Nabeel ShaikhNabeel Shaikh

1,1391 gold badge13 silver badges27 bronze badges

La Chi’s answer works for me.

You can view his/her answer in the comment of zessx answer in this page. But I initially have a problem with it if you also do just tweak his/her answer like this: mysql -h localhost -u root -p -D mydatabase < mydatabase.sql.

Also I would suggest that in the mydatabase.sql portion you include the direct location of it in your computer like "C:Usersusernamedesktop".

Thank you.

joanolo's user avatar

joanolo

5,7581 gold badge26 silver badges35 bronze badges

answered Aug 1, 2017 at 19:08

jhamezzz1315's user avatar

jhamezzz1315jhamezzz1315

331 gold badge4 silver badges10 bronze badges

If initially typed the name of the database incorrectly. Then did a Php artisan migrate .You will then receive an error message .Later even if fixed the name of the databese you need to turn off the server and restart server

answered Dec 9, 2019 at 17:19

Adil Roubleh's user avatar

I had the same issue, i run this command on command line and just like you i had added the ‘;’ at the end. Removing it solved the issue.
Instead of this

mysql -uroot -pmypassword mydatabase<mydatabase.sql;

try this

mysql -uroot -pmypassword mydatabase<mydatabase.sql

answered Jan 23, 2020 at 15:42

Sely Lychee's user avatar

I found these lines in one of the .sql files

«To connect with a manager that does not use port 3306, you must specify the port number:

$mysqli = new mysqli('127.0.0.0.1','user','password','database','3307');

or, in procedural terms:

$mysqli = mysqli_connect('127.0.0.0.1','user','password','database','3307');"

It resolved the error for me . So i will suggest must use port number while making connection to server to resolve the error 1049(unknown database).

Rohan Shah's user avatar

Rohan Shah

8491 gold badge8 silver badges26 bronze badges

answered Feb 20, 2020 at 11:30

Aqsa Zahoor's user avatar

1

mysql -uroot -psecret mysql < mydatabase.sql

answered May 29, 2020 at 14:40

Juan Castellon's user avatar

I meet your issue. This is how to solve it

  1. Check your DB name correct and exist in MySQL
  2. Check if your IP and port is correct

answered May 26, 2021 at 10:18

Vanavy's user avatar

It works by creating database and than typing command as :
C:Program FilesMySQLMySQL Server 8.0bin>mysql -u root -p -D cricket < C:Usershabib_s9ayvflDesktopsqlfile.sql

answered Aug 12, 2021 at 10:14

habib ur rehman's user avatar

Create database:

CREATE DATABASE mydatabasename;
USE mydatabasename;

use this one:
mysql -u root -p ‘mydatabasename'< ‘/tmp/db_dump.sql’

answered Feb 11, 2022 at 10:33

user18179848's user avatar

Its very simple: Use mysql -u root -p mysql

answered Mar 25, 2022 at 9:58

sree's user avatar

sreesree

511 silver badge3 bronze badges

first, you need to check the folder /var/lib/mysql for mydatabasename (depend on how you installed mysql, but default folder is this one),
please check the folder exists or not and its owner should be mysql:mysql, and of course the folder permission should be rw to mysql;

second, possibly because of you made changes to /etc/my.cnf, for example in my case, we created a database TEST_DB in uppercase, and then someone added lower_case_table_names=1 restriction in my.cnf, it caused the Unknown database error because mysql will transalte TEST_DB to lowercase test_db even when i key in select from TEST_DB, so it’ll never find TEST_DB, simply comment out and restart mysql service solved my issue

answered Apr 30, 2022 at 8:12

LIU YUE's user avatar

LIU YUELIU YUE

1,45511 silver badges18 bronze badges

You can also try

> mysql mysql

and you will connect to MySQL database from which you can create your own schema.

mysql> CREATE DATABASE mydb; USE mydb;

answered Jun 20, 2022 at 12:05

alexlz's user avatar

alexlzalexlz

6081 gold badge9 silver badges24 bronze badges

when u import database from workbench or other method ,should be give same name as your dump to avoid this kind of error

answered Jul 24, 2020 at 11:56

VIJAY PRATAP SINGH's user avatar

1

Often while performing WHM backups, users notice an error “mysqldump: Got error: 1049: Unknown database”. This can happen when the database does not exist in MySQL.

As a part of our Server Management Services, we help our customers with similar requests related to WHM/ cPanel.

Let us today, discuss the possible reasons and fixes for this error.

What causes “MySQLdump: got error :1049 :unknown database ” error

MySQLdump helps to perform the logical backups, generating a set of SQL statements like DDL, DML for reproduced backup Schema. It dumps one or more MySQL databases for backup or transfers to another SQL server.

We can also generate output in CSV, other delimited text or XML format. The main drawback of MySQLdump is that the restoration procedure can take a long time to execute if the database is very large.

While performing WHM backups, at times, we can see the following error in the backup log:

The backup process encountered the following error: The backup process on “hostname.example.server” encountered an error.
[2021-05-10 02:25:26 -0600] mysqldump: Got error: 1049: Unknown database ‘example_database’ when selecting the database

Generally, This error indicates that the related database exists in a cPanel user’s database map, but the database does not exist in MySQL.
 

How to fix “MySQLdump: got error :1049 :unknown database ” error

The first thing that our Support Engineers perform on seeing this error is to check whether the database exists within MySQL. They does this by running the following command as the root user via SSH:

mysql -e "show databases;" | grep example_database

Replace example_database with the database found within the backup error in the backup logs. We can find the backup logs within /usr/local/cpanel/logs/cpbackup.

If the above command does not display any results, it indicates that the database does not exist in MySQL.

Thus, In order to correct the backup errors, we have to remove the databases that do not actually exist in MySQL from cPanel.

For this, we initially log in to the cPanel account for the particular database user. Then, we navigate to the Databases section and then click on the MySQL Databases option.

Here, we just need to delete the corresponding database from the current database section.

mysqldump got error 1049 unknown database

 
[Need any further assistance to fix cPanel errors? – We’re available 24*7]

Conclusion

The “MySQLdump: got error :1049 :unknown database ” triggers while performing cPanel backups. This can happen when the database does not exist in MySQL. Today, we saw how our Support Engineers fix this error.

PREVENT YOUR SERVER FROM CRASHING!

Never again lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.

SEE SERVER ADMIN PLANS

var google_conversion_label = «owonCMyG5nEQ0aD71QM»;

This document (7009762) is provided subject to the disclaimer at the end of this document.

Environment

SUSE Linux Enterprise Server 10 Service Pack 1

SUSE Linux Enterprise Server 10 Service Pack 2

SUSE Linux Enterprise Server 10 Service Pack 3

SUSE Linux Enterprise Server 10 Service Pack 4

SUSE Linux Enterprise Server 11 Service Pack 1

SUSE Linux Enterprise Server 11 Service Pack 2

Situation

ERROR 1049 (42000): Unknown database ‘mysql’ when trying to access mysql via this command:

this command will access the default ‘mysql’ database, and needs to be done prior to setting or resetting the root users’ MySQL password.

Resolution

Depending on how MySQL was installed, it is possible that the default MySQL database was NOT created. 

This may be checked by looking in /var/lib/mysql for a mysql subfolder (i.e. /var/lib/mysql/mysql ). If the path does NOT contain a mysql subfolder, it needs to be created by completing the following steps:
 

rcmysql stop
pkill mysql   (NOTE: wait until notification is given that mysqld ended, then hit <ENTER>)
/usr/bin/mysql_install_db

Now that the above steps have been run, check and make sure that the database was created:
 

cd /var/lib/mysql
ls -al | grep mysql

In the listing output there should now be a folder called mysql.  Finally, the correct owner and group need to be set on the mysql folder.

Restart the mysql service in safe mode again and attempt the initial command again:

Disclaimer

This Support Knowledgebase provides a valuable tool for SUSE customers and parties interested in our products and solutions to acquire information, ideas and learn from one another. Materials are provided for informational, personal or non-commercial use within your organization and are presented «AS IS» WITHOUT WARRANTY OF ANY KIND.

  • Document ID:7009762
  • Creation Date:
    17-Nov-2011
  • Modified Date:12-Aug-2022
    • SUSE Linux Enterprise Server

< Back to Support Search

For questions or concerns with the SUSE Knowledgebase please contact: tidfeedback[at]suse.com

Based on your comments below your question, it sounds like you probably omitted the --databases option when you used mysqldump to backup the database.

If you backup the databases by doing mysqldump <database-name>, then the backup does not re-create the database for you. When you restore from that backup, you need to create the database that you want to import into and then import into that database, which may or may not be the same name as the database you exported from earlier.

If you do not want to be required to do this, then, when creating your backup, you export like this: mysqldump --databases <database-name>. Doing that, the backup will have the command to re-create the database when it is imported back into MySQL.

There are also other differences between those two usages. If you use the first version, then any symbols after the database name are considered table names to include in the backup. As in: mysqldump MyDatabase Table1 Table2 Table3 to backup tables 1, 2, and 3, but no others.

In the second variation, all symbols after the initial database name are also treated as additional database names, so you can get multiple databases. mysqldump --databases HRDatabase WebsiteDatabase DevTestDatabase That should export all three databases.

But back to the main point: next time you use mysqldump, if you specify the --databases option then you will not need to manually create the database and use it before importing, as that would then be taken care of for you.


For importing the database you need to use mysql not mysqldump in order to create the database automatically (only in case you exported with --databases <database-name> option:
mysql -u root -p < /var/www/html/example.com/backups/backup.sql
(as mentioned in a previous comment by HBruijn,

Using mysqldump for importing your database will not create your database automatically even if you exported it with --databases <database-name> option, these will not work without creating the database first:

mysqldump -u root -p < /var/www/html/example.com/backups/backup.sql
mysqldump --all-databases -u root -p < /var/www/html/example.com/backups/backup.sql
mysqldump --databases mydatabase_name -u root -p < /var/www/html/example.com/backups/backup.sql

Я пытаюсь восстановить базу данных из файла .sql, я создал базу данных в phpmyadmin, а также используя команду create if not exist в файле .sql, который я восстанавливаю в базе данных, и оба имени базы данных одинаковы в phpmyadmin и .sql файл, который является «mydatabase».

Вот команда, которую я использую для восстановления базы данных.

mysql -uroot -pmypassword mydatabase<mydatabase.sql;

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

ERROR 1049 (42000): Unknown database 'mydatabasename'

Пожалуйста, помогите мне, как я могу решить эту проблему.
Спасибо,

30 окт. 2013, в 11:11

Поделиться

Источник

6 ответов

Если файл дампа содержит:

CREATE DATABASE mydatabasename;
USE mydatabasename; 

Вы можете просто использовать в CLI:

mysql -uroot –pmypassword < mydatabase.sql

Он работает.

Dobpbiu
24 март 2016, в 17:05

Поделиться

Откройте файл sql и закомментируйте строку, которая пытается создать существующую базу данных, и удалите USE mydatabasename и повторите попытку.

Sathish D
30 окт. 2013, в 10:29

Поделиться

Независимо от имени вашего файла дампа, оно имеет значение, которое имеет значение.

Вам нужно проверить mydatabase.sql и найти эту строку:

USE mydatabasename;

Это имя имеет значение, и оно должно использоваться в вашей команде:

mysql -uroot -pmypassword mydatabasename<mydatabase.sql;

Два варианта для вас:

  • Удалите USE mydatabasename; в своем дампе и продолжайте использовать:
    mysql -uroot -pmypassword mydatabase<mydatabase.sql;
  • Измените локальное имя базы данных так, чтобы оно соответствовало таковому на вашем SQL-дампе, и используйте:
    mysql -uroot -pmypassword mydatabasename<mydatabase.sql;

zessx
30 окт. 2013, в 10:06

Поделиться

Я решил, потому что у меня такая же проблема, и я даю вам несколько подсказок:

1.- Как комментарии @eggyal

mydatabase != mydatabasename

Итак, проверьте имя своей базы данных

2.- если в вашем файле вы хотите создать базу данных, вы не можете установить базу данных, которую вы еще не создали:

mysql -uroot -pmypassword mydatabase<mydatabase.sql;

измените его на:

mysql -uroot -pmypassword <mydatabase.sql;

molavec
31 янв. 2017, в 02:56

Поделиться

Ответ La Chi работает для меня.

Вы можете просмотреть его ответ в комментарии zessx на этой странице. Но у меня изначально возникла проблема с этим, если вы также просто настраиваете его ответ следующим образом: mysql -h localhost -u root -p -D mydatabase < mydatabase.sql.

Также я бы предположил, что в разделе mydatabase.sql вы указываете прямое расположение на своем компьютере, например "C:Usersusernamedesktop".

Спасибо.

jhamezzz1315
01 авг. 2017, в 21:05

Поделиться

Вы также можете создать базу данных с именем ‘mydatabasename’, а затем попытаться восстановить ее снова.

Создайте новую базу данных с помощью MySQL CLI:

mysql -u[username] -p[password]
CREATE DATABASE mydatabasename;

Затем попробуйте восстановить базу данных:

mysql -u[username] -p[password] mydatabase<mydatabase.sql;

Iulian Cucoanis
11 окт. 2016, в 10:19

Поделиться

Ещё вопросы

  • 0параллельное программирование с openMP
  • 0Синтаксис Sql для создания хеша
  • 0сортировка векторного объекта Student по последнему первому идентификатору
  • 0Ионная сборка iOS удаляет изменения
  • 1Как я могу использовать Android LayoutInflater.Factory для создания пользовательского класса представления вместо встроенного класса?
  • 1как добавить текст в конец сетки
  • 0JNI — Могу ли я использовать RegisterNatives без вызова System.loadLibrary для собственных плагинов?
  • 0Моя функция удаления в BST даже не работает
  • 1Распределение памяти в Java — декларация против определения
  • 0regExp — Как найти, что моя переменная содержит только назначенную строку или нет ..?
  • 1Как заставить проект Android и стандартный проект Java играть хорошо?
  • 0Как я могу получить данные из двух HTML Div, используя preg_match?
  • 1Как я могу разделить объект между работающей службой и деятельностью
  • 0События мыши пузырились от элемента с абсолютным позиционированием
  • 1Как поймать клик пользователя на экране андроида любого приложения?
  • 0Jquery Jplayer не вызывает функцию setMedia при первом вызове функции на моей странице
  • 1Создать кнопку с изображением программно
  • 0Разбор многомерного массива в PHP
  • 1Написание объектов из потока в Android
  • 0AngularJS использует ng-click для изменения значения $ scope «self»
  • 0как сохранить переход от img к anchor и div background от переформатирования вывода
  • 1Не могу получать трансляции в WinRT
  • 1Я сделал класс для развлечения, но он действительно быстро исчерпал кучу места?
  • 0Низкий TPS при использовании Virtualbox + Ubuntu + Nginx + PHP-FPM + Silex
  • 0Прокрутка вниз не работает
  • 1Странная ошибка при загрузке файла с помощью Spring Web Flow
  • 0Подключите Google Data Studio к локальному серверу Mysql
  • 1RavenDB плохо работает с областью транзакций
  • 1Извлечение самой низкой и самой высокой даты из столбца панд
  • 0Подтверждение на экране перед отправкой? PHP / SQL
  • 0Настройте пользовательскую дату для использования в качестве отправной точки в устройстве выбора даты
  • 0получить данные таблицы, если совпадение полей с использованием codeigniter
  • 1KeyboardView.OnKeyboardActionListener
  • 1Как запустить приложение JMS на Glassfish 4.0 в Eclipse (Juno)
  • 0Возврат нескольких значений в одном столбце из другой таблицы
  • 0Как показать статус обработки транзакции или работы на стороне сервера в браузере для конечного пользователя?
  • 0Javascript Parent-Child элементы
  • 1Бесконечный цикл, вызванный обработкой исключений
  • 1WPF, MVVM, EventBehaviourFactory в ListView, привязка события к команде
  • 1В SQL Server мне нужно упаковать 2 символа в 1 символ, как в HEX. Как?
  • 0Получение изменений базы данных Mysql и загрузка файлов
  • 0как использовать контроллер $ scope в шаблоне директивы
  • 0Невозможно предоставить событие href или onclick на div
  • 1Изображение в байтах [] Изображение
  • 0Как изменить определенный встроенный стиль из элемента HTML?
  • 0Передача данных из HTML-формы с использованием angularjs в базу данных SQL
  • 0Как отформатировать сообщение электронной почты, которое говорит пользователям Outlook «просматривать в HTML» при просмотре в текстовом режиме?
  • 0преобразовать QPainterPath в bmp и получить двумерный массив области заполнения
  • 1Регулярное выражение (Reg exp). Почему это работает?
  • 1Панды, почему [TypeError: объект типа ‘float’ не имеет len ()] при обработке объекта String в python?

Сообщество Overcoder

Понравилась статья? Поделить с друзьями:
  • Ошибка ssse3 апекс
  • Ошибка steam validation rejected как исправить
  • Ошибка sql 1046
  • Ошибка sql 1044
  • Ошибка ssps на санг енг рекстон