How to Connect to a MySQL Server Remotely with MySQL Workbench | DigitalOcean

Advanced tab

Creating ssh tunnel from linux or macos x

To create a tunnel use the following command:

Mysql :: security in mysql :: 5.5 connecting to mysql remotely from windows with ssh

  • Install an SSH client on your Windows machine. For a
    comparison of SSH clients, see
    http://en.wikipedia.org/wiki/Comparison_of_SSH_clients.

  • Start your Windows SSH client. Set Host_Name =
    yourmysqlserver_URL_or_IP
    .
    Set
    userid=your_userid
    to log in to your server. This userid value
    might not be the same as the user name of your MySQL account.

  • Set up port forwarding. Either do a remote forward (Set
    local_port: 3306, remote_host:
    yourmysqlservername_or_ip
    ,
    remote_port: 3306 ) or a local forward (Set
    port: 3306, host:
    localhost
    , remote port: 3306).

  • Save everything; otherwise you must to redo it the next time.

  • Log in to your server with the SSH session you just created.

  • On your Windows machine, start some ODBC application (such as
    Access).

  • Create a new file in Windows and link to MySQL using the ODBC
    driver the same way you normally do, except type in
    localhost for the MySQL host server, not
    yourmysqlservername.

  • Parameters tab

    In addition to a number of parameters that are in common with
    Standard TCP/IP connections, this connection method features a
    number of specialized parameters. These options are:

    If a remote host is missing from the system’s list of known hosts,
    a prompt requires you to confirm the host’s fingerprint before
    storing it. If your stored host fingerprint is different than the
    host’s current fingerprint, then an error is generated and you
    will be required to handle the discrepancy from outside of
    MySQL Workbench before creating the connection.

    Prerequisites

    To complete this tutorial, you will need:

    You will also need the following information about the database server you plan to use:

    Ssl tab

    The SSL options for this connection method are the same as the
    options described in
    Section 5.3.1, “Standard TCP/IP Connection Method”.

    Организация ssh туннелирования через putty к mysql

    Организация SSH туннелирования через PUTTY к MySQL 

    Некоторые программы требуют соединения с базой данных MySQL. Например “Предприниматель4″ для соединения с базой данных интернет-магазинов на CMS Shop-Script Free и выгрузки в нее прайс-листа. 
    Примеров много, когда касается речь об облегчении доступа к базам данных. 

    Часто в программе, которой требуется соединение с базой данных MySQL, есть только 4 поля: 
    – хост 
    – база данных 
    – логин 
    – пароль 
    Есть хостеры, которые предоставляют внешний доступ к базам данных, но некоторые его предоставляют только посредством SSH протокола, например, RU-Center. 

    Сами давно используем хостинг данной компании, пока что нет никаких нареканий (субъективное мнение). 

    Чтобы проложить SSH туннель от нашей локальной машины к базе данных на хостинге, рекомендуем использовать программу PuTTY. 

    Далее по шагам распишем весь процесс. 

    1. Скачиваем PuTTY (скачать можно тут с сайта разработчика

    2. Настраиваем SSH туннель в PuTTY. 

         2.1 В категории Session 
    Поле “Host Name (or IP address)”: пишем ip сервера или хост (Например для RU-Center 
    – ssh.ваш_логин.nichost.ru) 
    Поле “Port”: 22 

         2.2 В категории “Connection – SSH – Tunnels” 

         Под “Add new forwarded port” в поле Source port: указываем наш локальный порт, например, 3306 
    (рекомендуем этот, т.к. он является стандартным портом MySQL) 

         Поле “Destination”: ваш_логин.mysql:3306 (для RU-Center) или localhost:3306 (для другого хостера) 

         Выбираем пункт “Local” и “Auto” 

         Делее нажимаем кнопку “Add”. В окошке “Forwarded Ports” должна появиться запись нашего туннеля, 
    напимер, “L3306 ваш_логин.mysql:3306″. 

         После этого нажимаем кнопку “Open”. 

         2.3 Вводим логин и пароль SSH пользователя хостинга. 

         Всё, туннель готов. 

    3. Теперь открываем нашу программу, которой требуется доступ к базе данных MySQL, пишем: 

         Хост: localhost 

         Логин: Ваш логин пользователя базы данных (в RU-Center это ваш_логин_mysql) 

         Пароль: Пароль пользователя базы данных 

         База данных: Название базы данных 

         Порт: 3306 (если потребуется) 

         И соединяемся. 

    Успехов Вам!

    Работа с mysql из командной строки

    How to Connect to a MySQL Server Remotely with MySQL Workbench  | DigitalOcean

    Мне часто друзья задают те или иные вопросы по администрированию и я подумал, почему бы вместо того, чтобы объяснять по 100 раз одно и то же, не писать такие статьи-заметки на сайте? К тому же, это прекрасная возможность в случае чего самому воспользоваться такой заметкой, ведь Вы сами знаете, удержать в голове порой всё не возможно и так или иначе иногда приходится обращаться к настольной книге, так пусть такой книгой станет один из разделов этого сайта. Сегодня мы поговорим о том, как работать с СУБД MySQL из командной строки, да, кто-то скажет — «Накой? Ведь есть phpMyAdmin», отвечаю — зачем тратить драгоценные ресурсы сервера, устанавливая всякую дрянь по типу WebMin, phpMyAdmin и т.п., если всё тоже самое легко можно проделать надёжными, проверенными средствами. Настройка из терминала по SSH-туннелю — наш выбор!

    Что ж, приступим. Соединяемся с сервером по SSH, к примеру через всеми известный PuTTY (A Free Telnet/SSH Client). Теперь перейдём непосредственно к описанию команд.

    Вход на сервер MySQL программой mysql:

    mysql -u root -h localhost -p

    Параметр -u указывает пользователя, который будет входить в систему. Параметр -h указывает узел сети. Обычно это localhost, если вы настраиваете не удаленный сервер. Наконец, -p сообщает программе-клиенту mysql, что для доступа к базе данных будет вводиться пароль. Обратите внимание на приглашение mysql>. Именно здесь вы будете вводить все свои команды. Теперь, находясь в среде mysql в качестве корневого пользователя, мы можем начать настройку базы данных.

    Мы вошли, и на экране — приглашение mysql. Сначала взглянем на список уже имеющихся баз данных. Для этого введем команду SHOW DATABASES.

    SHOW DATABASES;

    Запомните, что команды MySQL следует заканчивать точкой с запятой — ;

    Базы данных создаются командой CREATE DATABASE. Мы назовем свою test.

    CREATE DATABASE test;

    Ответ дает понять, что команда выполнена без каких-либо ошибок. В данном случае, изменилась одна строка. Это относится к главной базе данных mysql, в которой содержится список всех баз данных. Но вам не нужно слишком беспокоиться о второстепенных подробностях. Последнее число означает время выполнения запроса. Убедиться, что база данных создана, мы можем, снова запустив команду SHOW DATABASES.

    Чтобы заняться созданием таблиц в новой базе данных test, нам потребуется установить ее как текущую. Для этого используем команду USE. Параметром этой команды указывается название базы данных, которую нужно сделать текущей. Еще текущую базу можно устанавливать в командной строке, указывая ее название после параметра -D. Давайте продолжим и переключимся на базу данных test.
    Переключение базы данных:

    USE test;

    Привилегии в MySQL

    Предоставление привилегий командой GRANT.
    Привилегиями определяются возможности доступа пользователей к базам данных, таблицам… почти ко всему. Сейчас только суперпользователь root из MySQL может обращаться к базе данных test, согласно данным разрешениям. Давайте создадим ещё одного пользователя, например, admin (администратор), который будет обращаться к базе данных test и работать с информацией из нее. Но прежде, чем начать, давайте взглянем на несколько упрощенный формат команды GRANT.

    GRANT [привилегии] ON база_данных.* TO '[пользователь]'@'[узел]' IDENTIFIED BY '[пароль]';

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

    ALL - дается полный доступ ко всей базе данных
    CREATE - пользователям позволяется создавать таблицы
    SELECT - пользователям позволяется делать запросы к таблицам
    INSERT - пользователям позволяется вставлять данные в таблицу
    SHOW DATABASES - разрешается выводить список баз данных
    USAGE - у пользователя нет привилегий
    GRANT OPTION - пользователям разрешается давать привилегии

    Примечание: Если вы используете MySQL для обмена данными с веб-приложением, то разъясняемые здесь привилегии CREATE, SELECT, INSERT, а также привилегии DELETE и UPDATE (описанные в руководстве по MySQL, раздел GRANT and REVOKE Syntax (англ.)) — единственные, которые, вероятно, потребуются. Многие совершают ошибку, раздавая все привилегии, когда это, в действительности, не нужно. Сверьтесь с разработчиками приложений, действительно ли такие разрешения создадут проблемы в работе.

    Создание пользователя admin:

    GRANT CREATE,SELECT,INSERT,DELETE,UPDATE ON test.* TO 'admin'@'localhost' IDENTIFIED BY 'пароль';

    Итак, пользователи созданы; теперь протестируем их. Сначала выйдем из mysql, написав quit в строке приглашения:

    quit

    Теперь мы снова в консоли. Пользователи настроены, давайте посмотрим, что они могут делать. Попробуйте выполнить несколько запросов к своим БД и посмотрите результат.

    Удаление прав пользователя командой REVOKE.

    Команда REVOKE позволяет запретить доступ пользователю. Можно либо запретить любой доступ, либо только определенный. В самом деле, формат очень похож на GRANT.
    Синтаксис REVOKE:

    REVOKE [привилегии] ON база_данных.* FROM '[пользователь]'@'[узел]';

    Параметры объясняются в разделе команды GRANT. А сейчас мы запретим пользователю любой вид доступа. Скажем, мы выяснили, что учетная запись admin вызывает проблемы с безопасностью. Мы решаем отозвать все права. Заходим как root делаем необходимое.
    Отзыв разрешений для пользователя admin:

    REVOKE ALL ON test.* FROM 'admin'@'localhost';

    Примечание: В данном случае, доступ пользователя прост, поэтому отмена прав на одну базу данных — не проблема. Но обычно вам, скорее всего, потребуется использовать *.* вместо test.*, чтобы заодно отменить доступ пользователя ко всем остальным базам данных.

    Теперь взглянем, как полностью удалить учетную запись командой DELETE, и посмотрим на таблицу пользователей MySQL.

    Удаление учетных записей командой DELETE.
    Таблица пользователей MySQL — это список пользователей и информации о них. Убедитесь, что вы зашли как root. Используйте основную базу данных MySQL.

    Использование основной базы mysql:

    USE mysql;

    Посмотрим, какие в базе mysql существуют таблицы:

    SHOW TABLES;

    Таблица user — та, что нужна. В ней 30 различных полей, и ее сложно читать. Для облегчения чтения используем третью форму команды SELECT. Искомые поля — Host (узел) и User (пользователь).
    Нахождение пользователя admin в таблице user:

    SELECT Host,User FROM user WHERE User = 'admin';

    Теперь, получив информацию, мы можем избавиться от пользователя admin. Это делается командой DELETE; вот ее синтаксис:

    DELETE FROM имя_таблицы WHERE поле='значение';

    Вы могли заметить, что формат DELETE чем-то схож с форматом SELECT. Укажем поле User и значение admin. Это удалит запись из таблицы user, где пользователь — admin, удаляя нашу учетную запись. Сделаем так:
    Удаление пользователя admin:

    DELETE FROM user WHERE User='admin';
    FLUSH PRIVILEGES;

    Команда FLUSH PRIVILEGES нужна, чтобы обновить разрешения.

    На сегодня всё. Согласитесь, всё просто! 😉

    Похожее:  Авторизация через Steam

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

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