Назад | Перейти на главную страницу

Соединение с MySQL - доступ запрещен для пользователя username @ localhost (с паролем: YES)

У меня есть пользователь, которого я использую на своих php-страницах для выполнения запросов к mysql db, и теперь я пытаюсь использовать того же пользователя в eclipse / BIRT для создания отчетов, но получаю сообщение об ошибке

Доступ запрещен для пользователя username @ localhost (с паролем: YES)

Кто-нибудь знает, что мне не хватает?

Используйте config.sample.inc.php, чтобы создать свой собственный config.inc.php (в папке phpMyAdmin), который включает в себя такие строки (значение по умолчанию, вероятно, подойдет вам):

/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;

Вы должны добавить username@% запись, где «%» - это подстановочный знак, означающий «откуда угодно». Или, что более безопасно, вы можете добавить запись, например username@11.22.33.44 или username@mydomain.tld

Утверждение «Доступ запрещен для пользователя 'username' @ 'localhost' (с использованием пароля: YES)» может появиться даже до того, как будет установлено соединение с сервером базы данных. Я собираюсь предположить, что это, скорее всего, проблема, поскольку я предполагаю, что вы знаете правильный пароль, и я также сделаю предположение, что вы знаете, что у вас есть правильные разрешения для таблиц, к которым вы пытаетесь получить доступ, поскольку вы заявили, что у вас есть пользователь которые вы используете со своего веб-сайта для выполнения запросов к базе данных.

Вы действительно не указали, где находится экземпляр eclipse, но я собираюсь предположить, что на рабочей станции, которая не находится в той же сети, что и ваш сервер. Сначала я хотел бы убедиться, что вы можете подключиться к серверу базы данных. MySQL по умолчанию работает на порту tcp / 3306. Я бы просто попытался установить соединение telnet, чтобы увидеть, соединяется ли он, "telnet (db_server_ip) 3306". Если соединение закрыто, вам нужно будет открыть порты с вашей рабочей станции на ваш сервер db в зависимости от количества брандмауэров, которые мешают.

Решение было очень простым, я просто перестал использовать localhost и сменил IP-адрес на настоящий.