Ограничения пароля MySQL?

Я установил MySQL 5.5 на свежей виртуальной машине под управлением Ubuntu 14 LTS через apt-get. Во время установки я установил root пароль пользователя, сгенерированный менеджером паролей. После установки я не мог получить доступ к любым функциям в качестве пользователя MySQL root:

<user>@<hostname>:~$ mysql -u root -p
Enter password: <root user pw set at installation>
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

думая, что что-то пошло не так, установив пароль root, я использовал

<user>@<hostname>:~$ sudo dpkg-reconfigure mysql-server-5.5

для сброса пароля root, хотя я "сбросить" его на тот же пароль. Я продолжал получать то же самое Access denied ошибка.

затем я снова сбросил пароль root, используя тот же метод, на что-то более короткое и легко печатаемое (т. е. слабое), используя только буквенно-цифровые символы. Это сработало! Теперь я могу получить доступ к функциям MySQL как пользователь root.

похоже, разница только в сложности пароля. Оригинальный крепкий пароль 18 символов и символы пунктуации, такие как^: !, п. Только ASCII, и никаких пробелов.

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

спасибо!

4
задан JonahHuron
30.12.2022 10:15 Количество просмотров материала 2818
Распечатать страницу

1 ответ

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

иногда оболочка, скрипт или что-то еще интерпретирует пароль перед его передачей в базу данных, и если есть какие-то специальные символы, они могут быть искажены. Например, если ваш пароль "*" и передал его через командную строку, оболочка будет интерпретируйте это как подстановочный знак и заполните кучу имен файлов. Вы должны экранировать специальные символы с обратной косой черты ("\").

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

Не уверен, если любой из них применяется к вашей ситуации. но я решил дать тебе ответ на заданный вопрос.

0
отвечен Todd Walton 2022-12-31 18:03

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх