(強調鉱山):
形式
のMySQL [オプション] DB_NAME
--password [=パスワード] -p [パスワード]
パスワードにサーバーに接続するときに使用します。 短いオプション形式(-p)を使用する場合、オプションとパスワードの間にスペースを入れることはできません。コマンドラインで--passwordまたは-pオプションの後にパスワード値を省略すると、mysqlはプロンプトを表示します。 [...]
のは、あなたが言及した最初のコマンドに集中してみましょう:
mysql -h myhost -u myuser -p Password
あなたは、これが機能することを言ったが、実際には、それがいけません。マニュアルによれば、-p
とパスワードの間にスペースは入れてはいけません。パスワードがある場合(あなたの場合のように)、パスワードは追加のコマンドラインパラメータ(この場合は最後のコマンドラインパラメータ)として解釈されます。
一方、マニュアルに従って、最後のコマンドラインパラメータを使用するデータベースの名前です。求める
MySQLクライアントは、(コマンドライン上で)、その後myhost
に接続しなければならない:
このように、マニュアルの私の理解によれば、以下のは上記のコマンドが入力されたときに起こるべきmyuser
のパスワード(-p
にが与えられているので、実際のパスワードはではありません)。パスワードが正しく入力されている場合は、myuser
にログインし、直ちにPassword(最後のコマンドラインパラメータ)を名前に持つデータベースに切り替えます。
myuser
のパスワードを書き留めずにすぐに接続すると、あなたはまだmyuser
のパスワードがありません。
いずれの場合も、実際のログインが行われた後に、名前としてパスワード(最後のコマンドラインパラメータ)を持つデータベースが存在しない可能性があるため、エラーメッセージが表示されます。ログイン後にこのようなエラーメッセージが表示された場合、その名前にPassword(最後のコマンドラインパラメータ)が含まれているデータベースがある場合は教えてください。
上記のコマンドがうまくいかない理由がわかっている場合は、2番目のコマンド(mysql -h myhost -u myuser --password=
)が失敗する理由がわかります。この動作が期待されている1
(あなたがあなたの質問を編集した後で)
EDIT。 --password=
と言うのは、正式には--password=''
と同じです。つまり、パスワードとして空の文字列を使用する必要があることをMySQLクライアントに伝えています。
パスワードを要求する場合は、代わりに--password
(等号なし)を使用してください。コマンドラインでは、次のようになります。
mysql -h myhost -u myuser --password
パスワードに先行スペースが含まれていますか。パスワードと '-p'オプションの間にスペースは入れてはいけません。 – Sal
@Salパスワードに先行スペースがある場合、彼は引用符で囲む必要があります(Linux/bashを前提とします)。 – Binarus
スペースは不要です。また、引用符で囲んでみてください。これはAmazon RDS btwにあります。 – john