Логотип   Простое и понятное управление
  Уникальные возможности по настройке
  Open Server скачали уже 1 020 089 раз!

Форум

Добро пожаловать, Гость!

MySQL: ошибка Access denied

Обсуждение проблем в работе программного комплекса
Аватара пользователя
Dragon_Knight
Сообщения: 581
C нами: 4 года 2 мес
Контакты:

Непрочитанное сообщение Dragon_Knight » 23 фев 2014, 03:21

Тема поднималась на форуме, Но её решение временное и несерьёзное.

1) Захожу в phpMyAdmin и добавляю пользователя + таблица с его именем:
Имя пользователя: opcom
Хост: opcom.local
Пароль: opcom
Подтверждение: opcom


Дальше в PHP пишу следующее:
$MySQL_HOST = "opcom.local";
$MySQL_USER = "opcom";
$MySQL_PASS = "opcom";
$MySQL_BASE = "opcom";
$MySQLi = new mysqli($MySQL_HOST, $MySQL_USER, $MySQL_PASS, $MySQL_BASE); 


В результате получаю: "Access denied for user 'opcom'@'127.0.0.1' (using password: YES)".
Почему ошибка очевидно, тока вот какого хрена MySQL зарезолвил имя наука умалчивает.
MySQL 5.1.XX с такими-же настройками работает замечательно.

Что делаю не так? Использовать в замен хоста % является не решением а дибилизмом, и остаётся только в роутере пробросить порт 3306...

Аватара пользователя
Максим
Сообщения: 4874
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 23 фев 2014, 04:49

Мда, детский сад опять начинается. Естественно оно будет давать запрет доступа, вы же в ХОСТ вписали домен opcom.local, в то время как ломитесь в MySQL с адреса 127.0.0.1 который при превращении в домен скорее всего отдаёт у вас имя компьютера (что-то типа Федя-PC). Указывайте в поле ХОСТ не домен, а ip адрес(а), с которого разрешен доступ к MySQL.

Аватара пользователя
Dragon_Knight
Сообщения: 581
C нами: 4 года 2 мес
Контакты:

Непрочитанное сообщение Dragon_Knight » 23 фев 2014, 04:52

Т.е. приходим к тому, что в PhpMyAdmin указываем 127.0.0.1 а в php имя домена?

Аватара пользователя
Максим
Сообщения: 4874
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 23 фев 2014, 04:59

Видимо вы совсем не понимаете что там и к чему. В PHPMyAdmin при создании пользователя вы указываете откуда (с какого адреса) ему разрешено подключаться. А в PHP вы указывает адрес на котором висит MySQL сервер, т.е. куда надо подключаться. Это совершенно разные вещи.

Добавлено спустя 1 минуту 32 секунды:
Если вкратце, то да, конечно, в случае сервера на адресе 127.0.0.1 указываем этот IP в PHPMyAdmin, а в своих скриптах адрес домена как и сказано в Руководстве Пользователя. Как видите всё очень просто :)

Добавлено спустя 3 минуты 5 секунд:
Другой случай - сервер висит на адресе 192.168.0.2. Тогда при создании юзера в PHPMyAdmin нужно указывать этот адрес. Либо % - что означает можно подключаться с любого адреса, но вам почему-то эта настройка не нравится.

Аватара пользователя
Dragon_Knight
Сообщения: 581
C нами: 4 года 2 мес
Контакты:

Непрочитанное сообщение Dragon_Knight » 23 фев 2014, 05:01

Это и оленю понятно что не MySQL подключаться к php... :)
Тогда зачем в руководстве написано такое:
Данные для подключения к MySQL
Адрес: домен вашего сайта*
Порт: 3306
Пользователь: mysql
Пароль: mysql

* Например, если ваш скрипт размещен по адресу test.server.local/mysql.php, то хостом (адресом) MySQL, PostgreSQL, FTP и Memcache сервера будет домен: test.server.local


Добавлено спустя 1 минуту 16 секунд:
Настройка % мне не нравиться, потому что сервер боевой с доступом из вне, и хотя порт сервера не открыт, как-то не приятно иметь настройку "лезь откуда хочешь"...

Аватара пользователя
Максим
Сообщения: 4874
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 23 фев 2014, 05:05

Dragon_Knight писал(а):Тогда зачем в руководстве написано такое:


В руководстве всё написано верно.

Аватара пользователя
Dragon_Knight
Сообщения: 581
C нами: 4 года 2 мес
Контакты:

Непрочитанное сообщение Dragon_Knight » 23 фев 2014, 05:10

Вы отредактировали своё сообщение, поэтому моё потеряло смысл...
...
В итоге, для упрощения и убыстрения процесса подключения Мы указываем IP (127.0.0.1) и в MySQL и в PHP, что-бы имена не резолвелись (на разыменование домена тоже время нужно-же).

Аватара пользователя
Максим
Сообщения: 4874
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 23 фев 2014, 05:16

Делайте как хотите, но в PHP лучше указывать домен. А что касается резолвинга домена, то он занимает милисекунды, поскольку никаких сетевых запросов никуда не идёт, Windows ведь использует текстовый HOST файл.


Вернуться в «Ошибки Open Server»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость