3

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

<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, с точки зрения длины или набора символов? Я искал и не нашел никаких ссылок на такие ограничения, которые, я думаю, были бы хорошо обнародованы. Если не это, то в чем еще проблема?

Спасибо!

1 ответ1

0

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .