CentOS での MySQL ログイン 1045 問題を解決する

CentOS での MySQL ログイン 1045 問題を解決する

アプリケーション全体を CentOS にデプロイする必要があるため、当然ながらデータベース操作は不可欠です。しかし、ユーザーの作成は成功したもののログインできないなどの問題に遭遇する人も多いでしょう。

ログインできない理由は一般的に 2 つあります。まず、リモート アクセス ポートが開いていません。2 番目の理由は、パスワードが間違っていることです (非常に奇妙ですが、ログインに使用したパスワードは明らかに正しいのですが、それでもパスワードが間違っているというメッセージが表示されます。なぜそうなるのかはわかりませんが、エンコードか何かが原因かもしれません)

リモート アクセス ポートが開かれない問題は比較的簡単に解決できます。クラウド サーバーを使用している場合は、コンソールでセキュリティ グループを構成し、対応するポートを開くことができます。

ここで、より厄介な 2 番目の間違いについてお話ししましょう。

2 番目の状況では、多くの場合、次のエラー メッセージが表示されます: 1045 ユーザー 'root'@'%' のアクセスが拒否されました (パスワードの使用: YES)。

大まかに全体の流れを書いてみました。私のオペレーティング システムは Centos7.4 で、MySQL バージョンは 5.7 です。

まず、mysql にログインします。私のユーザーは root ユーザーです。ログインコマンドは

mysql -u root -p

ログインパスワードを入力すると、ウィンドウが以下のように変わります。

まず、システム内のユーザー、そのユーザーの特定の権限、特定のコマンドを確認しましょう。

ユーザーを表示:

SELECT DISTINCT CONCAT('ユーザー: '''、user、'''@'''、host、''';') AS query FROM mysql.user;

特定のユーザーの権限を表示します。

show grants for 'root'@'%';

ウィンドウは以下のように変わります。

次に、ユーザーがデータベースにリモートアクセスして操作できるようにユーザーを作成します。具体的なコマンドは以下のとおりです。

'zhangsan.CQU.2020.lisi' で識別されるユーザー zhangsan を作成します。
'zhangsan.CQU.2020.lisi' で識別される zhangsan@'%' に *.* のすべての権限を付与します。

または、1 つのコマンドだけ:

'zhangsan.CQU.2020.lisi' で識別される 'zhangsan'@'%' に、GRANT オプションを使用して *.* のすべての権限を付与します。

操作が完了したら、必ず更新してください。そうしないと、操作が有効にならない場合があります。コマンドは次のとおりです。

flush privileges;

この時点でユーザーを再度確認すると、先ほど作成したユーザーがもう 1 人いることがわかります。

「exit」と入力して MySQL を終了し、zhangsan アカウントでログインしてみます。

問題は解決しましたが、ログインできません。次はこの問題を解決しましょう。

まず、自分の MySQL my.cnf ファイルを見つけます。(私のファイルは etc フォルダーにありますが、人によってファイルは異なる場合があります。条件で検索するには Linux コマンドを使用します。)

ファイルを開いた後 (vi my.cnf)、編集モード (a) に入り、mysqld キーワードを見つけて、mysqld の下に skip-grant-tables を追加し、保存して終了します (最初に esc、次に :wq)、図に示すように:

コメントを削除するだけです。

次に、次のコマンドで mysql を再起動します。

service mysqld restart

次のステップは、再度ログインしてパスワードを変更することです。

パスワードの入力を求められた場合は、Enter キーを押すだけでパスワードの確認をスキップし、正常にログインできます。次に、mysql データベースに入り、パスワードを変更します。コマンドは次のとおりです。

use mysql

パスワードを変更するには:

ユーザーを更新します。set authentication_string=password("zhangsan.CQU.2020.lisi") where user="zhangsan";

図に示すように:

次に、mysql を終了し、変更したばかりの my.cnf ファイルを元に戻して、mysql を再起動します。

ログインが成功し、リモート接続も成功していることがわかりますので、デモは省略します。それでもリモートログインが成功しない場合は、ポート設定をチェックして、リモートアクセスが有効になっているかどうかを確認してください。

要約する

上記は、CentOS での MySQL ログイン 1045 問題を解決するための編集者による紹介です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。編集者がすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • MySQL パスワードは正しいが、ローカルにログインできない -1045
  • Ubuntu 16.04 に MySQL 5.7.17 をインストールした後、ログイン時に発生するエラー 1045 (28000): ユーザー ''root''@''localhost'' へのアクセスが拒否される問題を解決します。
  • MySQLをインストールした後、ログイン時にルートアカウントプロンプトが表示されます。mysql ERROR 1045 (28000): アクセスが拒否されました。解決策
  • MySQL ログイン エラー プロンプト: ERROR 1045 (28000) の解決方法
  • MySQLにログインする際のERROR 1045問題を解決する方法

<<:  Nginxサービス500:内部サーバーエラーの原因の1つ

>>:  Vue は検証コードのカウントダウンボタンを実装します

推薦する

Nginx 設定場所のマッチング優先順位の簡単な分析

序文Nginx 構成のサーバー ブロック内の場所は、リクエスト URI を一致させるために使用され、...

SQLは、隣接する2行のデータに対して加算、減算、乗算、除算の演算を実行します。

SQL は、データを特定の順序で並べ替え、特定のフィールドでグループ化した後、隣接する 2 つのデ...

Linux にバイナリ MySQL をインストールして MySQL パスワードをクラックする方法

1. システムに必要な libaio ソフトウェアがインストールされていることを確認します。インスト...

ウォーターフォールフローレイアウト(無限読み込み)を実現する js

この記事の例では、ウォーターフォールフローレイアウトを実装するためのjsの具体的なコードを参考までに...

Ubuntu 20.04 に Xrdp サーバー (リモート デスクトップ) をインストールする方法

Xrdp は、グラフィカル インターフェイスを通じてリモート システムを制御できる Microsof...

jQueryはネストされたタブ機能を実装します

この記事では、ネストされたタブ機能を実装するためのjQueryの具体的なコードを参考までに紹介します...

Nginx 逆生成 Mogilefs 分散ストレージ例の詳細な説明

1. 分散ストレージシステムの概要情報技術の継続的な発展により、利便性がもたらされる一方で、データ量...

JavaでTomcatサーバーを起動/停止する方法

1. プロジェクト構造 2.Tomcat.javaを呼び出す パッケージ com.calltomca...

CSS を使用して同じ親タグの左側と右側に 2 つのボタンを配置する方法

この記事では、主に同じ親タグの左側と右側にある 2 つのボタンの CSS レイアウト方法を紹介し、皆...

Hadoop を使用せずに Linux 環境に Spark のスタンドアロン バージョンをインストールする方法

ビッグデータはますます注目を集めており、ビッグデータのいくつかの構成要素に精通していないと、自慢でき...

Vueプロジェクトでlessを使用するためのヒント

目次序文1. スタイルの浸透1. パターン浸透とは何ですか? 2. 使い方は? 2. ミキシング1....

ページを更新せずにフォームを送信するには iframe を使用します

そこで、この問題を解決するために埋め込みフレームワークを導入します。具体的な原則は、フォームがデータ...

MySQL の pid とソケットの詳細な説明

目次1. pidファイルの紹介2.ソケットファイルの紹介要約:ソケット ファイル: Unix ドメイ...

UTF8 でエンコードされた Web ページにファイルが含まれている場合の、ページの前の空白行の解決方法

<br />このページはUTF8エンコードを使用しており、ヘッダーとフッターはテンプレー...