Как импортировать/экспортировать/просмотреть базу данных/таблицу MySQL/MariaDB при помощи SSH в 2021 году
Изредка бывает необходимо импортировать/экспортировать довольно большую базу данных и через phpmyadmin делать это нет желания, выскакивают ошибки вроде:
Достигнут временной лимит выполнения скрипта. Для завершения импорта, пожалуйста повторно отправьте тот же файл и импорт будет возобновлен.
Для этого логинимся в консоли ssh и выполняем следующую последовательность действий:
- Подключаемся к базе данных
Вариант первый:
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
Опять же, вам нужно будет заменить имя пользователя, базу данных и имя таблицы на правильную информацию.