- Как в Windows подключиться к MySQL в командной строке
- Как перейти в базу данных MySql
- Способ 1 — Через PhpMyAdmin
- Способ 2 — Через консоль
- Способ 3 — Подключение с помощью PHP
- Способ 4 — Подключение к базе данных удаленно
- Командная строка MySQL
- Подключение к MySQL через консоль
- Полезные команды MySQL
- Управление базами данных
- Работа с пользователями
- Исправление и оптимизация баз данных в MySQL
- Бэкап MySQL из командной строки
- Подключение к удаленному серверу MySQL: настройка
- Настройки на основном сервере проекта
- Возможные проблемы с установкой удаленного подключения к MySQL и их решение
- Внешнее подключение к MySQL
- Простое подключение
- Безопасное подключение через SSH-туннель
- Подключение к БД MySQL с компьютера под управлением ОС MS Windows
- Настройка SSH-туннеля
- Подключение к БД MySQL с компьютера под управлением ОС Linux
- Проверка соединения с БД MySQL
Как в Windows подключиться к MySQL в командной строке
Делать запросы к базам данных MySQL можно не только через PHP. В комплекте с MySQL поставляется консольный клиент для подключения в серверу MySQL. Консольный — это означает, что у программы нет оконного интерфейса, а есть только интерфейс командной строки, в котором обращение к базам данных выполняется с помощью SQL запросов.
Команды для подключения к MySQL в командной строке, а уж тем более сами SQL запросы идентичны и для MariaDB. В дальнейшем для краткости я буду писать «MySQL», но везде я имею в виду «MySQL или MariaDB», поскольку в данном случае разницы между ними нет.
Подключившись через командную строку к СУБД MySQL можно выполнять самые разные задачи: просматривать базы данных и их таблицы, отправлять запросы к базам данных и получать результаты выполнения этих запросов.
Для подключения к серверу MySQL используется команда клиентская программа, которая называется mysql.exe. Её нужно запустить, но сделать нужно не двойным кликом, как обычную программу, а из командной строки.
Начнём с того, что нажмём сочtтание клавиш Win+r и выполним
Откроется командная строка.
Теперь нам нужно перейти в папку с файлом mysql.exe. Эта папка bin в директории, где установлена ваша СУБД MySQL. К примеру, у меня MariaDB, которая установлена в папке C:\Server\bin\mariadb\. Следовательно, интересующий нас файл находится в каталоге C:\Server\bin\mariadb\bin\. Для перехода в этот каталог используется команда cd следующим образом:
В этой команде замените C:\Server\bin\mariadb\bin\ на правильный для вашей системы путь
Теперь запустим файл mysql.exe. Необязательно указывать расширение файла .exe — система сама догадается, что мы имеем ввиду. Также нам нужно использовать опцию -u и -p. После первой опции нужно указать имя пользователя — root. После второй опции — пароль для пользователя. В моём случае пароль не установлен, поэтому я запускаю без опции -p:
Может показаться, что мало что изменилось, но новое приглашение командной строки
говорит о том, что мы подключены к серверу MySQL. Точнее, в моём случае мы подключены к серверу MariaDB.
Чтобы посмотреть список баз данных, введём команду:
Чтобы последующие запросы отправлялись к определённой базе данных (например, к test), используется команда USE:
Чтобы посмотреть таблицы в выбранной базе данных запустите команду:
Создадим какую-нибудь таблицу:
И вновь посмотрим содержимое базы данных test:
Если вы уже работали с базами данных MySQL через PHP, то вы можете использовать любые запросы, которые используете в PHP.
Чтобы выйти выполните команду
или нажмите Ctrl+d.
Для продолжения знакомства рекомендуется изучить материал:
Как перейти в базу данных MySql
Существует 4 способа подключения к базе данных MySql:
Способ 1 — Через PhpMyAdmin
- В панели управления хостингом в разделе «Главное», выбираем «Базы данных».
- Далее выбираем нужную базу данных и нажимаем «Перейти».
- Вводим название пользователя, пароль и нажимаем «Вперед».
Еще 2 способа подключения к PhpMyAdmin на странице Как перейти в PhpMyAdmin.
Способ 2 — Через консоль
Для подключения к базе данных MySql через консоль, нужно набрать следующую команду:
mysql -hYou_Server -uUser_Name -pPassword
- You_Server — хост с MySql, обычно это IP сервера. Если подключаемся с локального сервера, параметр можно опустить.
- User_Name — имя пользователя MySql.
- Password — пароль MySql.
Если вы все сделали правильно, должно быть так:
Способ 3 — Подключение с помощью PHP
Для подключения к базе данных через PHP, нужно выполнить следующий код:
где, функция mysql_connect состоит из:
- localhost — имя хостинга;
- admin — имя пользователя (для входа в MySql);
- pass — пароль (для входа в MySql).
- Функция mysql_select_db — для выбора к какой базе данных подключаться.
- Функция mysql_query — нужна для выбора вашего запроса к базе данных. В представленном примере выбираем столбец ID из базы данных книг.
- Функция mysql_fetch_row — нужна для извлечения строк из SQL-запроса, который мы только что создали.
- Функция mysql_close — нужна для того чтобы закрыть соединение.
Способ 4 — Подключение к базе данных удаленно
Для того чтобы подключиться к базе данных MySql удаленно, нужно выполнить следующие действия:
- С помощью панели управления хостингом, в разделе «Главное» заходим в «Базы Данных».
- Далее выбираете нужную базу данных и нажимаете «Пользователи».
- Затем выбираем нужного пользователя (в данном случае он один) и нажимаем «Изменить».
- Ставим галочку напротив графы «Удаленный доступ» и нажимаем «Ок». Также нужно обратиться в поддержку хостинга для того чтобы они были в курсе, что вы настроили «Удаленный доступ» иначе данная настройка работать не будет.
Готово! Теперь вы сможете подключаться к базе данных удаленно (чтобы подключиться удаленно через PHP, смотрите предыдущий способ, представленный выше).
Командная строка MySQL
Небольшая памятка по работе с сервером MySQL из командной строки.
Подключение к MySQL через консоль
Получить информацию об установленной версии MySQL
Для подключения к mysql в консоли наберите команду
- h — хост c MySQL. Если подключаемся с локальной машины, параметр можно опустить
- u — имя пользователя MySQL (root или другой пользователь MySQL)
- p — пароль, который будет предложено ввести после нажатия enter
Приглашение командной строки изменится, это значит, сервер MySQL ждёт от вас команд.
Запросы должны оканчиваться точкой с запятой. Длинные запросы удобно разбивать enter-ом для перехода на новую строку, а после полного написания запроса поставить точку с запятой и выполнить его.
Для отключения от MySQL нужно написать exit или (в unix-системах) нажать комбинацию клавиш ctrl+с.
Для вывода всех баз данных на сервере используйте команду show databases.
Выберите нужную базу данных командой use.
Теперь можно вводить запросы.
Чтобы подключиться к MySQL и сразу выбрать нужную базу
Полезные команды MySQL
Показать все таблицы выбранной базы данных в текущей БД.
Показать все таблицы базы данных db_name.
Показать список столбцов в таблице table_name в текущей БД
Показать список столбцов в таблице table_name из БД db_name
Вывести структуру нужной таблицы
Показать структуру таблицы, будет выведен sql-запрос на её создание через «CREATE TABLE».
Вывести значения системных переменных.
Показать список выполняющихся в настоящий момент запросов.
Общая статистика MySQL.
Статистика по всем таблицам в базе db_name.
Что бы выполнять запросы к MySQL из консоли, не всегда требуется предварительно подключаться к mysql. Параметр -e позволяет исполнить команду, вывести результат на экран, после чего отключиться от сервера MySQL. Например, можно вывести список таблиц базы данных.
Управление базами данных
Создание базы данных из консоли сервера
Удаление базы данных из консоли сервера
Создание базы данных db_name из консоли MySQL
Удаление базы данных db_name из консоли MySQL
Замена в поле одной подстроки на другую
Работа с пользователями
Вывести список пользователей
Показать список прав пользователя user
Создать нового пользователя
host — здесь имя хоста, доменное имя или ip адрес, с которого пользователь сможет подключаться к серверу, например user@localhost.
Чтобы создаваемый пользователь смог подключаться к серверу MySQL с любого IP адреса или хоста (за исключением localhost), можно использовать символ процента, вот так
Чтобы разрешрешить пользователю подключаться вообще со всех хостов, придётся создать для него две учётные записи.
Добавить указанные привилегии для таблиц БД db_name пользователю user@localhost
Чтобы изменить права пользователю, иногда удобно сначала сбросить все права
А затем установить нужные с помощью GRANT, как было показано выше.
Добавить все привилегии для таблиц БД db_name пользователю user@localhost
Удаление привилегий пользователя user@localhost для БД db_name:
Сделать из пользователя суперпользователя и дать полный доступ ко всем БД на сервере
Удалить пользователя user@localhost
Изменить пароль пользователя в консоли MySQL
Установить пароль для пользователя user в консоли сервера.
Исправление и оптимизация баз данных в MySQL
Чтобы исправить ошибки в поврежденной таблице, в консоли MySQL выполните:
Если же в БД много поврежденных таблиц можно воспользоваться командой mysqlcheck.
Проверить db_name на ошибки.
Восстановление и оптимизация всех БД
- p – использовать пароль
- -A, —all-databases – проверять все базы данных
- -o, —optimize – оптимизировать
- -r, —repair – восстанавливать повреждённые
- —auto-repair – автоматическое восстановление
Бэкап MySQL из командной строки
Экспорт базы MySQL
Дамп нескольких баз
Дамп всех баз на сервере
Дамп только структуры базы, без данных
Дамп структуры одной таблицы mysql, без данных:
Развернуть базу данных MySQL из дампа
На этом всё. Но вы можете помочь проекту. Даже небольшая сумма поможет нам писать больше полезных статей.
Если статья помогла или понравилась, пожалуйста поделитесь ей в соцсетях.
Подключение к удаленному серверу MySQL: настройка
Прежде всего, авторизуемся на сервере, который будет служить сервером баз данных и устанавливаем MySQL
Производим изначальную конфигурацию в автоматическом режиме
При этом разрешаем удаленное подключение от имени пользователя root (необходимо только при удаленном подключении от имени пользователя root)
Disallow root login remotely? no
Также потребуется внести коррективы в основной конфигурационный файл MySQL /etc/mysql/my.cnf
Параметр bind следует закомментировать. Если необходимо ограничить доступ к MySQL извне — использовать iptables
Чтобы конфигурационный файл считался — перезапускаем сервис
Авторизуемся в MySQL
Подключение к удаленному серверу MySQL предполагает наличие пользователя, в качестве хоста указывается адрес сервера, с которого будет выполняться подключение создаем его
GRANT ALL ON *.* TO testuser@’123.123.123.124′ IDENTIFIED BY ‘secretpassword’;
Здесь указываем ip адрес основного сервера, с которого работает веб-проект. Если подключение производится с нескольких серверов — команду можно повторять несколько раз.
Проверяем наличие существующих баз данных и пользователей MySQL (должны увидеть данные пользователя testuser)
Настройки на основном сервере проекта
Авторизуемся на основном сервере
Создаем локального пользователя
CREATE USER ‘testuser’@’localhost’ IDENTIFIED BY ‘secretpassword’;
Выполняем команду nmap, убеждаемся в том, что порт на сервере баз данных открыт
Авторизуемся с реквизитами пользователя testuser в MySQL удаленно указывая IP адрес сервера баз данных
mysql -u testuser -h 123.123.123.123 -p
Если никаких ошибок при авторизации не появляется — все сделано верно, пробуем пробуем создать базу данных.
Возможные проблемы с установкой удаленного подключения к MySQL и их решение
В случае если имеют место какие-либо трудности при подключении — проверяем iptables на предмет наличия запрещающих правил:
Если запрещающие правила обнаружены — их следует удалить.
Также можно добавить разрешающее правило — на основном сервере синтаксис команды будет следующим:
/sbin/iptables -A INPUT -i eth0 -p tcp —destination-port 3306 -j ACCEPT
Из соображений безопасности можно не предоставлять все права пользователю удаленного сервера выдать только права на SELECT,INSERT,UPDATE или DELETE. В примере пользователю выдали права на все базы данных, без каких либо трудностей права можно выдать на конкретную БД или таблицу БД.
Читайте также про отказоустойчивые кластеры Master-Slave MySQL и Galera Cluster
Внешнее подключение к MySQL
С помощью удаленного подключения к MySQL вы можете соединяться с базой данных на сервере хостинга с вашего домашнего компьютера, используя удобные для вас программы для работы с базами данных.
Простое подключение
Для настройки простого подключения к MySQL извне зайдите в Панель управления и перейдите в раздел «Базы данных MySQL».
Нажмите кнопки «Доступ по IP» → «Добавить IP» и укажите IP-адрес, с которым вы выходите в сеть. Узнать свой IP-адрес можно на сайте inet.from.sh.
В форме можно указывать в том числе и IP-адреса с символом % в октетах. К примеру, для разграничения доступа с IP-адресов одной подсети:
Теперь вы можете подключаться к базе данных на сервере хостинга с вашего компьютера. Для подключения используйте следующие настройки:
- сервер для подключения: имя вашего домена, например yourdomain.ru;
- порт для подключения: 3306;
- имя пользователя и пароль: установленные вами при создании базы данных имя пользователя и пароль.
Пример подключения с помощью программы mysql (пароль будет запрошен при подключении):
mysql -P 3306 -h yourdomain.ru -u mylogin_user -p mylogin_db
Безопасное подключение через SSH-туннель
В целях обеспечения безопасности ваших данных используйте подключение к базам данных MySQL через SSH-туннель. Данные передаются по SSH-туннелю в зашифрованном виде, что исключает возможность их перехвата.
Подключение к БД MySQL с компьютера под управлением ОС MS Windows
Настройка SSH-туннеля
Установите на ваш компьютер программу putty. Это бесплатное программное обеспечение, скачать ее можно на официальном сайте.
В категории настроек «Session» в поле «Имя хоста» (Host Name) укажите домен вашего сайта.
Перейдите в категорию настроек Connection → SSH → Tunnels и в поле «Source port» укажите значение 3306, в поле «Destination» — localhost:3306.
После этого нажмите кнопку «Add».
После этого нажмите кнопку «Open». Установится соединение с вашим хостом.
В качестве логина и пароля используйте ваши данные для входа в Панель управления хостингом.
Туннель установлен. Для соединения с базой данных используйте имя пользователя и пароль, заданные вами при создании базы данных в разделе Панели управления «Базы данных». В качестве адреса сервера используйте 127.0.0.1, порт для подключения 3306.
Пример подключения с помощью программы mysql (пароль будет запрошен при подключении):
mysql -P 3306 -h 127.0.0.1 -u mylogin_user -p mylogin_db
Внимание: если на вашем компьютере уже работает сервер баз данных MySQL, подключение удаленному серверу по порту 3306 будет невозможно. В этом случае при создании подключения в putty укажите другой порт в качестве «Source port», например, 3307. Используйте этот порт при подключении к базе данных.
Подключение к БД MySQL с компьютера под управлением ОС Linux
В командной строке выполните следующую команду:
ssh -L3306:localhost:3306 -n yourlogin@yourdomain.ru
- 3306 (сразу после ключа -L) — порт на локальном компьютере, к которому вы сможете подключаться клиентом mysql;
- yourlogin — имя вашего аккаунта (логин в Панели управления);
- yourdomain.ru — имя вашего сайта.
В качестве пароля используйте пароль для входа в Панель управления хостингом.
Туннель установлен. Для соединения с базой данных используйте имя пользователя и пароль, заданные вами при создании базы данных в разделе Панели управления «Базы данных». В качестве адреса сервера используйте 127.0.0.1, порт для подключения 3306.
Пример подключения с помощью программы mysql (пароль будет запрошен при подключении):
mysql -P 3306 -h 127.0.0.1 -u mylogin_user -p mylogin_db
Внимание: если на вашем компьютере уже работает сервер баз данных MySQL, подключение удаленному серверу по порту 3306 будет невозможно. В этом случае при запуске ssh сразу после ключа -L укажите альтернативный порт, например, 3307. Используйте этот порт при подключении к базе данных.
Проверка соединения с БД MySQL
Проверить соединение с БД можно посредством утилиты telnet. Войдите в интерфейс командной строки (в ОС MS Windows: Пуск → Выполнить → cmd.exe), наберите команду:
telnet 127.0.0.1 3306
Если соединение установлено, процедуру настройки туннеля можно считать завершенной. В противном случае необходимо тщательно проверить настройки, убедиться в отсутствии сетевых проблем и связаться со службой технической поддержки.