Alibaba Cloud Server Ubuntu 上の Workbench が MySQL に接続できない問題の解決策 (テスト済み)

Alibaba Cloud Server Ubuntu 上の Workbench が MySQL に接続できない問題の解決策 (テスト済み)

過去 2 日間、ワークベンチが Alibaba Cloud Server に接続できない問題を解決するのに非常に苦労しました。インターネットで見つけたチュートリアルはすべて似ていますが、このチュートリアルは私には機能しません。幸いなことに、最終的には解決しました。この面倒なプロセスを記録しておきます。

使用環境:

システム:

Ubuntu 18.04.2 LTS
MySQL: mysql Ver 14.14 Distrib 5.7.29、Linux (x86_64) 用、EditLine ラッパー使用

MySQL ワークベンチ 8.0CE

1. サーバーに接続できません

初めて接続すると、次のステータスが表示されます。

遭遇した落とし穴の一つ

インターネットで見つかる方法のほとんどはbind_addressの値を変更することです

まず、次のmysqlポートステータスを確認します

netstat -anp | grep mysql

ps: 127.0.0.1:3306 と表示される場合は、変更が必要です。: :3306 の場合、変更する必要はありません。

表示されたステータスは 127.0.0.1:3306 であり、この値であるため、これを変更する必要があります。

インターネットで見つかる設定ファイルの変更パスのほとんどは、**/etc/mysql/my.cnf** にあると書かれていますが、これは古いバージョンの場合のみです。最新バージョンをインストールしたので、このファイルを開いてみると、bind_address 値がありませんでした。後で確認したところ、新しいバージョンは**/etc/mysql/mysql.conf.d/mysqld.cnf**にあることがわかりました。問題を発見したので、それを修正するのは簡単です。次の部分を見つけてコメントアウトします。

# スキップネットワークの代わりに、デフォルトでは、
# 互換性が高く、安全性も低い localhost です。
バインドアドレス = 127.0.0.1

2. mysql.userテーブルの情報を変更する

root ユーザーがデータベースにリモートでアクセスできるようにするには、いくつかの情報を変更する必要があります。

mysql -u ルート -p パスワード
mysql>mysqlを使用する
テーブル名と列名の補完のためのテーブル情報の読み取り
-Aでこの機能をオフにすると起動が速くなります。

データベースが変更されました
mysql> ユーザーからユーザー、ホストを選択します。
+------------------+----------------+
| ユーザー | ホスト |
+------------------+----------------+
| ルート | ローカルホスト |
| debian-sys-maint | ローカルホスト |
| mysql.セッション | ローカルホスト |
| mysql.sys | ローカルホスト |
+------------------+----------------+

上記のホストは、ユーザーがデータベースにアクセスできるアドレスを示します。 localhost なので、ローカルからしかアクセスできません。修正方法は全部で 2 つ見つかりました。1 つは、元のルートに対応するホストを **%** に直接変更するか、リモートからアクセスできる新しいユーザーを追加することです。

方法1:

mysqlデータベースに入った状態で以下のコマンドを実行します

ユーザーを更新し、host='%' を設定します。user='root' です。

方法 2: 新しいユーザーを追加する:

「password」で識別される new_user@'%' に *.* のすべての権限を付与します。

上記のどの方法を使用する場合でも、今すぐ設定を更新する必要があります。

mysql> 権限をフラッシュします。
クエリは正常、影響を受けた行は 0 行 (0.00 秒)

両方の方法を試しましたが、まだ機能しませんでした。現在の IP アドレスでは接続が許可されていないと表示されました。

何度も試してみた結果、リモート接続のユーザー名は root であってはならないことがわかりました。再インストールを何度か試みた後、リモート接続を許可するためのルート設定が常に失敗することがわかりました。

3. ファイアウォールをオフにする

# まずデータベースを再起動します
sudo サービス mysql を再起動
# MySQL ポートのステータスが次のとおりであるかどうかを確認します: : :3306
netstat -anp | grep mysql
# ファイアウォールを無効にする
sudo ufw を無効にする
# ファイアウォールの状態を確認する
sudo ufw ステータス

4. ポートを開く

Alibaba Cloud やその他のクラウド サービスのユーザーは、対応するポートを開いて保護するように注意する必要があります。デフォルトの MySQL ポートは 3306 です。

Alibaba Cloudコンソールを開き、セキュリティグループルールを追加します。

セキュリティグループ制限設定があります。受信方向をポート3306を許可するように設定し、以下をお試しください。一瞬で動作します。

Alibaba Cloud ECS MySQLはリモートで接続できません。オンラインのチュートリアルをすべて試しても接続できない場合は、以下を参照してください。

まず、ファイアウォールを確認します。これは最も基本的なことです。多くのチュートリアルでは、ポート3306を有効にする必要があると記載されています。Alibaba Cloudサーバーのセキュリティグループをチェックして、3306の受信ルールと送信ルールが有効になっているかどうかを確認します。これは本当に落とし穴です。Alibaba Cloud Linuxサーバーにこの機能が搭載されているかどうかはわかりません。Windowsサーバーでのみ利用可能だったと覚えています。それでもツールから接続できない場合があり、SSLに関連しているというメッセージが表示されます。私はIDEAとMySQLワークベンチを使用して接続します。IDEAは接続URLに追加します

useSSl=false

MySQLワークベンチに関しては、接続方法が見つからなかったため、別のオプションとして、サーバー上でSSLを無効にする方法があります。
my.cnfファイルを見つけます。通常は/etc/my.confにあります。
SSLをオフにするには、コンテンツにskip_sslコマンドを追加します。

サービスmysqldを再起動

MySQLを再起動する

すべての IP アドレスをアクセス可能に設定したり、localhost を 127.0.0.1 に変更したりする方法の詳細については説明しません。参考になる記事がオンライン上にたくさんあります。セキュリティ グループや SSL に詳しくない方は、上記の方法を参照してください。

データベースに接続するときのuseSSL=falseの役割

SSLを使用する=偽
MySQLの上位バージョンでは、SSL接続を使用するかどうかを指定する必要があります。

1.trueは接続が必要
2.false 接続は必要ありません

5. やり遂げる

これで記事は終わりなので、基本的にすべて解決しました。

以下もご興味があるかもしれません:
  • MySQL WorkBench 管理操作 MySQL チュートリアル
  • MySQL Workbench の使い方 (画像とテキスト)
  • Mysql Workbench クエリ mysql データベース メソッド
  • Mysql WorkBench のインストールと設定のグラフィックチュートリアル
  • MySQL Workbenchのダウンロードと使用方法のチュートリアルの詳細な説明
  • Ubuntu での MySQL および MySQL Workbench のインストール チュートリアル
  • MySQL5.7+ MySQL Workbenchのインストールと設定方法のグラフィックチュートリアル(MAC)
  • MySQL 5.7.17 とワークベンチのインストールと設定のグラフィックチュートリアル
  • MySQLのワークベンチ例の詳細な説明
  • CentOS での MySQL ワークベンチのインストールと設定のチュートリアル
  • MySQL Workbench の使い方チュートリアルの詳しい説明

<<:  Node.js における path.join() の利点の分析

>>:  VMware ESXi6.7 の簡単なセットアップ(画像とテキスト付き)

推薦する

フォーム要素の垂直方向の中央揃えに最適なソリューション

コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...

CSS の Display、Visibility、Opacity、rgba、z-index: -1 の違い

ウェブページ上のいくつかの要素の非表示、透明、その他のプロパティを制御する必要があることがよくありま...

Docker 経由で Spring Boot アプリケーションを公開およびデプロイするプロセスの分析

目次手動展開1.アイデアを使ってSpring Bootプロジェクトを作成する2. プロジェクトをJa...

Hタグの定義と注意事項について簡単に説明します

結果から判断すると、タイトルを定義するための固定パターンはなく、すべてむしろランダムな感じがします。...

Docker Hubの動作原理と実装プロセスの分析

GitHub が提供するコード ホスティング サービスと同様に、Docker Hub はイメージ ホ...

JSはキャンバス技術を使用してeChartsの棒グラフを模倣します

Canvas は HTML5 の新しいタグです。js を使用して Canvas 描画 API を操作...

...

MySQLクエリ文の実行プロセスの詳細な説明

目次1. クライアントとサーバー間の通信方法2. クエリキャッシュ3. クエリ最適化処理4. クエリ...

Adobe Brackets の簡単な使い方のグラフィックチュートリアル

Adobe Brackets は、HTML、CSS、JavaScript 用のオープンソースでシンプ...

MacにHomebrewをインストールする際の注意点

最近、Xiao Ming は新しい Mac を購入し、独自のブログ Web サイトを構築したいと考え...

Linux サーバー上の hosts ファイル構成の詳細な説明

Linux サーバーのホスト ファイルの構成hosts ファイルは、Linux システム内の IP ...

Nginx での Frp による https への強制リダイレクト設定の詳細な説明

自宅のルーターが300Mの帯域幅を80Mに強制的に減らしたため、3205Uソフトルーターを購入しまし...

MySQL における varchar 型と char 型の違い

目次前述のVARCHAR型VARCHAR適用可能な状況CHAR型テストVARCHAR(5)とVARC...

スタイルをより標準化するための CSS の書き方に関する 5 つのヒント

1. CSSをアルファベット順に並べるアルファベット順ではありません:コードをコピーコードは次のとお...