Видалено підключення до сервера MySQL за допомогою MySQL Workbench. Як у Windows підключитися до MySQL у командному рядку

Для створення бази даних MySQL та подальшого підключення до неї моди, необхідно з розділу «Послуги» замовити «Веб-хостинг». Послуга безкоштовна та дозволяє створити Вам до 10 баз даних. Після замовлення послуги увійдіть до її налаштувань, там буде URL, логін та пароль панелі керування веб-хостингом (скриншот нижче).

Після авторизації, в меню (яке ліворуч) знайдіть розділ «Інструменти», у якому потрібно перейти до пункту «Бази даних». Ви перейдете в розділ Управління базами даних, де зможете бачити створені вами бази даних. У цьому розділі можна створити нову базу даних, натиснувши кнопку «Створити» (скриншот нижче).

Після натискання кнопки "Створити" у Вас з'явиться вікно з формами, які необхідно заповнити. Придумайте унікальне ім'я бази та логін нового користувача. Обов'язково встановіть галочку у формі "Видалений доступ", інакше ваш мод не зможе підключитися до бази даних. Дуже важливий момент! Вам необхідно запам'ятати введені дані, оскільки вони будуть використовуватися при підключенні моди, краще запишіть їх окремо собі в текстовий документ. Приклад заповнення Ви можете побачити на скріншоті нижче.

В цілому вже була створена база даних і дані можна прописувати в моді, але часто буває, коли потрібно ще імпортувати SQL дампи даних у створену базу даних, вони мають розширення.sql і йдуть у папці з файлами вашого мода. Якщо Вам це не потрібно, то можете пропустити наступні два абзаци. Імпортувати можна за допомогою інструмента "PhpMyAdmin" ( на PhpMyAdmin), який знаходиться в меню веб-хостингу в розділі "Доп. додатки». Для авторизації введіть дані, які Ви самі ж створювали вище, а саме логін користувача та пароль від вашої бази даних (дивіться скріншот нижче).

Після авторизації ліворуч Ви побачите список ваших баз даних, клацніть по створеній базі даних лівою кнопкою миші, потім перейдіть в пункт меню «Імпорт». Виберіть пункт «Огляд вашого комп'ютера», після чого натисніть кнопку «Виберіть файл», все це показано на скріншоті нижче. Після вибору необхідного дампа формату .sql, натисніть кнопку "Вперед", почнеться процес імпорту. Після завершення імпорту Ви побачите повідомлення «Імпорт успішно завершено, виконано N запитів (імядампа.sql)».

Фінальна частина. Внесення даних від бази даних до мод. Для цього необхідно скористатися редактором скриптів pwn (pawno.exe), він йде в стандартному складі сервера для Windows (SA-MP Windows Server Download), завантажити його можна з офіційного сайту SA-MP.com (нехай це не вводить Вас в оману , На нашому хостингу Linux, нам потрібна лише програма pawno.exe з папки pawno). Також дуже часто цей редактор знаходиться в архіві з вашим скачаним модом.

Відкрийте редактор pawno.exe. У меню "File" виберіть "Open" для відкриття вашого вихідного мода. Вихідник має розширення.pwn і знаходиться в папці gamemodes. Після відкриття, Вам потрібно знайти та заповнити наступні поля (У дужках пояснення до пунктів):

#define MYSQL_HOST "" (хост бази даних, завжди вказуйте 31.28.170.123)
#define MYSQL_USER "" (користувач)
#define MYSQL_DATABASE "" (ім'я бази)
#define MYSQL_PASSWORD "" (Пароль користувача)

Як хост обов'язково вказуйте наступне значення - 31.28.170.123. Саме ця IP-адреса є хостом бази даних нашого веб-хостингу (не потрібно плутати це з IP вашого ігрового сервера). В інших полях вводите ті дані, які Ви створювали самостійно (адже не дарма ми говорили Вам ще на етапі створення БД про те, що Вам потрібно їх запам'ятати). Як приклад уже введених даних дивіться скріншот нижче.

Залишається лише скомпілювати зміни в нашому моді, для цього відкрийте меню "Build" і виберіть "Compile" або просто натисніть клавішу F5. Після успішної компіляції у Вас з'явиться файл з назвою вашого ж мода, що редагується, але тільки не у форматі.pwn, а вже у готовому форматі.amx який можете завантажувати на ваш ігровий сервер за допомогою

28.02.09 11.7K

Ця стаття для тих, хто вперше зіткнувся з необхідністю встановлення віддаленого з'єднання з базою даних 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 [email protected] IDENTIFIED BY 'mypassy';
Виникаючі складнощі

Якщо після всіх дій у вас виникає помилка (Can't connect to Mysql Server on 'ваш IP" (10061)), значить з'єднання блокує firewall (windows firewall, outpost, антивірус або ще щось).

Якщо виникає помилка, клієнт (тобто ваша програма) не підтримує необхідний сервером протокол.
Цю помилку можна виправити, встановивши пароль старого формату:
SET PASSWORD FOR user@host = OLD_PASSWORD('password');

Листопад 26, 2016 12:27 пп 5 360 views | коментарів немає

Сервер баз даних зберігає у таблицях дуже багато важливої ​​інформації. Найпростіше взаємодіяти з цими даними на локальному комп'ютері за допомогою графічного інтерфейсу. Щоб створити віддалене підключення до сервера бази даних, зазвичай необхідно налаштувати 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: ,

Можна не лише через PHP. У комплекті з MySQL постачається консольний клієнт для підключення до сервера MySQL. Консольний - це означає, що програма не має віконного інтерфейсу, а є тільки інтерфейс командного рядка, в якому звернення до баз даних виконується за допомогою SQL запитів.

Команди для підключення до MySQL у командному рядку, а тим більше самі SQL запити ідентичні і для . Надалі для стислості я писатиму «MySQL», але скрізь я маю на увазі «MySQL або MariaDB», оскільки в даному випадку різниці між ними немає.

Підключившись через командний рядок до СУБД MySQL можна виконувати різні завдання: переглядати бази даних та їх таблиці, відправляти запити до баз даних і отримувати результати виконання цих запитів.

Для підключення до сервера MySQL використовується команда клієнтської програми, яка називається mysql.exe. Її потрібно запустити, але зробити потрібно не подвійним кліком, як звичайну програму, а з командного рядка.

Почнемо з того, що натиснемо клавіші. Win+rі виконаємо

Відкриється командний рядок.

Тепер нам потрібно перейти до папки з файлом mysql.exe. Ця папка binу директорії, де встановлена ​​ваша СУБД MySQL. Наприклад, у мене MariaDB, яка встановлена ​​в папці C:\Server\bin\mariadb\. Отже, цікавий для нас файл знаходиться в каталозі C:\Server\bin\mariadb\bin\. Для переходу до цього каталогу використовується команда cdнаступним чином:

Cd C:\Server\bin\mariadb\bin\

У цій команді замініть C:\Server\bin\mariadb\bin\ на правильний для вашої системи шлях

Тепер запустимо файл mysql.exe. Необов'язково вказувати розширення файла.exe - система сама здогадається, що ми маємо на увазі. Також нам потрібно використовувати опцію -uі -p. Після першої опції потрібно вказати ім'я користувача root. Після другої опції – пароль для користувача. У моєму випадку пароль не встановлений, тому я запускаю без опції -p:

Mysql -u root

Може здатися, що мало що змінилося, але нове запрошення командного рядка

MariaDB [(none)]>

говорить про те, що ми підключені до MySQL. Точніше, у моєму випадку ми підключені до сервера MariaDB.

Щоб переглянути список баз даних, введемо команду:

SHOW DATABASES;

Щоб наступні запити надсилалися до певної бази даних (наприклад, до test), використовується команда USE:

USE test;

Щоб переглянути таблиці у вибраній базі даних, запустіть команду:

SHOW TABLES;

Створимо якусь таблицю:

CREATE TABLE AuthorsTBL (AuthorID INT NOT NULL AUTO_INCREMENT, AuthorName VARCHAR(100), PRIMARY KEY(AuthorID));

І знову подивимося вміст бази даних test.

Після того, як Ви встановили сервер MySQL, підключитися до нього Ви можете лише з цієї машини. Зроблено це з метою безпеки системи, оскільки у більшості випадків MySQL використовується в Web, а там у поодиноких випадках розносять web-сервер і сервер баз даних.

У корпоративному сегменті правильніше використовувати 1 сервер під всі схожі завдання. Нерозумно тримати MySQL з однією базою даних на кожному сервері, де він може знадобитися. Тому сервер баз даних має бути один, на якому заведено необхідну кількість баз даних під різні завдання.

До речі, в Web`і розносять сервер бази даних та web-сервер лише у тих випадках, коли потужності одного сервера не вистачає. Орендується виділений сервер та виноситися на нього база даних. Хотілося б уточнити, що робити це розумно лише у межах одного ДЦ.

Дозволяється підключатися до MySQL віддалено

У конфігураційному файлі MySQL є параметр bind-address, який відповідає за це, тому:

  1. відкриваємо конфігураційний файл для редагування:
    sudo nano /etc/mysql/my.cnf
  2. коментуємо рядок:
    # bind-address = 127.0.0.1
  3. перезапускаємо MySQL:
    sudo service mysql restart

Закоментувати цей рядок рівнозначно тому, що присвоїти IP-адресу 0.0.0.0 , тобто дозволити підключатися всім. Вказати 2 IP-адреси в цьому рядку не можна. Якщо потрібно обмежити підключення до MySQL сервера, потрібно використовувати можливості iptables.

Тепер через telnet-клієнт Ви можете підключитися до сервера бази даних, але для того, щоб зайти всередину потрібний обліковий запис, який дозволено підключатися не тільки з localhost. Для цього потрібно підключитися до MySQL із самого сервера та створити такого користувача:

Mysql -u root -p

І командою створюємо користувача:

GRANT ALL PRIVILEGES ON *.* TO "новий_користувач"@"віддалена_адреса" IDENTIFIED BY "пароль" WITH GRANT OPTION;

Цей рядок створює користувача з необмеженими правами, що робити не зовсім правильно. Правильніше максимально обмежити доступ користувача, який підключається віддалено. Тому команда може виглядати так:

GRANT SELECT,INSERT,DELETE,UPDATE,CREATE,ALTER ON "ім'я_бази".* TO "новий_користувач"@"віддалена_адреса" IDENTIFIED BY "пароль" WITH GRANT OPTION;

Цією командою ми обмежили повноваження користувача лише однією базою даних та діями з нею.

Повний список усіх прав, які можна вказати користувачеві:

  • ALL PRIVILEGES– усі права на вказаний об'єкт за винятком призначення прав на цей об'єкт;
  • CREATE- Право створення таблиці;
  • ALTER- Право на зміну таблиці;
  • DROP- Право на знищення таблиці;
  • LOCK TABLES- Право на блокування таблиці;
  • CREATE TEMPORARY TABLES– декларація про створення тимчасових таблиць;
  • CREATE ROUTINE- Право на створення збережених процедур та функцій;
  • ALTER ROUTINE– право на зміну або знищення процедур і функцій, що зберігаються;
  • CREATE VIEW- Право створення уявлення;
  • TRIGGER- Право на створення та знищення тригерів;
  • INDEX– права на створення та знищення індексів;
  • EXECUTE- Право на виконання збережених процедур та функцій;
  • EVENT- Право створення подій;
  • CREATE USER– права на створення, знищення, перейменування користувача та зняття всіх прав. Призначається лише на глобальному рівні;
  • SELECT- Право на вибірку;
  • DELETE- Право видалення;
  • INSERT- Право на вставку;
  • UPDATE- Право на оновлення;
  • FILE– право використання команд SELECT … INTO OUTFILE і LOAD DATA INFILE ;
  • PROCESS- право на перегляд усіх процесів командою SHOW PROCESSLIST;
  • SHOW DATABASES– право перегляду списку схем;
  • SHOW VIEW– право перегляду списку представлений;
  • SHUTDOWN- Право на закриття.