Як підключитися до бази даних mysql з віддаленого комп'ютера
Бази даних (БД) - дуже легкий спосіб зберігання даних сайту або програми, і один з плюсів - що кілька комп'ютерів або програм можуть працювати з базою даних одночасно. Якщо ж ваша MySQL не дозволяє підключитися до себе з віддаленого комп'ютера - читайте цю інструкцію.
Інструкція
Що вам знадобиться:
- Встановлена БД MySQL (наприклад, з комплекту Denwer).
- Зв'язка Apache + PHP або програма, що працює з базою даних - встановлена на другому комп'ютері.
- Локальне або Інтернет-з'єднання між комп'ютером-клієнтом і комп'ютером-сервером.
- Доступ до користувача "root" (або будь-якого іншого, що має повні права) бази даних.
1 крок
Для початку, сядьте за комп'ютер, де у вас встановлена MySQL. Зайдіть в папку, де вона у вас встановлена (найчастіше це папка виду "X: usr mysql", де X - будь-яка буква жорсткого або мережевого диска), і там ви знайдете файл "my.cnf". Якщо у нього значок виду "комп'ютер зі стрілочкою, як у ярлика" (див. Зображення до кроку) - створіть в папці ярлик блокнота (або будь-якого іншого текстового редактора, наприклад - Bred 3), І для відкриття файлу "my.cnf" перетягуйте файл на ярлик текстового редактора- якщо ж значок виду "невідомий файл" або "текстовий файл" - відкривайте будь-яким текстовим редактором.
2 крок
Знайдіть рядок з параметром "bind-address", і якщо на початку рядка не варто грати (#) - поставте її. Не забудьте зберегти файл після редагування.
3 крок
Перезапустіть БД. Звичайно, у кожного свої способи - наприклад, можете "вбити" процес "mysqld.exe" через Диспетчер завдань (Ctrl + Alt + Delete), а потім запустити БД спочатку. З новими настройками MySQL буде приймати з'єднання з інших комп'ютерів- правда, обміну даними не вийде, якщо при підключенні не вказати ім'я та пароль користувача, який має право використовувати БД з віддаленого комп'ютера.
4 крок
Підключіться під користувачем "root" (або будь-яким іншим користувачем, що має повні права) до бази даних з того ж комп'ютера, де стоїть база даних, і виконайте наступну команду:
GRANT ALL ON # 42 -. # 42-TO 'user' @ '%' IDENTIFIED BY 'password' WITH GRANT OPTION
Замінивши заздалегідь "user" на ім'я користувача, якому буде дозволено підключатися до БД з віддаленого комп'ютера, "password" - на пароль, який повинен використовувати користувач.
Так само ви можете замінити "# 42 -. # 42-" на "db. *" - Це дозволить користувачеві працювати тільки з базою даних "db" - або на "db.table" - тоді користувач буде ще більш обмеженим у правах і зможе працювати тільки таблицею "table" в базі даних "db". Викликавши команду GRANT кілька разів для одного і того ж користувача, але мене об'єкт, на який даєте права, ви можете вказати точно, з чим зможе працювати користувач.
Команда GRANT в MySQL 5.1 [англ.]
5 крок
Тепер ви зможете підключитися до бази даних з віддаленого комп'ютера, використовуючи ім'я користувача та пароль, які ви використовували в комманде GRANT. Для того, щоб забрати права у користувача (наприклад, забрати право на роботу з певною базою даних), використовуйте команду REVOKE:
REVOKE ALL, GRANT OPTION ON # 42 -. # 42- FROM 'User' @ '%' IDENTIFIED BY 'password'
Параметри йдуть не зовсім в тому ж порядку, що і в попередньому кроці - але вони еквівалентні.
Команда REVOKE в MySQL 5.1 [англ.]
6 крок
Видалити користувача (раптом знадобитися видалити тестового користувача) можна командою DROP USER:
DROP USER 'User' @ '%' IDENTIFIED BY 'password'
Зверніть увагу, що DROP USER не відключить видаляються користувачів, якщо вони зараз підключені до БД- але якщо вони відключаться, то підключитися вже не зможуть.
Команда DROP USER в MySQL 5.1 [англ.]
Поради та попередження:
- '%' В описаних командах позначає, що користувач може під'єднатися з будь-якого комп'ютера. Якщо написати 'localhost' або '127.0.0.1' - тільки з локального. А можна вказати конкретний IP - наприклад, '192.168.0.1'.
- За допомогою команди GRANT ви можете зробити, наприклад, двох різних користувачів з однаковими іменами і паролями, але з різними дозволеними IP-адресами та різними правами. Або два користувача з однаковими іменами, але різними паролями. Думайте, що саме вам потрібно.