Налаштування віддаленого підключення до MySQL, Веб-програмування
Як встановити з'єднання з віддаленою базою? Для встановлення віддаленого з'єднання потрібно вказати параметри, що характеризують підключення, що встановлюється. Це
* -host * -protocol * -port
Зверніть увагу, що параметри мають дві форми запису: довгу і коротку. У свою чергу, якщо параметр має значення (наприклад, у випадку хоста необхідно вказати ім'я хоста до якого потрібно підключитися), то коротка форма запису може використовуватися з пробілом або без (виключенням цього правила є пароль). Таким чином, наступні три записи є еквівалентними:
* 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_власного_компу це різні користувачі, і кожному з них права потрібно надавати окремою командою.
Якщо після всіхдій у вас виникає помилка (Can't connect to Mysql Server on 'ваш IP'(10061)), значить з'єднання блокує firewall (windows firewall, outpost, антивірус або ще щось).
Якщо виникає помилка, клієнт (тобто ваша програма) не підтримує необхідний сервером протокол. Цю помилку можна виправити, встановивши пароль старого формату: SET PASSWORD FOR user@host = OLD_PASSWORD('password');