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 は検証コードのカウントダウンボタンを実装します

推薦する

HTMLの基礎を詳しく解説(第2部)

1. リストリスト ulコンテナーには、一貫した構造とスタイルを持つテキストまたはグラフの形式が読...

Windows Server 2016 に Docker をインストールするプロセスと発生した問題

前提条件Windows Server でコンテナーを実行するには、Windows Server (半...

Vue uniapp はセグメンター効果を実現します

この記事では、セグメンター効果を実現するためのvue uniappの具体的なコードを参考までに共有し...

Tomcat でよく使われるフィルターの詳細な説明

目次1. クロスドメインフィルタ CorsFilter 1.1 設定例1.2 パラメータの説明2. ...

MySQLでトランザクションを開始する方法

序文この記事では主にMySQLでトランザクションを開始する方法について紹介します。関連情報については...

CentOS 6 は Docker を使用して Redis マスター スレーブ データベース操作例を展開します

この記事では、Docker を使用して Centos6 に Redis マスター/スレーブ データベ...

ウェブサイトのビジュアルデザインパスはユーザーの習慣に合わせる必要がある

クーパー氏は、一般的に上から下、左から右に向かうユーザーの視覚経路について話しました。優れたビジュア...

Vue エクスポート Excel 機能の全プロセス記録

目次1. フロントエンドのリーディングプロセス: 2. プラグインの使用と初期化2.1 vue-ad...

ドラッグ効果を実現するための js オブジェクト指向メソッド

この記事では、ドラッグアンドドロップをJSオブジェクト指向で実装するための具体的なコードを参考までに...

Alibaba Cloud Centos7のインストールとSVNの設定

1. SVNサーバーをインストールする yum でサブバージョンをインストール2. SVNバージョン...

Linux カーネル デバイス ドライバー仮想ファイル システムに関する注意事項

/******************** * 仮想ファイルシステム VFS **********...

nginxを使用してドメイン名ベースの仮想ホストを構成する

1. 仮想ホストとは何ですか?仮想ホストは、特殊なテクノロジーを使用して、実行中のサーバーを論理的に...

jQueryはシャトルボックス効果を実現します

この記事では、シャトルボックス効果を実現するためのjQueryの具体的なコードを参考までに紹介します...

jQuery で従業員管理登録ページを実装する

この記事では、従業員管理登録ページを実装するためのjQueryの具体的なコードを例として紹介します。...

Vue3 の ref と toRef の違いを簡単に分析します

1. refがコピーされ、ビューが更新されますrefを使用してオブジェクトのプロパティ値をレスポンシ...