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

推薦する

docker compose を使用して FastDfs ファイル サーバーをインストールする詳細な例

ドッカーの作成 バージョン: '2' サービス: fastdfsトラッカー: ホスト...

MySQL mysqldump の使い方の詳しい説明

1. mysqldump の紹介mysqldump は、MySQL に付属する論理バックアップ ツー...

ウェブサイトはいつ広告を掲載すべきでしょうか?

最近、インターネットのベテランと「広告」について議論したのですが、彼から非常に興味深い意見を聞きまし...

Linux ncコマンドの概要

NC のフルネームは Netcat (Network Knife) で、作成者は Hobbit &a...

axiosのシンプルなカプセル化と使用例コード

序文最近、プロジェクトを構築しているときに、リクエストのカプセル化について考え、どのようにカプセル化...

MySQLがlocalhost経由でデータベースに接続できない問題に対する完璧な解決策

問題:あるサーバー上の PHP プログラムは、localhost アドレス経由でデータベースに接続で...

初心者がHTMLタグを学ぶ(3)

HTML に触れる初心者は、いくつかの HTML タグを学びます。関連記事:初心者が学ぶ HTML...

Vueプロジェクトはログインと登録の効果を実現します

この記事の例では、ログインと登録の効果を実現するためのvueプロジェクトの具体的なコードを共有してい...

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

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

Linux で Squid プロキシ サーバーを構築するための完全な手順

序文この記事では、Linux で Squid プロキシ サーバーを設定することに関する関連コンテンツ...

Linux(中心OS7)は、Java Webプロジェクトの実行環境を構築するためにJDK、Tomcat、MySQLをインストールします。

1. JDKをインストールする1. 古いバージョンまたはシステム独自のJDKをアンインストールする...

VMWARE で Centos8 仮想マシンをコピーすることによって発生する IP 損失の問題の解決策

VMwareでcentos8サービスをインストールしてコピーすると、次の問題が発生します。 コピー前...

Vue 計算プロパティ実装トランスクリプト

この記事では、Vueの計算プロパティ実装レポートカードを参考に共有します。具体的な内容は次のとおりで...

MySQL ダーティ ページ フラッシュとテーブル スペースの縮小の原理の分析

mysql ダーティページWAL メカニズムにより、InnoDB はステートメントを更新するときに、...

HTML での位置の使用に関する簡単な紹介

昨日 HTML を少し学んだばかりで、JD.com の検索バーを作るのが待ちきれませんでした。 作っ...