Изредка бывает необходимо импортировать/экспортировать довольно большую базу данных и через phpmyadmin делать это нет желания, выскакивают ошибки вроде:

Достигнут временной лимит выполнения скрипта. Для завершения импорта, пожалуйста повторно отправьте тот же файл и импорт будет возобновлен.

Для этого логинимся в консоли ssh и выполняем следующую последовательность действий:

  1. Подключаемся к базе данных

Вариант первый:

mysql -u username -p

username заменяем на имя пользователя, который имеет доступ к данной бд или root, если аутентификация работает через него, но не использует unix_socet

Вариант второй (если не используется unix_socet):


mysql

или (равнозначные команды)

mariadb

После авторизации (в случае root или тп типа авторизации) можно посмотреть ваши текущие базы данных:

MariaDB [(none)]> show databases;

Вывод будет примерно следующим:

+--------------------+
 | Database           |
 +--------------------+
 | test01.ru    |
 | test02.ru    |
 | test03.ru    |
 | test04.ru    |
 | test05.ru    |
 +--------------------+
 5 rows in set (0.002 sec)

После чего можно выбрать нужную базу данных командой:

MariaDB [(none)]> use test01.ru;

Вывод в таком случае будет следующим:


Database changed
MariaDB [test01.ru]>

После чего вы можете просмотреть существующие в данной базе таблицы командой:

MariaDB [test01.ru]> show tables;

Вывод будет следующим:

 +------------------------------+
 | Tables_in_test01.ru          |
 +------------------------------+
 | test_table_01                |
 | test_table_02                |
 | test_table_03                |
 | test_table_04                |
 | test_table_05                |
 +------------------------------+
 5 rows in set (0.001 sec)

Так же вы можете посмотреть все записи в конкретной таблице следующей командой:

MariaDB [test01.ru]> select * from test_table_01;

Вывод будет аналогичным:

 +----+-------+------+
 | ID | login | pass | 
 +----+-------+------+
 |  1 | user1 | 123  |
 |  2 | user2 | 321  |
 +----+-------+------+
 2 rows in set (0.001 sec)

Чтобы посмотреть спецификацию таблицы, используйте следующую команду:


MariaDB [test01.ru]> describe test_table_01;

Вывод будет аналогичным:

+----------+-------------+-------+-----+---------+-------+
 | Field    | Type         | Null | Key | Default | Extra |
 +----------+--------------+------+-----+-----------------+
 | field_02 | varchar(255) | NO   |     |         |       | 
 | field_03 | varchar(255) | NO   |     |         |       | 
 +-------------------------+------+-----+-----------------+
 2 rows in set (0.002 sec)

Импорт базы данных

Вариант 1

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

mysql -p -u username database_name < /home/files/dumps/backup_database_name.sql 

username — логин для доступа к базе

/home/files/dumps/backup_database_name.sql — адрес файла бекапа на сервере

Вариант 2

Если вы уже авторизовались в mysql/mariadb, то можете выбрать базу данных командой:

MariaDB [(none)]> use test01.ru;

После чего следующей командой импортировать базу:

MariaDB [(test01.ru)]> source /home/files/dumps/backup_database_name.sql;

/home/files/dumps/backup_database_name.sql — адрес файла бекапа на сервере

Импорт отдельной таблицы:

Чтобы импортировать одну таблицу в существующую базу данных, вы должны использовать следующую команду:

mysql -u username -p -D database_name < /home/files/dumps/backup_database_name_tablename.sql

Экспорт базы данных

Для экспорта можно использовать простую команду:

mysqldump -p -u username database_name > /home/files/dumps/backup_database_name.sql 

username — логин для доступа к базе

/home/files/dumps/backup_database_name.sql — адрес файла бекапа на сервере

Чтобы экспортировать одну таблицу из вашей базы данных, вы должны использовать следующую команду:

mysqldump -p --user=username database_name tableName > /home/files/dumps/backup_database_name_table_name.sql

Опять же, вам нужно будет заменить имя пользователя, базу данных и имя таблицы на правильную информацию.