web-dev-qa-db-ja.com

MySQLのパスワード制限?

MySQL5.5を新しいVM apt-getを介してUbuntu14 LTSを実行している)にインストールしました。インストール中に、パスワードマネージャーによって生成されたrootユーザーパスワードを設定しました。インストール後、MySQLrootユーザーとして機能にアクセスできませんでした。

<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)

ルートパスワードの設定で問題が発生したと考えて、

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

rootパスワードをリセットしますが、まったく同じパスワードに「リセット」します。同じAccess deniedエラーが引き続き発生しました。

次に、同じ方法を使用して、英数字のみを使用して、より短く、簡単に入力できる(つまり、弱い)ルートパスワードを再度リセットします。これはうまくいきました!これで、rootユーザーとしてMySQL関数にアクセスできます。

唯一の違いはパスワードの複雑さのようです。元の強力なパスワードは18文字で、^\:!などの句読記号が含まれていました。ただし、ASCIIのみで、空白は含まれていません。

このパスワードは、長さまたは文字セットのいずれかに関して、MySQLパスワードが従わなければならないある種の規則に違反しましたか?私は検索しましたが、そのような制限への言及は見つかりませんでした。これはよく知られていると思います。そうでない場合、他に何が問題であった可能性がありますか?

ありがとう!

5
JonahHuron

MySQLソフトウェアによって課されるMySQLパスワードに制限はありません。データベースに関する限り、それらは必要なだけ長く、必要なだけ複雑にすることができます。ただし、いくつかの注意点があります。

シェルやスクリプトなどが、データベースに渡される前にパスワードを解釈する場合があります。特殊文字がある場合は、パスワードが破損する可能性があります。たとえば、パスワードが「*」で、コマンドラインから渡した場合、シェルはそれをワイルドカード文字として解釈し、一連のファイル名を入力します。そのような特殊文字はバックスラッシュ( "\")でエスケープする必要があるかもしれません。

もう1つの注意点:パスワードに非ASCII文字(Unicodeなど)が含まれている場合、データベースとインターフェイスしているものはすべて、データベースにそれが来ることを通知する必要があります。 MySQLはASCIIを想定しており、通常は別の方法で通知する必要があります。

それらのいずれかがあなたの状況に当てはまるかどうかわからない。しかし、私はあなたに尋ねられた質問に対する答えを与えると思いました。

3
Todd Walton