これについては、どうも理解できないようです。
コマンドラインを使用して、別のサーバーにある MySQL データベースに接続したいと考えています。 先に進み、ユーザーのユーザー名とパスワードを作成しました。 また、そのデータベースに対するすべての権限をそのユーザーに付与しました。
コマンドを使用するとmysql -h <hostname> -u <username> -p
、次のエラーが発生します。
ERROR 1045 (28000): Access denied for user '<username>'@'<local_machine_hostname>' (using password: YES)
問題は、現在のマシンのホスト名がユーザー名に追加され続けることです。明らかに、これはuser@<local_machine_hostname>
正しくありません。
何を入力するかは問題ではありません。たとえば、次のように入力するとします。
mysql -h <hostname> -u '<username>'@'<hostname>' -p
同じことを行いますが、エラー出力では次のように表示されます。
Access denied for user '<username>@<hostname>'@'<local_machine_hostname>'
設定ファイル内に、このような状況を引き起こす設定があるのでしょうか? 本当に困っています。Tikiwiki サーバーをセットアップする必要があるのですが、mysql をセットアップする手順で、ローカル マシンのホスト名が mysql ログイン名に追加され続けるため、接続できません。
答え1
MySQL の権限はホストに基づいています。ユーザーを作成する (または GRANT) ときに、ホスト名を指定します。ホスト名は '%' または 'localhost' または他の IP またはホスト名にすることができます。これはセキュリティ機能です。これが行われるようにする必要があります。アクセスが拒否されたと通知されるときに、ユーザー名にホスト名が「追加」されるわけではありません。それぞれが mysql.users テーブルの異なる列に保存されます。そのユーザーとして自分のマシンから MySQL にログインできるようにするには、自分のマシンからそのユーザーにアクセスを許可する必要があります...
からCREATE USER に関する MySQL ドキュメント:
各アカウントの名前は、GRANT ステートメントと同じ形式 (例: 'jeffrey'@'localhost') で付けられます。アカウント名のユーザー名部分のみを指定すると、ホスト名部分として '%' が使用されます。アカウント名の指定に関する詳細については、セクション 12.4.1.3「GRANT 構文」を参照してください。
答え2
mysql wworkbannchにアクセスしてコードを入力します
ALTER USER ALTER USER 'root'@'localhost' は '123' によって mysql_native_password で識別されます。