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

推薦する

MySql バッチに挿入するときにデータの重複を避ける方法

目次序文1. ignore を挿入2. 重複キーの更新時3. を置き換える要約する序文Mysql は...

OR キーワードを使用した MySql 複数条件クエリ ステートメント

前の記事では、And キーワードを使用した MySql の複数条件クエリ ステートメントを紹介しまし...

WeChatミニプログラムはどのようにしてユーザー情報とユーザーの電話番号を同時に取得するのか

今日ログインページを書いていたとき、個人情報と携帯電話番号を認証する必要がありましたが、ページにボタ...

openlayers6のマップオーバーレイの詳細な説明

1. オーバーレイの概要オーバーレイとは、その名の通り、別の形で地図上に表示される、覆うことを指しま...

MySQL 8.0.21.0 コミュニティ エディションのインストール チュートリアル (詳細な図解)

1. MySQLをダウンロードするMySQL 公式 Web サイトにログインし、MSI インストー...

Vue モバイル プロジェクトでページ キャッシュを実装する方法のサンプル コード

背景モバイル デバイスでは、ページ ジャンプ間のキャッシュが必須要件です。例: ホームページ =&g...

一般的なMySQLストレージエンジンの長所と短所

目次すべてのストレージエンジンを表示InnoDB ストレージ エンジンMyISAM ストレージエンジ...

マウスが画像のハイパーリンク上を通過するときに画像のサイズ(幅、高さ)を変更する CSS

マウスが画像の上を通過したときに画像のハイパーリンクを変更する方法:コードをコピーコードは次のとおり...

MySQL での mysqladmin 日常管理コマンドの概要 (必読)

mysqladmin ツールの使用形式は次のとおりです。 mysqladmin [オプション] コ...

MySQL 5.7.18 バージョンの無料インストール構成チュートリアル

MySQLはインストール版と無料インストール版に分かれていますインストール版の拡張子はmsi、無料イ...

位置固定オフセット問題を解決する方法の詳細な説明

質問CSS 固定配置の position:fixed は非常に使いやすいです。ブラウザのビューポート...

MySQL GTID マスターとスレーブの不一致を修復するソリューション

目次解決策1: レプリカを再構築する前提条件アドバンテージ欠点手順マスター奴隷解決策2: データ修復...

Linuxオンラインソフトウェアgccをオンラインでインストールする方法

Linux オンラインインストール関連コマンド: yum install: すべてインストールyum...

CSS3は、変換変形とイベントを組み合わせて扇形のナビゲーションを完成させます。

この場合、transition という単語を間違って書いたため、午後中ずっとそれに取り組みました。本...