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 の簡単なセットアップ(画像とテキスト付き)

推薦する

MySQL 8.0はJSONを扱えるようになりました

目次1. 概要2. JSON基本ツール3. JSONパス式4. JSONを検索して変更する序文:長い...

サブセットかどうかを判断するためのMySQLメソッドの手順

目次1. 問題2. 解決策オプション1:オプション2: 1. 問題この話は、エラーと脱落率を照会する...

MySQLデータベースは重複データを削除し、メソッドインスタンスを1つだけ保持します

1. 問題の紹介ユーザー テーブルに 3 つのフィールドが含まれているシナリオを想定します。 id、...

Linux スワップ パーティション (詳細説明)

目次リナックス1. SWAPとは2. swappiness は何を調節しますか? 3. スワップ操作...

MySQL 8.0.17 インストール グラフィック チュートリアル

この記事では、参考までにMySQL 8.0.17のインストールグラフィックチュートリアルを紹介します...

JS でシングルトン モードを実装するための 6 つのソリューションの概要

序文今日は、デザインパターンのクリエーションパターンを見直していたところ、JS でシングルトンパター...

Linux で環境変数 JAVA_HOME を変更/設定する方法について簡単に説明します。

1. 永久的な変更、すべてのユーザーに有効# vi /etc/プロファイル//キーボードの[Shi...

js の parseInt() の奇妙な動作の調査と修正

背景: parseInt(0.006) または parseInt(0.0006) は 0 という値を...

JSブラウザイベントモデルの詳細な説明

目次イベントとは簡単な例イベントをバインドする方法フレームワーク内のイベントイベントオブジェクトイベ...

MySQLのslave_exec_modeパラメータの詳細な説明

今日、slave_exec_modeというパラメータを偶然見ました。マニュアルの説明から、このパラメ...

DockerはCMDまたはENTRYPOINTコマンドを使用して複数のサービスを同時に起動します

要件: Celery は Django に導入されています。Django プロジェクトを開始するとき...

three.js で 3D ダイナミック テキスト効果を実現する方法

序文みなさんこんにちは。CSS ウィザードの alphardex です。以前、海外のウェブサイトを閲...

HTML でフォントの色を設定する方法と、PS を使用して HTML で正確なフォントの色を取得する方法

1. HTMLフォントカラー設定HTML では、フォント タグを使用してフォント コンテンツの色を設...

Ubuntu で中国語入力方法が使えない場合の解決策

Ubuntu では中国語入力方法の解決策はありません。仮想マシンや Ubuntu システムをインスト...

HTML テーブル マークアップ チュートリアル (15): テーブル タイトル

<br />このタグを使用すると、表のタイトルを直接追加し、タイトル テキストの配置プロ...