Как загрузить sql файл в mysql через консоль
Перейти к содержимому

Как загрузить sql файл в mysql через консоль

  • автор:

Работаем с MySQL через командную строку

Если на экране появляется приветствие mysql, то всё прошло ok.

Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 344 Server version: 5.5.28-0ubuntu0.12.04.3 (Ubuntu) Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>

Для выхода из командной строки mysql можно написать exit, в linux достаточно нажать ctrl+C. Теперь можно писать любые mysql-запросы. Чтобы запрос выполнился, в конце обязательно нужно поставит точку с запятой «;». При написании длинных запросов удобно делать enter`ом переход на следующую строку. А после полного написание запроса поставить «;» и нажать «enter».

Для работы с конкретной базой данных нужно её выбрать с помощью оператора use. Показать все базы данных:

show databases;

Результатом будет что то вроде этого:

mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | jeka | | linky | | mysql | | performance_schema | | phpmyadmin | | test | +--------------------+ 7 rows in set (0.00 sec)

Выбрать базу данных jeka:

mysql> use jeka Database changed

Посмотреть названия всех таблиц в конкретной базе данных (после выполнения use):

mysql> show tables;

Просмотреть структуру таблицы (имена и тип полей):

mysql> describe post_estimations; +------------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+---------------------+------+-----+---------+-------+ | post_id | int(10) unsigned | YES | MUL | NULL | | | user_id | int(10) unsigned | YES | MUL | NULL | | | estimation | float(2,1) unsigned | NO | | NULL | | | date | int(10) unsigned | NO | | NULL | | +------------+---------------------+------+-----+---------+-------+ 4 rows in set (0.00 sec)

Достать информацию о юзере с >

mysql> SELECT * FROM users WHERE > Бэкап структуры таблицы, а точнее sql-запрос на её создание
show create table table_name;

Если в конце запроса поставить не ; а \G, то результат будет показан другим образом — иногда весьма удобно, если таблица имеет много полей:

select * from update__v4_errors where > mysql использования /G вместо; дебаг запроса.

Посмотреть, какие запросы выполняются в данный момент на сервере MySQL:

show processlist;

Учтите, что будут отображены еще не выполненные (активные) запросы, поэтому show processlist; актуальная команды только для нагруженных БД, в других случаях маловероятно, что команда что то покажет.

Подробнее о том, как изменять структуру mysql-таблиц (alter table).

Что делать если вижу знаки вопросов вместо текста в MySQL?

Это проблема с кодировкой. Вероятно в my.ini файле mysql-сервера не добавлено:

[mysqld] init-connect='SET NAMES utf8'

Нужно добавить в .ini файл либо выполнить в консоли команду «SET NAMES utf8», после чего во время текущей сессии отображаться русский текст в mysql-консоли будет без проблем:

mysql> set names utf8; Query OK, 0 rows affected (0.00 sec)

Как сделать бэкап базы mysql через консоль Linux?

Сделать бэкап базы database в файл dump_name.sql

mysqldump -u [username] -p [password] [database] > [dump_name.sql]

[username] – имя пользователя который имеет доступ к базе данных.
[password] – пароль пользователя.
[database] – имя базы данных.
[dump_name.sql] – имя файла, дампа на выходе.

Развернуть базу из файла через командную строку

mysql -u [username] -p [password] [database] < [dump_to_restore.sql]

[username] – имя пользователя который имеет доступ к базе данных.
[password] – пароль пользователя.
[database] – имя базы данных.
[dump_to_restore.sql] – имя файла, из которого поднимаем базу

Сделать дамп структуры одной таблицы mysql (без данных):

mysqldump -u[user] -p[password] -h[host] [database] [table_name] --no-data > /path/dump_name.sql

Например, задампим таблицу users из базы данных mydatabase:

mysqldump -uroot mydatabase users > users.dump.sql

Развернуть mysql-dump в БД с именем database_name:

mysql -uroot database_name < users.dump.sql

Ещё одна интересная штука. Выполнять из консоли, не требуется предварительно подключаться к mysql (mysql>). Вывести список таблиц базы данных, не подключаясь непосредственно к mysql:

mysql -uroot -e 'show tables' database_name && echo done
mysql> show variables like '%incr%';

Заключение

Может показаться, что писать запросы в командной строке не удобно. Но это заблуждение. На слабых машинах phpmyadmin работает не так шустро как хотелось бы. Тем более не на всех серверах стоят морды с phpmyadmin, adminer и т.д. Linux + mysql в терминале реально повысили мою производительность.

Поисковые запросы , по которым приходили пользователи

Дата добавления: 11 лет назад

mysql

Похожий контент:

  • В чём разница int(3) int(10) int(12) и так далее? mysql 3 ответа
  • Установить mysql 5.6 на travis Решено!
  • mysqldump только структуры таблиц 1 ответ
  • mysqldump: Got error: 1044: Access denied for user when using LOCK TABLES 1 ответ
  • ERROR 9006: ProxySQL Error: connection is locked to hostgroup 10 but trying to reach hostgroup 11 Решено!
  • MySQL - изменение полей, структуры таблицы 0 комментариев
  • Доступ к mysql из-вне4 комментария
  • Mysql перенос таблиц из одной базы данных в другую 0 комментариев
  • MacOS сбросить root пароль для MySQL 0 комментариев
  • Анализ производительности MySQL с использованием performance_schema 0 комментариев

Комментарии 2

viktor 11 лет назад

Последнее время я использую Valentina Studio для работы с MySQL. Очень хороший и бесплатный инструмент, рекомендую посмотреть. http://www.valentina-db.com/en/valentina-studio-overview

root 11 лет назад

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

eugene-PC:www eugene$ eugene$ sudo rpm -ivh ~/Загрузки/vstudio_x64_5_lin.rpm
rpm: RPM should not be used directly install RPM packages, use Alien instead!
rpm: However assuming you know what you are doing.
ошибка: Неудовлетворенные зависимости:
ld-linux-x86-64.so.2()(64bit) нужен для vstudio-5.3.0-2.x86_64
ld-linux-x86-64.so.2(GLIBC_2.3)(64bit) нужен для vstudio-5.3.0-2.x86_64
libc.so.6()(64bit) нужен для vstudio-5.3.0-2.x86_64
libc.so.6(GLIBC_2.2.5)(64bit) нужен для vstudio-5.3.0-2.x86_64
libc.so.6(GLIBC_2.3)(64bit) нужен для vstudio-5.3.0-2.x86_64
libc.so.6(GLIBC_2.3.3)(64bit) нужен для vstudio-5.3.0-2.x86_64
libc.so.6(GLIBC_2.3.4)(64bit) нужен для vstudio-5.3.0-2.x86_64
libc.so.6(GLIBC_2.4)(64bit) нужен для vstudio-5.3.0-2.x86_64
libdl.so.2()(64bit) нужен для vstudio-5.3.0-2.x86_64
libdl.so.2(GLIBC_2.2.5)(64bit) нужен для vstudio-5.3.0-2.x86_64
libgcc_s.so.1()(64bit) нужен для vstudio-5.3.0-2.x86_64
libgcc_s.so.1(GCC_3.0)(64bit) нужен для vstudio-5.3.0-2.x86_64
libgcc_s.so.1(GCC_3.4)(64bit) нужен для vstudio-5.3.0-2.x86_64
libgdk-x11-2.0.so.0()(64bit) нужен для vstudio-5.3.0-2.x86_64
libgdk_pixbuf-2.0.so.0()(64bit) нужен для vstudio-5.3.0-2.x86_64
libglib-2.0.so.0()(64bit) нужен для vstudio-5.3.0-2.x86_64

Импорт и экспорт базы данных MySQL

Экспорт базы данных MySQL через консоль и phpMyAdmin

через phpMyAdmin
через консоль

экспорт базы mysql шаг 1

Войдите в phpMyAdmin. Кликните по названию базы данных, экспорт которой вы хотите произвести:

экспорт базы mysql шаг 2

Перейдите на вкладку «Экспорт», выберите формат SQL и нажмите Вперед:

На вашем компьютере откроется диалоговое окно. Сохраните базу данных.

Готово, база данных экспортирована на ваш компьютер.

  • USER — пользователь базы данных (например, «u1234567_dbuser»),
  • DBNAME — имя экспортируемой базы данных (например, «u1234567_database»),
  • ~/DUMPFILE.sql — путь к файлу, в котором сохранится дамп базы данных в формате SQL.

Затем введите пароль базы данных (PASSWORD).

Готово, дамп базы данных с названием DUMPFILE.sql будет сохранен в корневую директорию услуги хостинга.

Импорт базы данных MySQL через консоль и phpMyAdmin

через phpMyAdmin
через консоль

импорт базы mysql шаг 1

Выберите базу данных, в которую будет производиться импорт дампа (резервной копии базы данных):

импорт базы mysql шаг 2

Перейдите на вкладку «Импорт», нажмите Выберите файл и укажите файл дампа базы. При необходимости смените кодировку. Выберите формат SQL и нажмите Вперёд:

Если файл дампа большой
Если файл дампа слишком большой для импорта, импорт необходимо производить по SSH.

импорт базы mysql результат

При успешном импорте появится сообщение:

Готово, база данных импортирована.

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

  • USER — пользователь базы данных (например, «u1234567_dbuser»),
  • DBNAME — имя импортируемой базы данных (например, «u1234567_database»),
  • ~/DUMPFILE.sql — путь к файлу, в котором сохранится дамп базы данных в формате SQL.

Затем введите пароль базы данных (PASSWORD).

Готово, база данных импортирована.

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

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

Самым лучшим выходом из ситуации будет ипморт напрямую через cli MySQL :

Заходим в MySQL:

mysql -u Login -p DB_name -h Host
mysql -u Login -p DB_name -h Host

(вместо Login и DB_name вводим данные пользователя БД и хост, например localhost)

Выбираем базу данных:

use db_name

Консольные команды для работы с MySQL

В данной статье рассмотрены полезные сочетания команд ОС Linux, которые помогут работать с MySQL, в частности созданием и загрузком дампа, на серверах хостинга и VDS.

Более подробную информацию о каждой из команд можно получить, набрав man имя_команды

Загрузка, выгрузка дампа

  1. Если у Вас есть объемный дамп базы или таблица из MySQL (например, файл имеет имя dump.sql) и через phpMyAdmin не получается импортировать его в базу database , это можно сделать через консоль:
mysql -u user -p database < dump.sql 
mysqldump -u user -p database > dump.sql mysqldump -u user -p database table > table.sql 
mysqldump --all-databases -u user -p > all_dump_DB.sql 
mysql --max_allowed_packet=64M -u user -p database < dump.sql 
mysqldump -u user -p database --default-character-set=utf8 > dump.sql 

Проверка работы сервера MySQL

Если на сервере возникают проблемы с производительностью, то весьма вероятно, что причинами их является сервер MySQL. Ниже приведены некоторые команды, которые могут помочь идентифицировать проблему (большинство действий могут быть выполнены только на VDS).

Обзор списка выполняющихся процессов

 # mysql mysql> show full processlist; 

Особое внимание следует обратить на запросы, находящиеся в состоянии “copying to temp table”, если такие присутствуют.

Получение списка медленных запросов

MySQL может быть настроен таким образом, чтобы он сохранял информацию обо всех запросах, исполняющихся больше 10 секунд (настраивается). Лог находится в файле /var/log/mysql/mysql-slow.log . Если такого файла на сервере нет, достаточно раскомментировать опцию log_slow_queries в файле /etc/mysql/my.cnf (или добавить, если таковая отсутствует), а затем перезапустить сервер командой

 invoke-rc.d mysql restart 

Строка должна выглядеть следующим образом:

 log_slow_queries = /var/log/mysql/mysql-slow.log` 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *