Связывание MySQL Workbench с моим удаленным сервером
Я только что загрузил MySQL Workbench.
Но я не совсем понимаю, как синхронизировать это с базами данных на моем удаленном сервере.
Рабочий стол запрашивает "имя хоста", поэтому я указал имя хоста моего удаленного сервера. Я назначаю порт 3306.
Затем я предоставляю имя пользователя. Это имя пользователя, которое я использую при входе в PhpAdmin. Должен ли я использовать другое имя?
Затем я предоставляю пароль, снова тот же, который я использую для PhpAdmin.
Но это не работает.
Как ни странно, ошибка всегда говорит мне, что мое имя пользователя: username@current_network_im_using_to_access_the_internet
Но это кажется неправильным - на phpAdmin мое имя пользователя говорит username@localhost
,
Я не совсем уверен, что делать.
Вы можете мне помочь?
4 ответа
MySQL рассматривает логины как специфичные для хоста, с которого они происходят. Вы можете иметь пароль, отличный от вашего домашнего компьютера, чем тот, который вы используете на самом сервере, и вы можете иметь совершенно разные наборы разрешений, предоставленных одному и тому же имени пользователя от разных исходных хостов.
В PHPMyadmin база данных работает на том же сервере, что и веб-сервер, и, следовательно, ссылается на себя как localhost
с IP 127.0.0.1
, Ваш компьютер, на котором установлен Workbench, должен иметь доступ к MySQL с другими учетными данными, чем ваш username@localhost
, Сервер требует, чтобы вы предоставили доступ к вашему имени пользователя с любого хоста, с которого вы намереваетесь подключиться.
В PhpMyAdmin вам нужно будет предоставить доступ к вашей базе данных с удаленного хоста: (См. Также ответ Pekka о том, как разрешить соединения с любого хоста)
GRANT ALL PRIVILEGES on dbname.* TO yourusername@your_remote_hostname IDENTIFIED BY 'yourpassword';
Чтобы увидеть все гранты, которые у вас есть на данный момент localhost
чтобы вы могли продублировать их для удаленного хоста:
SHOW GRANTS FOR yourusername@localhost;
Кроме того, сервер MySQL должен быть настроен для принятия удаленных подключений в первую очередь. Это не всегда так, особенно на веб-хостингах. в my.cnf
файл, skip-networking
строка должна быть удалена или закомментирована. Если нет skip-networking
строка, вы должны закомментировать строку:
bind-address = 127.0.0.1
... затем перезапустите MySQL.
Ваш phpMyAdmin, кажется, работает на том же сервере, что и сама база данных.
Поэтому он может использовать username@localhost
подключиться к серверу.
Вам нужно было бы заставить mySQL принимать подключения извне localhost, добавив другого пользователя username@%
(%
что означает "любой хост").
Однако обратите внимание, что это не очень хорошая практика - если у вас статический IP, рассмотрите возможность ограничения доступа к этому одному адресу.
Если вы планируете использовать рабочую среду MySQL для управления базами данных и таблицами MySQL на удаленном сервере, я рекомендую подключаться через SSH . следуя многим статьям и форумам, я пробовал много других способов, добавляя адрес привязки, добавляя нового пользователя в MySql с uname @ host со всеми привилегиями и т. д., но в моем случае все эти шаги были пустой тратой времени, эти шаги будут полезно, если ваш сервер такой строгий.
Следуйте инструкциям ниже.
- Нажмите кнопку + рядом с заголовком соединений MySql, чтобы добавить новое соединение.
- Введите имя подключения (все, что вам нужно).
- Выберите способ подключения Стандартный TCP / IP через SSH.
- Введите данные SSH, такие как хост (IP / домен), имя пользователя и пароль. (SSH с использованием авторизации по паролю должен быть включен на сервере)
- Детали хоста MySQL, такие как имя хоста (по умолчанию localhost или 127.0.0.1), порт (3306), имя пользователя и пароль MySQL.
- Затем нажмите на тестовое соединение.
Чтобы подключиться к MySQL Workbench, установленному в Windows 10, я нашел приведенный выше пост, написанный Шихабом и отредактированный Дхарманом, полезным для мгновенного подключения. Но вот что я сделал для подключения через TCP/IP, что также было полезно для подключения к MySQL через мой код:
Шаг 1. Изменение адреса привязки в MyMySQL. На компьютере с Ubuntu (где установлен мой MySQL Community Server) с помощью Putty я изменил файл mysqld.cnf с помощью команды «sudo nano /etc/mysql/mysql.conf.d/mysqld». .cnf". Используя клавиши со стрелками, я прокрутил вниз до строки с «адресом привязки» и изменил ее с «127.0.0.1» на «0.0.0.0». Я использовал ctrl+x для закрытия и ввел «Y», чтобы сохранить файл.
Шаг 2: Перезапустите сервер MySQL. Вам необходимо перезапустить сервер MySQL. Для этого вы можете перезапустить его с помощью команды «sudo service mysql restart». Если вы не можете перезапустить, завершите процесс MySQL. Сначала найдите идентификатор процесса MySQL, используя «ps ax | grep mysql», затем завершите процесс, используя «sudo kill [process_id]».
Шаг 3: Изменение настроек брандмауэра Ubuntu Чтобы разрешить внешние подключения, вы должны изменить настройки брандмауэра. Я использовал UFW (Uncomplicated FireWall) для изменения настроек. Запустите UFW, если он еще не включен, с помощью команды «sudo ufw enable». Проверьте статус, используя «статус sudo ufw». Теперь включите подключения к порту MySql 3306 (по умолчанию) с определенного IP-адреса с помощью команды «sudo ufw allow from [ip_address] to any port 3306», или вы можете разрешить все подключения к порту с любого IP-адреса — это ваш IP-адрес. продолжает меняться с помощью команды «sudo ufw allow mysql»
Шаг 4: Создание пользователя в MySQL Я создал пользователя в MySQL, чтобы избежать входа в систему с использованием root, используя команду «CREATE USER 'user_name'@'your_IP_Address' IDENTIFIED BY 'password';
Шаг 5. Подключитесь через рабочую среду MySQL.
- Нажмите База данных
- Нажмите Подключиться к базе данных
- В поле «Метод подключения» выберите «Стандартный TCP/IP».
- В поле «Имя хоста» введите IP-адрес вашего сервера.
- В порту сервера оставьте значение «3306», если только вы не изменили порт MySql на своем сервере.
- В поле Имя пользователя введите имя пользователя вашего сервера
- В поле «Пароль» введите пароль вашего сервера
- Нажмите «ОК».
Шаг 6: Если вы все еще не можете подключиться
- На вашем сервере отключите брандмауэр и проверьте, можете ли вы подключиться
- Если вы можете подключиться, сбросьте брандмауэр с помощью команды «sudo ufw reset» (убедитесь, что вы сделали копию или скриншот всех подключений в брандмауэре. Вы можете получить все порты с помощью команды «sudo ufw status») . Если вы не можете подключиться, перейдите к шагу 9.
- Теперь разрешите каждый порт, который ранее присутствовал, с помощью команды «sudo ufw allow 80», «sudo ufw allow mysql» и т. д.
- Отключите и включите брандмауэр с помощью команд «sudo ufw disable» и «sudo ufw enable» соответственно.
- Проверьте, можете ли вы подключиться через верстак
- Если вы все еще не можете подключиться, просто перезапустите сервер с помощью команды «sudo reboot».
- После завершения перезагрузки вы сможете подключиться к серверу MySQL.
- Если вы все еще не можете подключиться, используйте что-то вроде программного обеспечения nmap, чтобы проверить все открытые порты и посмотреть, видите ли вы 3306. Если вы не видите порт, вам нужно отладить то, что мешает брандмауэру блокировать ваш Соединения с MySQL.
- Проверьте свои привилегии MySQL с помощью команды «показать гранты для 'user_name'@'localhost';». Если вы можете видеть гранты, это означает, что ваш IP-адрес не разрешен. Попробуйте обновить гранты с помощью вашего IP-адреса с помощью следующей команды «ПРЕДВЕДИТЕ ВСЕ ПРИВИЛЕГИИ НА базу данных. или ПРЕДОСТАВЬТЕ ВСЕ ПРИВИЛЕГИИ НА базу данных. (Чтобы разрешить подключения отовсюду)
Если вышеуказанные шаги не работают, но вы все равно хотите подключиться через быстрый взлом Шаг Premium Hack: вход с помощью MySQL Workbench через SSH
- Нажмите База данных
- Нажмите Подключиться к базе данных
- В поле «Метод подключения» выберите «Стандартный TCP/IP через SSH».
- В имени хоста SSH введите IP-адрес вашего сервера.
- В поле Имя пользователя SSH введите имя пользователя вашего сервера.
- В SSH Password введите пароль вашего сервера
- В файле ключа SSH ничего не делайте
- В имени хоста MySQL оставьте его как «127.0.0.1».
- В порте сервера оставьте значение «3306», если только вы не изменили порт MySQL на своем сервере.
- В поле «Имя пользователя» введите свое имя пользователя MySQL, созданное на предыдущем шаге.
- В поле «Пароль» введите свой пароль MySQL, который вы создали на предыдущем шаге.
- Нажмите OkNow, вы сможете войти в свой MySQL Workbench.
Другие полезные команды:
- Чтобы проверить, работает ли MySQL: systemctl status mysql
- Вход в MySQL: sudo mysql -u [имя пользователя] -p (имя пользователя по умолчанию — root, а пароль — ничего (просто нажмите клавишу ввода))
- Чтобы проверить статус ufw: sudo ufw status
- Чтобы проверить нумерованный статус ufw для удаления доступа к порту: sudo ufw status numbered
- Чтобы удалить доступ к порту ufw: sudo ufw delete [number_of_the_port_to_be_deleted_from_previous_command]
- Чтобы запустить службу MySQL: sudo service mysql start
- Чтобы обновить все пакеты: sudo apt update
- Чтобы удалить MySQL: sudo apt-get remove mysql*
- Чтобы установить MySQL Шаг 1: sudo apt update Шаг 2: sudo apt install mysql-server Шаг 3: sudo systemctl start mysql.service Шаг 4 (если что-то сломалось во время установки): sudo apt --fix-broken install