2014-07-23 2 views
0

Я только что попытался создать группу пользователей для (в настоящее время локальной) базы данных, но у меня возникли проблемы с подключением к базе данных и не слишком уверен, я делаю неправильно.Создание пользователей MySQL и предоставление привилегий - невозможно подключиться к серверу

Он существует после создания, но я не могу подключиться к базе данных с их учетными данными при использовании Workbench для тестирования соединений.

Я создал свои пользователь, а затем дал им разрешение сразу же после, как так:

CREATE USER 'username'@'%' IDENTIFIED BY 'password'; 
GRANT ALL ON DATABASE.* TO 'username'@'%'; 

Если я бег SELECT * FROM mysql.user; видеть пользователь, я могу видеть, что пользователи там.

Я пробовал сбросить льготы, но это, похоже, не имеет никакого значения.

При попытке подключения к серверу через Workbench в качестве одного из пользователей, которые я создал, я получаю запрос на повторный запрос для моего пароля. Затем он либо висит, либо говорит мне, что пароль неправильный.

Это изначально локально для целей разработки, но я установлю это на сервере, как только у меня это получится. Может ли это быть запущенным локально?

+0

Читайте здесь http://dev.mysql.com/doc/refman/5.1/en/adding-users.html Очевидно, вам нужно создать одного и того же пользователя, дважды с подстановочным знаком и с localhost. – Mihai

+0

Арг, часами прогуливался по документам и не видел этого. Спасибо.Если вы хотите опубликовать это в качестве ответа, я буду убирать свой вопрос, чтобы быть тем, кого я на самом деле просил после всех изменений. – ydaetskcoR

+1

Просто опубликуйте его как свой собственный ответ и примите его, для будущих посетителей. – Mihai

ответ

2

Как упомянуто в документации MySQL для adding users, при локальном подключении пользователя должен быть создан @'localhost', а также подстановочные местах:

Два из счетов имеют имя пользователя Monty и пароль some_pass. Оба счета - это учетные записи суперпользователя с полными привилегиями , чтобы что-то сделать. Учетную запись «monty» @ localhost можно использовать только при подключении к локальному хосту. В учетной записи 'monty' @ '%' используется групповой символ '%' для хост-части, поэтому его можно использовать для подключения с любого хоста .

Для того, чтобы иметь возможность подключаться к обоим , необходимо иметь обе учетные записи для monty. Без учетной записи localhost учетная запись анонимного пользователя для localhost, созданная mysql_install_db, будет иметь приоритет, если monty соединяется с локальным хостом . В результате, monty будет рассматриваться как анонимный пользователь. Причина этого заключается в том, что учетная запись анонимного пользователя имеет больше значение столбца хоста, чем учетная запись «monty» @ '%' и, таким образом, приходит ранее в порядке сортировки таблицы пользователей. (Пользователь сортировка таблицы обсуждаются в Section 6.2.4, “Access Control, Stage 1: Connection Verification”.)

С пользователь только будучи обозначаемый с именем хоста '%' для обеспечения связи в любом месте MySQL будет использовать вместо анонимного <anonymous>''@'localhost' счета, потому что он будет пытаться соответствовать локальному хосту сначала, а затем не найти соответствующее имя пользователя для localhost, и поэтому используйте вместо этого пользователя <anonymous>.

В качестве альтернативы, анонимный пользователь может быть удален, и это также должно устранить проблему, а не дублировать пользователей.