Как подключиться к базе данных mysql с удаленного компьютера windows

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

Подключаться к базам данных можно разными способами. Подключение, устанавливаемое с сервера, называется локальным. С помощью такого типа подключения можно работать с домашнего компьютера, при этом используя любые удобные приложения по управлению базами данных.

Я расскажу, как подключиться к удаленной базе данных MySQL, какие существуют способы, а также опишу некоторые типичные ошибки.

Подключение через панель управления TimeWeb

Чтобы подключиться удаленно к MySQL, необходимо для начала открыть сайт хостинга и авторизоваться в личном кабинете. В панели управления следует выбрать раздел «Базы данных MySQL», через него и будем проводить операции. В новом открывшемся окне находим ссылку «Добавить доступ» напротив того сервера, к которому планируется подключиться. Для разрешения доступа к подсети /24 меняем последний актет IP-адреса на знак %.

При установлении соединения используем имя сервера или его IP-адрес. Данная информация доступна на главной странице в разделе «Информация о сервере». Порт указываем 3306, имя пользователя будет тем же, что и название базы данных. Вводим пароль и устанавливаем соединение.

phpMyAdmin

phpMyAdmin – программное средство, предоставляющее веб-интерфейс для работы с сервером MySQL. Подключиться к базе можно, открыв раздел «Базы данных MySQL» в панели управления хостингом. Находим на странице ссылку «phpMyAdmin» и жмем по ней для подключения. Если она недоступна, значит, пользователем был превышен лимит доступных БД. Увеличить его можно сменой тарифа.

Входим в данный раздел, вбиваем все данные и подключаемся.

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Подписаться

Соединение через SSH туннель

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

Подключение в Windows

В данной ОС соединение по SSH протоколу можно осуществить с помощью специальных программ для управления базами данных. Например, PuTTY (бесплатная программа) или SecureCRT (платное ПО, но с пробной версией на 30 дней).

Мы для работы выбрали PuTTY. Скачиваем установщик с официального сайта и устанавливаем приложение. Запускаем программу, затем переходим в раздел «Session». В поле «Host Name» вводим свой домен или указываем его IP-адрес.

Настройка туннеля SSH в приложении PuTTY

Далее переходим в категорию «Connection», открываем вкладку «SSH», затем «Tunnels». В поле «Source Port» указываем значение 3306, в «Destination» вбиваем localhost:3306, потом жмем на кнопку «Add» для добавления порта в список. И только потом жмем кнопку «Open» для установления соединения с хостом.

Создание SSH-туннеля с помощью программы PuTTY

Логин и пароль те же самые, которые используются для входа в панель управления. При подключении используем имя пользователя и пароль, выданные при создании базы данных. Адрес сервера — 127.0.0.1, порт для подключения 3306.

Предупреждаем, что если вы уже устанавливали сервер баз данных MySQL на своем компьютере, то соединение через порт 3306 будет недоступно. Надо будет указать другое значение, например 3307.

Подключение в Linux

В ОС Linux никакого дополнительного ПО устанавливать не придется, можно все провести через командную строку «Терминал». Перед тем как подключиться к MySQL удаленно, нужно создать SSH-туннель. Вводим вот такую команду:

ssh -L3306:localhost:3306 -n логин@site.com

Потом в конфигурационном файле MySQL потребуется изменить параметр, отвечающий за удаленное подключение. Открываем в «Терминале» файл, дав вот такую команду:

sudo nano /etc/mysql/my.cnf

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

# bind-address = 127.0.0.1

Сохраняем изменения, потом перезапускаем MySQL вот такой командой:

sudo service mysql restart

Далее будет запрошен пароль для входа в панель управления хостингом, вводим его. Для подключения к удаленному серверу MySQL необходимо создать пользователя, и делается это вот такой командой:

GRANT ALL ON *.* TO имя_пользователя@127.0.0.1 IDENTIFIED BY 'пароль'

Так мы создадим пользователя с неограниченным доступом ко всем базам на указанном сервере. Потом проверяем подключение утилитой telnet. Если сервер запрос не отклонил, значит, пора приступать к подключению. Для этого можно задать команды вот таких типов:

mysql -u имя_пользователя –h 127.0.0.1 –p

mysql -h наименование_хоста -u dbUser -p dbName

VDS Timeweb арендовать

Как проверить соединение с базой данных MySQL

Для проверки подключения к базе данных MySQL во всех ОС используем утилиту telnet. Нужно просто открыть командную строку и набрать в ней вот такую команду:

telnet 127.0.0.1 3306

Если соединение установится, то настройка туннеля прошла успешно, можно приступать к подключению. Если нет, рекомендуем тщательно проверить все настройки.

Читайте также

Часовой пояс MySQL

MySQL и Java-приложение (docker)

Распространенные проблемы и ошибки при подключении к MySQL

Как подключиться к MySQL удаленно, если возникают какие-то ошибки? Трудности обычно возникают при наличии запрещающих правил. Проверить, существуют ли такие, можно вот таким запросом:

iptables-save

Если таковые обнаружатся, добавим разрешающее правило. Для этого надо ввести соответствующую команду, она должна выглядеть примерно вот так:

/sbin/iptables -A INPUT -i eth0 -p tcp —destination-port 3306 -j ACCEPT

Если при подключении возникает ошибка «Can’t connect to Mysql Server on ‘IP_адрес'(10061)», соединение заблокировал брандмауэр, firewall, outpost, антивирус и прочие программы. Для UFW, инструмента брандмауэра в Ubuntu, можно задать вот такую команду, разрешающую доступ с любого IP-адреса:

sudo ufw allow 3306/tcp

Есть еще возможность открыть доступ для определенного IP-адреса, и это куда более безопасный способ. Для этого потребуется ввести такой запрос:

sudo ufw allow from IP_адрес to any port 3306

Если же появляется ошибка типа «Client does not support autentification protocol request by server; consider upgrading MySQL client», это значит, что установленный клиент не поддерживает требуемый сервером протокол.

Эту ошибку можно исправить, установив пароль старого формата:

SET PASSWORD FOR user@host = OLD_PASSWORD('password')

Если при проверке выходит ошибка формата «ERROR 2003 (HY000): Can’t connect to MySQL server», это значит, что порт 3306 не открыт. Либо сервер MySQL не прослушивает указанный IP-адрес.

В случае, когда выходит сообщение «ERROR 1130 (HY000): Host ‘10.8.0.5’ is not allowed to connect to this MySQL server», указывается отсутствие прав доступа к удаленному серверу у пользователя.

Ошибка «1045 невозможно подключиться к серверу MySQL» возникает при попытке подключиться удаленно к базам данных через phpMyAdmin. Причиной тому может быть неправильно введенный логин или же отсутствие пароля у пользователя или его неправильная смена.

Заключение

MySQL – один из самых популярных серверов баз данных с открытым исходным кодом. Подключиться к нему можно разными способами, причем как локально, так и удаленно. Если в процессе соединения возникают нетипичные ошибки, рекомендуем связаться со службой технической поддержки. 

Материал статьи предназначен для начинающих, профессионалы Хабра в большинстве не нуждаются в изложении этого вопроса. Тем не менее, те, кто делает первые шаги в работе с MySQL часто задают подобные вопросы. Статья написан для тех, кто впервые столкнулся с необходимостью установить удаленное соединение с базой данных MySQL. В статье рассказывается о сложностях, которые могут возникнуть при настройке удаленного соединения и о методах их преодоления.

Как установить соединение с удаленной базой?

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

  • —host
  • —protocol
  • —port

Из четырех возможных протоколов удаленное подключение позволяет только TCP/IP, поэтому первым требованием является доступность компьютера из сети по TCP/IP.
Далее необходимо добавить имя хоста (или ip адрес машины, на которой расположена база) в строке подключения:
mysql —host=host_name
Обратите внимание, что указание в качестве имени хоста значения localhost (или же отсутствие такого параметра, что то же самое, так как это дефолтное значение) приводит к обращению на локальную машину.

Учтите, что параметры имеют две формы записи: длинную и короткую. В свою очередь, если параметр имеет значение (как например, в случае хоста необходимо указать имя хоста к которому нужно подключиться), то короткая форма записи может использоваться с пробелом или без (исключением из этого правила является пароль).
Таким образом, следующие три записи являются эквивалентными:

  • mysql —host=myhost.ru
  • mysql -h myhost.ru
  • mysql -hmyhost.ru

Как настроить соединение с удаленной базой?

В MySQL пользователь характеризуется двумя параметрами: именем и хостом, с которого он может обращаться. По умолчанию доступ разрешен только с локальной машины, т.е. для пользователя user@localhost. Права на доступ пользователям даются с помощью команды GRANT. Команда выполняется под рутом.

Например, если я хочу создать юзера, который сможет коннектиться с любого хоста с полными правами, то следует выполнить следующую команду:
GRANT ALL PRIVILEGES ON `имя_базы`.* TO myuser@% IDENTIFIED BY ‘пароль’;

Примечание. Обратите внимание, что данная команда дает доступ пользователю myuser со всех IP кроме 127.0.0.1, соответсвующего localhost.
Для пользователя myuser@localhost необходимо давать права отдельной командой GRANT.

Если вы решите обратиться к локальной машине как к удаленной, используя протокол TCP/IP, то не забывайте, что myuser@localhost и myuser@ip_собственного_компа это разные пользователи и каждому из них права нужно давать отдельной командой.

Второй пример показывает как дать право читать таблицу time_zone в базе mysql пользователю myuser с машины 192.168.0.76
с паролем mypassy:
GRANT SELECT ON mysql.time_zone TO myuser@192.168.0.76 IDENTIFIED BY ‘mypassy’;

Возникающие сложности

Если после всех действий у вас возникает ошибка
(Can’t connect to Mysql Server on ‘ваш IP'(10061)),
значит соединение блокирует firewall (windows firewall, outpost, антивирус или еще что-то).

Если возникает ошибка
(Client does not support autentification protocol request by server; consider upgrading MySQL client), клиент (то есть ваша программа) не поддерживает требуемый сервером протокол.
Эту ошибку можно исправить, установив пароль старого формата:
SET PASSWORD FOR user@host = OLD_PASSWORD(‘password’);

Кросспост Настройка удаленного подключения к MySQL с Webew.

С помощью удаленного подключения к MySQL вы можете соединяться с базой данных на сервере хостинга с вашего домашнего компьютера, используя удобные для вас программы для работы с базами данных.

Простое подключение

Для настройки простого подключения к MySQL извне зайдите в Панель управления и перейдите в раздел «Базы данных» → «Доступ к базам данных по IP».

Нажмите кнопку «Добавить IP» и укажите IP-адрес, с которым вы выходите в сеть. Узнать свой адрес можно на сайте inet.from.sh.

В форме можно указывать в том числе и IP-адреса с символом % в октетах. К примеру, для разграничения доступа с адресов одной подсети:

192.168.1.%

Нажмите «Добавить».

Теперь вы можете подключаться к базе данных на сервере хостинга с вашего компьютера. Для подключения используйте следующие настройки:

  • сервер для подключения: имя вашего домена, например 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

Если соединение установлено, процедуру настройки туннеля можно считать завершенной. В противном случае необходимо тщательно проверить настройки, убедиться в отсутствии сетевых проблем и связаться со службой технической поддержки.

Была ли эта инструкция полезной?

26 ноября, 2016 12:27 пп
13 680 views
| Комментариев нет

mySQL

Сервер баз данных хранит в таблицах огромное количество важной информации. Проще всего взаимодействовать с этими данными на локальном компьютере с помощью графического интерфейса. Чтобы создать удаленное подключение к серверу базы данных, как правило, необходимо настроить MySQL для прослушивания всех интерфейсов, ограничить доступ к порту 3306 в брандмауэре и настроить права пользователей и хостов. Прямые подключения к MySQL могут стать угрозой безопасности.

Чтобы устранить эти проблемы, существуют различные инструменты для удалённого подключения: HeidiSQL в Windows, Sequel Pro для macOS, кроссплатформенный инструмент MySQL Workbench и т.п. С помощью этих инструментов можно создать SSH-подключение к серверу БД и обойти все потенциальные опасности.

Это краткое руководство поможет вам подключиться к удалённому серверу баз данных с помощью MySQL Workbench.

Требования

  • Сервер MySQL с SSH-доступом (инструкции по установке можно найти в этой статье).
  • Инструмент MySQL Workbench, установленный на локальной машине. MySQL Workbench подходит для большинства операционных систем (Windows, macOS, Ubuntu Linux, RedHat Linux, Fedora и т.д.). Чтобы загрузить инсталлятор, откройте эту страницу.

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

  • Внешний IP-адрес сервера MySQL.
  • Порт SSH (стандартный – 22).
  • Аккаунт пользователя с SSH-доступом к серверу (с парольной аутентификацией или ключами).
  • Учётные данные пользователя MySQL.

SSH-подключение к серверу баз данных

После установки MySQL Workbench запустите программу. Создайте новое подключение. Для этого нужно нажать кнопку + (в главном окне рядом с MySQL Connections).

На экране появится окно Connect to Database. Введите запрашиваемые данные:

  • В поле Connection Name укажите описательное название соединения (Connection Name помогает отличить одно соединение от другого). Для примера мы используем database_for_myapp.
  • Значение Connection Method замените на Standard TCP/IP over SSH
  • В поле SSH Hostname укажите IP сервера MySQL. Если вы изменили стандартный порт SSH, укажите пользовательский номер порта через двоеточие после IP-адреса.
  • В SSH Username укажите имя пользователя для SSH-подключения.
  • В SSH Password укажите пароль выбранного пользователя. Если вместо пароля вы используете ключи, выберите SSH-ключ.
  • В полях MySQL Hostname и MySQL Server Port оставьте значения по умолчанию.
  • В Username укажите имя пользователя MySQL.
  • В Password укажите пароль или оставьте поле пустым. Если вы не храните пароль в MySQL Workbench, программа запросит его при подключении.
  • Чтобы убедиться, что все настройки указаны правильно, выберите Test Connection.
  • Чтобы создать подключение, нажмите OK.

Подключившись к базе данных, вы можете просмотреть информацию о MySQL: состояние базы данных, текущие соединения и конфигурации, пользователи и права доступа. MySQL Workbench также поддерживает импорт и экспорт дампа MySQL, благодаря чему вы можете быстро выполнить резервное копирование и восстановление базы данных.

Список баз данных можно найти в SCHEMAS в левой навигационной панели. Стрелка рядом с каждой базой данных позволяет расширить информацию и перемещаться по таблицам и объектам. Вы можете просматривать таблицы, писать сложные запросы и редактировать данные.

Также MySQL Workbench позволяет управлять соединениями. Для этого выберите в меню Database → Connect to Database, а затем нажмите ⌘U в Mac или CTRL+U в Windows и Linux. Чтобы подключиться к другой БД, создайте новое соединение.

Заключение

MySQL Workbench позволяет быстро создать безопасный SSH-туннель к удалённому серверу баз данных MySQL и взаимодействовать с данными при помощи локальной машины. Этот метод устраняет все потенциально опасные действия и не требует изменений в настройках безопасности MySQL.

Tags: MySQL, MySQL Workbench

I have mySQL setup in a PC on my local network, how do I connect to it? I also have mySQL installed in this computer (which I want to use to connect to the database).

I tried the following but it’s not working

mysql -u user -h 192.168.1.28:3306 -p password
ERROR 2005 (HY000): Unknown MySQL server host '192.168.1.28:3306' (0)

EDIT:
Thanks for your help. Anyway, I connect without 3306 and I have another problem. MACBOOK is the name of my client computer.

mysql -u user -ppassword -h 192.168.1.28 
ERROR 1045 (28000): Access denied for user 'user'@'MACBOOK' (using password: YES)

Thanks.

asked Feb 13, 2012 at 8:27

revolver's user avatar

revolverrevolver

2,3455 gold badges23 silver badges40 bronze badges

2

That was a very useful question! Since we need to run the application with a centralized database, we should give the privileges to that computer in LAN to access the particular database hosted in LAN PC. Here is the solution for that!

  1. Go to MySQL server
  2. Type the following code to grant access for other pc:
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root_password';
    
  3. then type:
    FLUSH PRIVILEGES;
    

Replace % with the IP you want to grant access for!

Jastria Rahmat's user avatar

answered Nov 27, 2014 at 12:27

user3811169's user avatar

user3811169user3811169

2272 silver badges7 bronze badges

5

Users who can Install MySQL Workbench on MySQL Server Machine

If you use or have MySQL Workbench on the MySQL Server PC you can do this with just a few clicks. Recommend only for development environment.

  1. Connect to MySQL Server

Connect to MySQL Server with MySQL Workbench

  1. Find this option Users and Privileges from Navigator and click on it.

Users and Privileges - MySQL Workbench

  1. Select root user and change value for Limit to Hosts Matching to %.

Users and Privileges - MySQL Workbench

  1. The click Apply at the bottom.

This should enable root user to access MySQL Server from remote machine.

answered Jan 20, 2019 at 5:02

ImtiazeA's user avatar

ImtiazeAImtiazeA

1,21013 silver badges19 bronze badges

Since you have MySQL on your local computer, you do not need to bother with the IP address of the machine. Just use localhost:

mysql -u user -p

or

mysql -hlocalhost -u user -p

If you cannot login with this, you must find out what usernames (user@host) exist in the MySQL Server locally. Here is what you do:

  • Step 01) Startup MySQL so that no passwords are require no passwords and denies TCP/IP connections

    service mysql restart --skip-grant-tables --skip-networking
    

    Keep in mind that standard SQL for adding users, granting and
    revoking privileges are disabled.

  • Step 02) Show users and hosts

    select concat(''',user,'''@''',host,'''') userhost,password from mysql.user;
    
  • Step 03) Check your password to make sure it works

    select user,host from mysql.user where password=password('YourMySQLPassword');
    

    If your password produces no output for this query, you have a bad
    password.

    If your password produces output for this query, look at the users
    and hosts. If your host value is ‘%’, your should be able to connect
    from anywhere. If your host is ‘localhost’, you should be able to
    connect locally.

    Make user you have ‘root'@'localhost‘ defined.

    Once you have done what is needed, just restart mysql normally

    service mysql restart
    

    If you are able to connect successfully on the macbook, run this
    query:

    SELECT USER(),CURRENT_USER();
    

    USER() reports how you attempted to authenticate in MySQL

    CURRENT_USER() reports how you were allowed to authenticate in
    MySQL

Let us know what happens !!!

UPDATE 2012-02-13 20:47 EDT

Login to the remote server and repeat Step 1-3

See if any user allows remote access (i.e, host in mysql.user is ‘%’). If you do not, then add ‘user’@’%’ to mysql.user.

cursorrux's user avatar

cursorrux

1,3744 gold badges9 silver badges20 bronze badges

answered Feb 13, 2012 at 18:48

RolandoMySQLDBA's user avatar

RolandoMySQLDBARolandoMySQLDBA

43.5k16 gold badges91 silver badges131 bronze badges

1

Follow a simple checklist:

  1. Try pinging the machine ping 192.168.1.2
  2. Ensure MySQL is running on the specified port 3306 i.e. it has not been modified.
  3. Ensure that the other PC is not blocking inbound connections on that port. If it is, add a firewall exception to allow connections on port 3306 and allow inbound connections in general.
  4. It would be nice if you could post the exact error as it is displayed when you attempt to make that connection.

answered Feb 13, 2012 at 8:30

Rohan Prabhu's user avatar

Rohan PrabhuRohan Prabhu

7,0565 gold badges37 silver badges67 bronze badges

mysql -u user -h 192.168.1.2 -p

This should be enough for connection to MySQL server.
Please, check the firewall of 192.168.1.2 if remote connection to MySQL server is enabled.

Regards

El Developer's user avatar

El Developer

3,3201 gold badge20 silver badges40 bronze badges

answered Feb 13, 2012 at 14:47

zdrsoft's user avatar

zdrsoftzdrsoft

2,22718 silver badges10 bronze badges

0

In Ubuntu Follow these steps:

  1. Set bind-address at /etc/mysql/mysql.conf.d

    Change bind-address = 127.0.0.1 to bind-address = 192.24.805.50 # your IP

  2. Grant permission for the remote machine

    mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'[remoteip]' IDENTIFIED
    BY 'anypassword' WITH GRANT OPTION;
  3. Then try connect from remote machine

    mysql -u root -h 192.24.805.50 -p

cursorrux's user avatar

cursorrux

1,3744 gold badges9 silver badges20 bronze badges

answered Nov 8, 2019 at 10:35

comeondrupal's user avatar

Connecting to any mysql database should be like this:

$mysql -h hostname -Pportnumber -u username -p (then enter)

Then it will ask for password. Note: Port number should be closer to -P or it will show error. Make sure you know what is your mysql port. Default is 3306 and is optional to specify the port in this case. If its anything else you need to mention port number with -P or else it will show error.

For example:
$mysql -h 10.20.40.5 -P3306 -u root -p (then enter)

Password:My_Db_Password

Gubrish about product you using.

mysql>_

Note: If you are trying to connect a db at different location make sure you can ping to that server/computer.

$ping 10.20.40.5

It should return TTL with time you got back PONG.
If it says destination unreachable then you cannot connect to remote mysql no matter what.

In such case contact your Network Administrator or Check your cable connection to your computer till the end of your target computer. Or check if you got LAN/WAN/MAN or internet/intranet/extranet working.

answered Feb 15, 2016 at 11:38

sarathkm's user avatar

sarathkmsarathkm

1,2169 silver badges10 bronze badges

actually you shouldn’t specify port in the host name. Mysql has special option for port (if port differs from default)

kind of

mysql --host=192.168.1.2 --port=3306

answered Feb 13, 2012 at 8:32

Odobenus Rosmarus's user avatar

You don’t have to specify ‘:3306’ after the IP, it’s the default port for MySQL.

And if your MySQL server runs with another port than 3306, then you have to add ‘-P [port]’ instead of adding it to the IP address.

The MySQL client won’t recognize the syntax «host:port», you HAVE to use -P [port] instead.

And btw, if you use ‘-p password’, it won’t work and will ask you the password again. You have to stick the password to the -p : -ppassword. (still, it’s a very bad habit, because anyone that could do a PS on your server could see the plain password…)

answered Feb 13, 2012 at 8:31

huelbois's user avatar

huelboishuelbois

6,6321 gold badge19 silver badges21 bronze badges

You should use this:

>mysql -u user -h 192.168.1.2 -P 3306 -ppassword

or this:

>mysql -u user -h 192.168.1.2 -ppassword

…because 3306 is a default port number.

mysql Options

answered Feb 13, 2012 at 8:33

Devart's user avatar

DevartDevart

118k22 gold badges162 silver badges184 bronze badges

I have mySQL setup in a PC on my local network, how do I connect to it? I also have mySQL installed in this computer (which I want to use to connect to the database).

I tried the following but it’s not working

mysql -u user -h 192.168.1.28:3306 -p password
ERROR 2005 (HY000): Unknown MySQL server host '192.168.1.28:3306' (0)

EDIT:
Thanks for your help. Anyway, I connect without 3306 and I have another problem. MACBOOK is the name of my client computer.

mysql -u user -ppassword -h 192.168.1.28 
ERROR 1045 (28000): Access denied for user 'user'@'MACBOOK' (using password: YES)

Thanks.

asked Feb 13, 2012 at 8:27

revolver's user avatar

revolverrevolver

2,3455 gold badges23 silver badges40 bronze badges

2

That was a very useful question! Since we need to run the application with a centralized database, we should give the privileges to that computer in LAN to access the particular database hosted in LAN PC. Here is the solution for that!

  1. Go to MySQL server
  2. Type the following code to grant access for other pc:
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root_password';
    
  3. then type:
    FLUSH PRIVILEGES;
    

Replace % with the IP you want to grant access for!

Jastria Rahmat's user avatar

answered Nov 27, 2014 at 12:27

user3811169's user avatar

user3811169user3811169

2272 silver badges7 bronze badges

5

Users who can Install MySQL Workbench on MySQL Server Machine

If you use or have MySQL Workbench on the MySQL Server PC you can do this with just a few clicks. Recommend only for development environment.

  1. Connect to MySQL Server

Connect to MySQL Server with MySQL Workbench

  1. Find this option Users and Privileges from Navigator and click on it.

Users and Privileges - MySQL Workbench

  1. Select root user and change value for Limit to Hosts Matching to %.

Users and Privileges - MySQL Workbench

  1. The click Apply at the bottom.

This should enable root user to access MySQL Server from remote machine.

answered Jan 20, 2019 at 5:02

ImtiazeA's user avatar

ImtiazeAImtiazeA

1,21013 silver badges19 bronze badges

Since you have MySQL on your local computer, you do not need to bother with the IP address of the machine. Just use localhost:

mysql -u user -p

or

mysql -hlocalhost -u user -p

If you cannot login with this, you must find out what usernames (user@host) exist in the MySQL Server locally. Here is what you do:

  • Step 01) Startup MySQL so that no passwords are require no passwords and denies TCP/IP connections

    service mysql restart --skip-grant-tables --skip-networking
    

    Keep in mind that standard SQL for adding users, granting and
    revoking privileges are disabled.

  • Step 02) Show users and hosts

    select concat(''',user,'''@''',host,'''') userhost,password from mysql.user;
    
  • Step 03) Check your password to make sure it works

    select user,host from mysql.user where password=password('YourMySQLPassword');
    

    If your password produces no output for this query, you have a bad
    password.

    If your password produces output for this query, look at the users
    and hosts. If your host value is ‘%’, your should be able to connect
    from anywhere. If your host is ‘localhost’, you should be able to
    connect locally.

    Make user you have ‘root'@'localhost‘ defined.

    Once you have done what is needed, just restart mysql normally

    service mysql restart
    

    If you are able to connect successfully on the macbook, run this
    query:

    SELECT USER(),CURRENT_USER();
    

    USER() reports how you attempted to authenticate in MySQL

    CURRENT_USER() reports how you were allowed to authenticate in
    MySQL

Let us know what happens !!!

UPDATE 2012-02-13 20:47 EDT

Login to the remote server and repeat Step 1-3

See if any user allows remote access (i.e, host in mysql.user is ‘%’). If you do not, then add ‘user’@’%’ to mysql.user.

cursorrux's user avatar

cursorrux

1,3744 gold badges9 silver badges20 bronze badges

answered Feb 13, 2012 at 18:48

RolandoMySQLDBA's user avatar

RolandoMySQLDBARolandoMySQLDBA

43.5k16 gold badges91 silver badges131 bronze badges

1

Follow a simple checklist:

  1. Try pinging the machine ping 192.168.1.2
  2. Ensure MySQL is running on the specified port 3306 i.e. it has not been modified.
  3. Ensure that the other PC is not blocking inbound connections on that port. If it is, add a firewall exception to allow connections on port 3306 and allow inbound connections in general.
  4. It would be nice if you could post the exact error as it is displayed when you attempt to make that connection.

answered Feb 13, 2012 at 8:30

Rohan Prabhu's user avatar

Rohan PrabhuRohan Prabhu

7,0565 gold badges37 silver badges67 bronze badges

mysql -u user -h 192.168.1.2 -p

This should be enough for connection to MySQL server.
Please, check the firewall of 192.168.1.2 if remote connection to MySQL server is enabled.

Regards

El Developer's user avatar

El Developer

3,3201 gold badge20 silver badges40 bronze badges

answered Feb 13, 2012 at 14:47

zdrsoft's user avatar

zdrsoftzdrsoft

2,22718 silver badges10 bronze badges

0

In Ubuntu Follow these steps:

  1. Set bind-address at /etc/mysql/mysql.conf.d

    Change bind-address = 127.0.0.1 to bind-address = 192.24.805.50 # your IP

  2. Grant permission for the remote machine

    mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'[remoteip]' IDENTIFIED
    BY 'anypassword' WITH GRANT OPTION;
  3. Then try connect from remote machine

    mysql -u root -h 192.24.805.50 -p

cursorrux's user avatar

cursorrux

1,3744 gold badges9 silver badges20 bronze badges

answered Nov 8, 2019 at 10:35

comeondrupal's user avatar

Connecting to any mysql database should be like this:

$mysql -h hostname -Pportnumber -u username -p (then enter)

Then it will ask for password. Note: Port number should be closer to -P or it will show error. Make sure you know what is your mysql port. Default is 3306 and is optional to specify the port in this case. If its anything else you need to mention port number with -P or else it will show error.

For example:
$mysql -h 10.20.40.5 -P3306 -u root -p (then enter)

Password:My_Db_Password

Gubrish about product you using.

mysql>_

Note: If you are trying to connect a db at different location make sure you can ping to that server/computer.

$ping 10.20.40.5

It should return TTL with time you got back PONG.
If it says destination unreachable then you cannot connect to remote mysql no matter what.

In such case contact your Network Administrator or Check your cable connection to your computer till the end of your target computer. Or check if you got LAN/WAN/MAN or internet/intranet/extranet working.

answered Feb 15, 2016 at 11:38

sarathkm's user avatar

sarathkmsarathkm

1,2169 silver badges10 bronze badges

actually you shouldn’t specify port in the host name. Mysql has special option for port (if port differs from default)

kind of

mysql --host=192.168.1.2 --port=3306

answered Feb 13, 2012 at 8:32

Odobenus Rosmarus's user avatar

You don’t have to specify ‘:3306’ after the IP, it’s the default port for MySQL.

And if your MySQL server runs with another port than 3306, then you have to add ‘-P [port]’ instead of adding it to the IP address.

The MySQL client won’t recognize the syntax «host:port», you HAVE to use -P [port] instead.

And btw, if you use ‘-p password’, it won’t work and will ask you the password again. You have to stick the password to the -p : -ppassword. (still, it’s a very bad habit, because anyone that could do a PS on your server could see the plain password…)

answered Feb 13, 2012 at 8:31

huelbois's user avatar

huelboishuelbois

6,6321 gold badge19 silver badges21 bronze badges

You should use this:

>mysql -u user -h 192.168.1.2 -P 3306 -ppassword

or this:

>mysql -u user -h 192.168.1.2 -ppassword

…because 3306 is a default port number.

mysql Options

answered Feb 13, 2012 at 8:33

Devart's user avatar

DevartDevart

118k22 gold badges162 silver badges184 bronze badges

20 декабря 2022

Работать с MySQL можно с сервера, на котором расположена база данных, или с подручного устройства. Дистанционная работа с MySQL позволяет вносить изменения в БД с любого компьютера и использовать для этого удобные приложения. Поэтому перед начинающими разработчиками встает вопрос о том, как подключиться к базе данных MySQL удаленно. Выбор способа подключения зависит от уровня навыков специалиста и сложности стоящих перед ним задач: через веб-интерфейс phpMyAdmin — для повседневной работы, или через протокол SSH — для создания безопасного соединения и выполнения сложных функций. Инструкция по тому, как подключиться к базе данных MySQL — в статье.

С помощью phpMyAdmin

Панель phpMyAdmin — веб-приложение с удобным графическим интерфейсом для работы с сервером MySQL. Приложение поддерживает большинство функций системы управления базами данных:

  • создание, копирование и удаление базы данных;
  • создание таблиц;
  • редактирование табличных полей;
  • поиск информации по БД;
  • выполнение SQL-запросов;
  • просмотр прав пользователя и управление ими;
  • импорт и экспорт данных.

Как подключиться к MySQL.

Изображение от Freepik

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

Интерфейс phpMyAdmin.

В 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.

Подключение через Putty.

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

Подключение через Putty (2).

Шаг 3. Установка соединения с удаленным сервером по SSH. После установки всех настроек вернитесь в пункт Session и нажмите кнопку Open. Пройдите авторизацию по логину и паролю от ftp. Как правило, логин – root, а пароль отправляется хостингом в почтовом письме после установки ОС.

Linux

В дистрибутивах Линукс удаленное подключение к MySQL создается с помощью командной строки — Терминала. Последовательность команд:

  1. Создание SSH-туннеля:

    ssh -L3306:localhost:3306 -n пользователь@site.com.

  2. Настройка удаленного подключения к MySQL через конфигурационный файл:

    sudo nano /etc/mysql/my.cnf.

  3. Создание комментария:

    # bind-address = 127.0.0.1

  4. Сохранение правок и обновление параметров MySQL

    sudo service mysql restart.

  5. Создание пользователя

    GRANT ALL ON *.* TO имя_пользователя@127.0.0.1 IDENTIFIED BY ‘пароль’.

  6. Проверка подключения через Telnet.
  7. Соединение с сервером:

    mysql -u имя_пользователя –h 127.0.0.1 –p; mysql -h наименование хоста -u dbUser -p dbName.

Заключение

MySQL облегчает работу с данными сайта. Управлять БД напрямую с сервера, на котором она расположена, не всегда удобно, иногда может потребоваться дистанционная работа. Чтобы обезопасить подключение к серверу и доступ к данным, используют сочетание SSH-туннеля и специальных программ: в Windows — PuTTY, в Linux — Терминала. Когда пользователь нуждается в интуитивно понятном интерфейсе, он может воспользоваться phpMyAdmin.

Что такое MySQL и зачем может понадобиться удаленный доступ к нему

MySQL — широко известная система управления базами данных. Наиболее часто эта служба используется так, что и базы данных, и все прочие файлы проекта хранятся на одном и том же сервере. При таком раскладе вполне можно предоставлять только локальный доступ, более того, по соображениям безопасности именно так и следует сделать. Но в случае использования многосерверной инфраструктуры настройки потребуется изменить.

Подготовительный этап

Чтобы разрешить доступ к своим базам данных потребуется:

  • Сервер, управляемый актуальной операционной системой (например, Ubuntu 20.04);
  • Доступ к системной учетной записи «root»;
  • Привилегированный доступ к сервису управления базами данных.

Разблокировка доступа к MySQL извне

Чтобы разрешить «внешние» подключения к серверу базы данных, выполните следующие действия:

Войдите на свой сервер как привилегированный пользователь и уточните, какой именно сетевой порт использует MySQL:

netstat -tlnp | grep my

pic1

Как видим, прослушивается TCP-порт 3306. Разрешим доступ к нему в настройках брандмауэра:

ufw allow 3306

pic2

Далее нужно найти, в каком именно из файлов, описывающих настройки MySQL, объявлен адрес, прослушиваемый службой:

grep -r "bind" /etc/mysql/

pic3

Замените значение директивы bind-address на 0.0.0.0 и проверьте результат:

sed -i.bak -e 's/127.0.0.1/0.0.0.0/g' /etc/mysql/mysql.conf.d/mysqld.cnf
cat /etc/mysql/mysql.conf.d/mysqld.cnf | grep bind

pic4

Перезапустите службу:

service mysql restart

Следующий шаг не является обязательным. Вы можете аутентифицироваться в сервисе как существующий пользователь или же создать новый аккаунт и предоставить ему соответствующие привилегии:

mysql  # вход в консоль управления сервисом
CREATE USER <имя_пользователя>;  # создание учетной записи
ALTER USER <имя_пользователя> IDENTIFIED WITH mysql_native_password BY '<пароль>';  # установка пароля
GRANT ALL ON <имя_базы_данных>.* TO <имя_пользователя>;  # предоставление привилегий
FLUSH PRIVILEGES;  # применение сделанных изменений

pic6

Проверка доступности службы

Чтобы проверить результат проделанных действий, войдите в консоль «удаленного» сервера и выполните команду:

mysql -h <IP_сервера_БД> -u<имя_пользователя> -p

pic7

Затем введите или вставьте скопированный ранее в буфер пароль от созданной учетной записи, чтобы попасть на сервер управления базами данных.
Теперь можно, например. посмотреть на содержимое базы:

show databases;
show tables in <имя_базы_данных>;
select * from <имя_базы_данных>.<имя_таблицы>;

pic8

Краткие итоги

После прочтения этой статьи вы узнали, как получить доступ извне к вашему серверу MySQL и удаленно управлять размещенными там данными.

191028
Санкт-Петербург
Литейный пр., д. 26, Лит. А

+7 (812) 403-06-99

700
300

ООО «ИТГЛОБАЛКОМ ЛАБС»

191028
Санкт-Петербург
Литейный пр., д. 26, Лит. А

+7 (812) 403-06-99

700
300

ООО «ИТГЛОБАЛКОМ ЛАБС»

I had to this challenge when working on a Java Project with MySQL server as the database.

Here’s how I did it:

First, confirm that your MySQL server configuration to allow for remote connections. Use your preferred text editor to open the MySQL server configuration file:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Scroll down to the bind-address line and ensure that is either commented out or replaced with 0.0.0.0 (to allow all remote connections) or replaced with Ip-Addresses that you want remote connections from.

Once you make the necessary changes, save and exit the configuration file. Apply the changes made to the MySQL config file by restarting the MySQL service:

sudo systemctl restart mysql

Next, log into the MySQL server console on the server it was installed:

mysql -u root -p

Enter your mysql user password

Check the hosts that the user you want has access to already. In my case the user is root:

SELECT host FROM mysql.user WHERE user = "root";

This gave me this output:

+-----------+
| host      |
+-----------+
| localhost |
+-----------+

Next, I ran the command below to grant the root user remote access to the database named my_database:

USE my_database;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'my-password';

Note: % grants a user remote access from all hosts on a network. You can specify the Ip-Address of the individual hosts that you want to grant the user access from using the command — GRANT ALL PRIVILEGES ON *.* TO 'root'@'Ip-Address' IDENTIFIED BY 'my-password';

Afterwhich I checked the hosts that the user now has access to. In my case the user is root:

SELECT host FROM mysql.user WHERE user = "root";

This gave me this output:

+-----------+
| host      |
+-----------+
| %         |
| localhost |
+-----------+

Finally, you can try connecting to the MySQL server from another server using the command:

mysql -u username -h mysql-server-ip-address -p

Where u represents user, h represents mysql-server-ip-address and p represents password. So in my case it was:

mysql -u root -h 34.69.261.158 -p

Enter your mysql user password

You should get this output depending on your MySQL server version:

Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 4
Server version: 5.7.31 MySQL Community Server (GPL)

Copyright (c) 2000, 2020, 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> 

Resources: How to Allow Remote Connections to MySQL

That’s all.

I hope this helps

Понравилась статья? Поделить с друзьями:
  • Как подключиться к сети после установки windows 7
  • Как подключиться к сети интернет на компьютере windows 10
  • Как подключиться к сетевому сканеру windows 7
  • Как подключиться к xbox one через компьютер windows 10
  • Как подключиться к сетевому окружению в windows 7