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

推薦する

Expressはログイン認証を実装

この記事では、ログイン認証を実装するためのExpressの具体的なコードを例として紹介します。具体的...

UbuntuからMySQLを削除して再インストールする方法

まずmysqlを削除します: sudo apt-get remove mysql-*残ったデータをク...

JavaScript を使用してテーブル情報を追加および削除する

JavaScript 入門JavaScript は軽量なインタープリタ型の Web 開発言語です。言...

Webpackプラグインを書いてnpmに公開するための80行のコード

1. はじめに最近、 Webpackの原理を勉強しています。これまでは Webpack の設定方法し...

MySQLデータベースバックアップのさまざまな実装方法の概要

この記事では、MySQL データベースのバックアップを実装するさまざまな方法について説明します。ご参...

HTMLページにビデオを挿入する方法の概要

ページでビデオ タグを使用する場合は、Ogg Theora または VP8 (これに問題がない場合)...

HTML フォーマットの json のサンプルコード

さっそく、コードを直接投稿します。具体的なコードは次のとおりです。 <!DOCTYPE htm...

docker を使用して hbase をデプロイする方法

スタンドアロンの hbase について、まずは説明しましょう。 Dockerをインストールするまず ...

Docker で SVN サーバーを構築するチュートリアル

SVN は Subversion の略称で、ブランチ管理システムを使用して効率的に管理するオープンソ...

MySQLでバッチを更新するいくつかの方法

通常、フィールド値を更新するには次の SQL ステートメントを使用します。 mytable を更新し...

CSS を使用して固定ナビゲーションと左右スライドを備えたスクロール バーを作成する方法

上に示すように、ナビゲーションは上部に固定されており、左右にスライドしてさらにオプションをクリックで...

ページデザインにおけるテーブルとdivの適切な適用についての簡単な説明

この記事の冒頭で、以前書いた入門記事の間違いを訂正したいと思います。初心者を再び誤解させないように、...

MySQLで現在の時間間隔の前日のデータをクエリする

1. 背景実際のプロジェクトでは、分散スケジュールされたタスク実行の状況に遭遇することがあります。ス...

JavaScript キャンバス テキスト クロック

この記事では、テキストクロックを実装するためのキャンバスの具体的なコードを例として紹介します。具体的...

Windows Server 2012 リモート デスクトップ ライセンス サーバーがライセンスを提供できず、リモート セッションが切断される

本日、会社の内部サーバーにログインしたところ、リモートアクセスができませんでした。エラー メッセージ...