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

Как я могу заставить mysql распознавать пользователя root после установки?

Я только что установил MySQL 5.5, и сразу после установки меня попросили установить пароль root, выполнив эти две команды:

/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h linux-opxd password 'new-password'

или

/usr/bin/mysql_secure_installation

Я выполнил первую команду - ОК. На этот раз я выполнил вторую команду с ошибкой:

ошибка: 'Доступ запрещен для пользователя' root '@' localhost '(с использованием пароля: NO)'

Я повторно выполнил первый (для проверки) - ошибка, как указано выше.

Итак, я выполнил mysql_secure_installation. Все прошло нормально и мой пароль был признал. Итак, я снова выполнил первые две команды - и снова ошибка.

В качестве еще одной проверки:

mysql --user=root

Та же ошибка, что и выше.

Я пробовал сбросить пароль с аутентификацией mysql, также пробовал /usr/bin/mysql_upgrade -u root -p - все еще ошибка при попытке запустить консоль mysql от имени root.

Итак, наконец, я отключил аутентификацию, подключился к консоли и выполнил это:

SELECT user();

Выход -- root@. Если я подключаюсь так:

mysql --user='root@localhost'

я получу root@localhost@.

Итак, на данный момент кажется, что это не проблема с привилегиями или отсутствием пароля или что-то в этом роде, а не распознавание пользователя, который был указан в командной строке - mysql добавляет @ в конце и это, кажется, проблема (по крайней мере, для моего глаза).

Возникает вопрос: как заставить MySQL распознавать данного пользователя?

Первая полученная вами ошибка:

ошибка: 'Доступ запрещен для пользователя' root '@' localhost '(с использованием пароля: NO)'

указывает, что вы, вероятно, не использовали параметр -p в команде mysql.

После того, как вы создали пароль root mysql, вы сможете получить доступ к MySql, используя:

mysql -u root -p

Вам будет предложено ввести пароль root MySql.

Если вы хотите разрешить доступ из какого-либо другого места (отличного от локального хоста), вы можете предоставить привилегии с помощью команд SQL GRANT, подобных этой:

mysql> CREATE USER 'username'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON databaseName.* TO 'username'@'localhost' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

Аналогичным образом вы можете включить доступ к MySql DB с какого-либо другого имени хоста / IP-адреса или любого места, изменив 'username' @ 'localhost' на: 'username' @ 'someFQDN', 'username' @ 'IP_address', 'username '@'% '.

Для дополнительной информации рекомендую: http://dev.mysql.com/doc/refman/5.1/en/adding-users.html.

Ура!

Причина, по которой вы получаете сообщение об ошибке во второй команде mysqladmin, заключается в том, что вы не аутентифицируетесь на сервере, используя пароль, который вы установили в первой команде. Просто включите "-p" во вторую команду и введите пароль, когда его попросят. Или, что еще проще, просто используйте команду mysql_secure_installation, поскольку она позаботится об этом и еще кое-что полезное.