Я пытаюсь настроить ownCloud в тестовой лаборатории. Мне как-то удалось создать пользователя owncloud (что нормально). У учетной записи есть пустой пароль (я не уверен, как это произошло), поэтому я пытаюсь установить его:
По причинам, которые я не Я не понимаю (я не гуру базы данных), база данных говорит мне, что текущего пользователя нет, хотя я вошел в систему с помощью тестовой учетной записи owncloud.
Есть идеи, как заставить MySQL вести себя так, как ожидалось?
РЕДАКТИРОВАТЬ: я был неправ в отношении пользователя «owncloud». Он не был создан, хотя установка ownCloud (я думаю, что я перепутал имя сервера ('owncloud') с пользователем ('owncloud'), потому что я ожидал, что он там будет).
Новый вопрос: как в мире я могу успешно войти под несуществующей учетной записью пользователя?
Следующий результат CURRENT_USER()
mysql> SELECT CURRENT_USER();
+----------------+
| CURRENT_USER() |
+----------------+
| @localhost |
+----------------+
1 row in set (0.00 sec)
говорит, что вы в настоящее время используете базу данных в качестве анонимного пользователя . Недавно установленная база данных MySQL содержит следующие записи пользователя в своей таблице mysql.user:
mysql> SELECT user,host,password from mysql.user;
+------------------+-----------------+-------------------------------------------+
| user | host | password |
+------------------+-----------------+-------------------------------------------+
| root | localhost | *........................................ |
| root | xxxx | *........................................ |
| root | 127.0.0.1 | *........................................ |
| root | ::1 | *........................................ |
| | localhost | |
| | xxxxx | |
| debian-sys-maint | localhost | *........................................ |
+------------------+-----------------+-------------------------------------------+
7 rows in set (0.00 sec)
Существуют некоторые корневые учетные записи (защищенные паролем) и две анонимные учетные записи, разрешающие вход в систему с localhost (запись xxxxx имя хоста машины).
Если в таблице пользователей есть запись без имени пользователя и пароля, применяется следующее правило:
Если значение пользователя пустое, оно соответствует любому имени пользователя. Если строка пользовательской таблицы, которая соответствует входящему соединению, имеет пустое имя пользователя, пользователь считается анонимным пользователем без имени, а не пользователем с именем, которое фактически указал клиент. Это означает, что пустое имя пользователя используется для всей дальнейшей проверки доступа на время соединения (то есть на этапе 2).
(см. документы MySQL, «6.2.4. Контроль доступа, этап 1: проверка соединения» )
В общем, после установки MySQL следует обратить внимание следующей части документации: « 2.11.2. Защита начальных учетных записей MySQL ».
У вас ошибка в команде установки пароля. Вы должны указать установленный пароль для которого .. Правильный синтаксис:
SET PASSWORD FOR 'user-name-here'@'hostname-name-here' = PASSWORD('new-password-here');