Внешнее подключение к MySQL
С помощью удаленного подключения к MySQL вы можете соединяться с базой данных на сервере хостинга с вашего домашнего компьютера, используя удобные для вас программы для работы с базами данных.
Простое подключение
Для настройки простого подключения к MySQL извне зайдите в Панель управления и перейдите в раздел «Базы данных» → «Доступ к базам данных по IP».
Нажмите кнопку «Добавить IP» и укажите IP-адрес, с которым вы выходите в сеть. Узнать свой адрес можно на сайте inet.from.sh.
В форме можно указывать в том числе и 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
Если соединение установлено, процедуру настройки туннеля можно считать завершенной. В противном случае необходимо тщательно проверить настройки, убедиться в отсутствии сетевых проблем и связаться со службой технической поддержки.
Удаленное подключение к MySQL
![]()
По умолчанию подключиться к MySQL можно только с того же хоста. Чтобы получить доступ к серверу с другого IP-адреса, нужно настроить удалённое подключение.
Внимание! После ручной правки конфигураций MySQL — my.cnf требуется перезапустить сервер MySQL. ISPmanager5 — Службы — MySQL/MariaDB — Рестарт или в консоли сервера:
systemctl restart mysql systemctl restart mariadb
- Создание удалённого подключения в ISPmanager 6
- Создание удалённого подключения в консоли
Создание удалённого подключения в ISPmanager 6
В панели ISPmanager — раздел Настройки — Серверы баз данных выделите сервер MySQL и нажмите кнопку Изменить .
В открывшемся окне поставьте галочку Удаленный доступ . В поле IP-адрес выберите IP, по которому будет доступно подключение.

В панелях с версией ниже 5.95 опции Удаленный доступ нет. Необходимо выполнить настройки вручную. В конфигурационном файле /etc/my.cnf ( /etc/mysql/my.cnf для Debian) должна отсутствовать строка skip-networking , если она присутствует — следует её закомментировать:
#skip-networking
Также следует добавить/изменить:
bind-address = IP_сервера
Для удалённого подключения к базам данных требуется при создании базы отметить Удалённый доступ .

Если при создании базы вы не выбрали данную опцию, её можно указать в Управлении пользователями баз данных . Для этого перейдите в раздел Инструменты — Базы данных — выделите нужную базу — нажмите кнопку Пользователи — затем кнопку Изменить .
Пустое поле списка IP-адресов делает возможным подключение с любого IP.

Создание удалённого подключения в консоли
В конфигурационном файле /etc/my.cnf ( /etc/mysql/my.cnf для Debian) должна отсутствовать строка skip-networking , если она присутствует — следует её закомментировать:
#skip-networking
Также следует добавить/изменить:
bind-address = IP_сервера
Подключитесь к сервер MySQL суперпользователем:
mysql -u root -p
Далее создайте пользователя, например, dbuser (если вместо % указать localhost, авторизация будет возможна только с текущего сервера):
create user 'dbuser'@'%' identified by 'password'
Можно проверить, что мы создали, командой, выводящей всех пользователей с их хостом и паролем:
select user,host,password from mysql.user;
Создайте базу, например, testdb :
create database testdb;
Предоставление прав пользователю
Права, назначенные пользователю, определяют, какие действия он сможет выполнять с базой данных. Можно назначать несколько привилегий одному пользователю.
Наиболее часто назначаемые права:
- ALL PRIVILEGES — пользователю предоставляется полный доступ к базе данных.
- CREATE — пользователю разрешено создавать базы данных и таблицы.
- DROP — пользователю разрешено удалять базы данных и таблицы.
- DELETE — пользователю разрешено удалять строки из определенной таблицы.
- INSERT — пользователю разрешено вставлять строки в определенную таблицы.
- SELECT — пользователю разрешено читать базу данных.
- UPDATE — пользователю разрешено обновлять строки таблицы.
- GRANT OPTION — пользователю разрешено изменять права других пользователей.
Назначить привилегии пользователю можно, используя синтаксис:
GRANT permission ON database.table TO 'username'@'%';
где permission — вид предоставляемой привилегии.
Например, установите полные права на базу testdb пользователю dbuser :
GRANT ALL PRIVILEGES ON testdb.* TO 'dbuser'@'%';
Предоставить права на вставку:
GRANT INSERT ON *.* TO 'dbuser'@'%';
Предоставить несколько привилегий пользователю:
GRANT SELECT, INSERT, DELETE ON testdb.* TO 'dbuser'@'%';
Можно ограничить права пользователя на добавление данных в определенной базе, указав её перед точкой. Для ограничения прав на доступ к определенной таблице укажите нужную таблицу после точки:
GRANT INSERT *database_name.table_name* TO 'dbuser'@'%';
Отозвать все привилегии пользователя:
REVOKE ALL PRIVILEGES ON testdb.* FROM 'dbuser'@'%';
Посмотреть текущие привилегии пользователя:
SHOW GRANTS FOR 'dbuser'@'%';
DROP USER 'dbuser'@'%';
После завершения настройки прав необходимо перезагрузить привилегии:
Работаем с 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:
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
Похожий контент:
- Как обновить AI в mysql? Решено!
- Узнать, насколько slave отстает от master в mysql Решено!
- Got a packet bigger than 'max_allowed_packet' bytes - ошибка mysql Решено!
- Как очистить все таблицы в базе данных mysql? 0 ответов
- mysqldump только структуры таблиц 1 ответ
- MySQL - изменение полей, структуры таблицы 0 комментариев
- Запросы инъекции для mysql 0 комментариев
- Доступ к mysql из-вне4 комментария
- Mysql перенос таблиц из одной базы данных в другую 0 комментариев
- MacOS сбросить root пароль для MySQL 0 комментариев
Комментарии 2
viktor 10 лет назад
Последнее время я использую Valentina Studio для работы с MySQL. Очень хороший и бесплатный инструмент, рекомендую посмотреть. http://www.valentina-db.com/en/valentina-studio-overview
root 10 лет назад
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 можно с сервера, на котором расположена база данных, или с подручного устройства. Дистанционная работа с MySQL позволяет вносить изменения в БД с любого компьютера и использовать для этого удобные приложения. Поэтому перед начинающими разработчиками встает вопрос о том, как подключиться к базе данных MySQL удаленно. Выбор способа подключения зависит от уровня навыков специалиста и сложности стоящих перед ним задач: через веб-интерфейс phpMyAdmin — для повседневной работы, или через протокол SSH — для создания безопасного соединения и выполнения сложных функций. Инструкция по тому, как подключиться к базе данных MySQL — в статье.
С помощью phpMyAdmin
Панель phpMyAdmin — веб-приложение с удобным графическим интерфейсом для работы с сервером MySQL. Приложение поддерживает большинство функций системы управления базами данных:
- создание, копирование и удаление базы данных;
- создание таблиц;
- редактирование табличных полей;
- поиск информации по БД;
- выполнение SQL-запросов;
- просмотр прав пользователя и управление ими;
- импорт и экспорт данных.

Изображение от Freepik
Веб-интерфейс поможет разобраться в работе с СУБД даже начинающим системным сисадминам и разработчикам: чтобы настроить нужную функцию, достаточно зайти в раздел с соответствующим ей названием и выбрать из списка подходящие параметры. Например, найти данные можно с помощью пункта «Поиск».

В phpMyAdmin можно зайти через панель управления хостингом в Макхост, на виртуальном хостинге по умолчанию — ispmanager. Шаги по настройке удаленного подключения к БД через административную панель:
Шаг 1. Выберите существующую базу данных или создайте новую. После авторизации в админке необходимо открыть раздел меню «Основное» и перейти в пункт «Базы данных». Выберите нужную БД из появившегося списка. При создании новой базы не забудьте разрешить к ней удаленный доступ.

Шаг 2. Создайте пользователя с удаленным доступ к БД. Перед тем как открыть MySQL, необходимо создать пользователя, который будет осуществлять управление базой данных. В открывшемся окне выберите параметр «Пользователи» и нажмите кнопку «Добавить». Установите имя и пароль, которые системный администратор будет использовать для входа в web-интерфейс phpMyAdmin. Разрешите ему удаленный доступ, установив флажок напротив одноименного пункта, и определите, какие данные он сможет просматривать и редактировать.

Шаг 3. Откройте phpMyAdmin и пройдите авторизацию. После выбора пользователя, кнопка «phpMyAdmin» в панели управления станет активной. При ее нажатии вы попадете на страницу входа в веб-интерфейс по управлению БД. Сообщите хостинг-провайдеру IP-адрес, с которого будет осуществляться дистанционное подключение, чтобы избежать проблем доступом.
С помощью SSH
Подключение к серверу с MySQL по SSH начинающие разработчики выбирают редко, так как в этом случае отсутствует графический интерфейс, а управление БД осуществляется с помощью командной строки операционной системы. Однако такое решение имеет свои преимущества — подключение защищено шифрованием, а значит, передаваемые данные нельзя перехватить, и доступно больше функций для работы с информацией. Разбираемся, как подключиться к базе данных MySQL с помощью SSH в ОС Windows и дистрибутивах Linux.
Windows
Для создания SSH-туннелирования в Windows используется специализированное ПО. Наиболее популярной среди остальных программ является PuTTY. Скачать ее можно с официального сайта разработчика бесплатно. Последовательность настроек:
Шаг 1. Настройки Session. В поле Host Name необходимо указать ftp.доменное_имя, Port — 22, Connection type — SSH.

Шаг 2. Настройки Connection. Выберите тип соединения с сервером SSH, Telnet. Перейдите к заполнению полей: Source port — 3306 (порт для локального доступа после установки туннеля), Destination — localhost:3306 (хост, к которому подключаются по заданному порту) и Local (локальное подключение). Forwarded port заполнится автоматически после нажатия кнопки Add.

Шаг 3. Установка соединения с удаленным сервером по SSH. После установки всех настроек вернитесь в пункт Session и нажмите кнопку Open. Пройдите авторизацию по логину и паролю от ftp. Как правило, логин – root, а пароль отправляется хостингом в почтовом письме после установки ОС.
Linux
В дистрибутивах Линукс удаленное подключение к MySQL создается с помощью командной строки — Терминала. Последовательность команд:
ssh -L3306:localhost:3306 -n пользователь@site.com.
sudo nano /etc/mysql/my.cnf.
# bind-address = 127.0.0.1
sudo service mysql restart.
GRANT ALL ON *.* TO имя_пользователя@127.0.0.1 IDENTIFIED BY 'пароль'.
mysql -u имя_пользователя –h 127.0.0.1 –p; mysql -h наименование хоста -u dbUser -p dbName.
Заключение
MySQL облегчает работу с данными сайта. Управлять БД напрямую с сервера, на котором она расположена, не всегда удобно, иногда может потребоваться дистанционная работа. Чтобы обезопасить подключение к серверу и доступ к данным, используют сочетание SSH-туннеля и специальных программ: в Windows — PuTTY, в Linux — Терминала. Когда пользователь нуждается в интуитивно понятном интерфейсе, он может воспользоваться phpMyAdmin.
