web-dev-qa-db-ja.com

Workbenchでログインできない

私はUbuntu 16.04とMySQL 5.7.16を使用しており、Windows10からWorkbenchで接続しようとしています。私の目的は、どこのコンピュータからでもログインできるようにすることです--- 1つのIPのみを許可するつもりはありません。

資格情報を入力した後、接続に失敗しました:

method    | TCP/IP
hostname  | IPv4
port      | 3306
username  | I use the MySQL root user (the one I used to login to PHPmyadmin with)
password  | MySQL root password.

エラーは:

このMySQLサーバーへの接続は許可されていません

enter image description here


[mysqld]
#
# * Basic Settings
#
user        = mysql
pid-file    = /var/run/mysqld/mysqld.pid
socket      = /var/run/mysqld/mysqld.sock
port        = 3306
basedir     = /usr
datadir     = /var/lib/mysql
tmpdir      = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address        = 0.0.0.0
# 127.0.0.1

ファイアウォールの問題ではない可能性がある理由:

CSF-LFDをファイアウォールソフトウェアとして使用しているので、ネイティブのUbuntuFireWall(UFW)は使用しません。それでも、csf.confでポート3306の継続と送信を許可し、Sudo csf -rを介してCSFを再起動しました。

netstat -plnt:

    tcp    0    0 0.0.0.0:3306    0.0.0.0:*    LISTEN -

私の質問:

このような状況で、リモートログインを妨げる原因は他にありますか?

1
user93943

MySQLでは、ユーザーには2つの必須部分が含まれています。

  • ユーザー名-root、またはsamのような
  • (localhost10.30.10%10。%などのように、このユーザーがログインできるホスト。

これらのユーザーはすべて異なり、異なる資格情報を持つ可能性があります。

例のリストからのそれぞれ-別のユーザーと一意のアクセスリスト

だからあなたは選択肢があります:

  • シンプル-ルートのワイルドカードを変更します。お勧めしません
  • リモートアクセスを持つ別のユーザーを作成します。

    お気に入り:

    CREATE USER 'other_root'@'%' IDENTIFIED BY 'other_root_password';
    
    GRANT ALL ON *.* TO 'other_root'@'%' WITH GRANT OPTION;
    
    FLUSH PRIVILEGES;
    
1
a_vlad

デフォルトでは、すべてのユーザー(rootであっても)はlocalhostからのみアクセスできます。リモートマシンからの接続を許可する必要があります。

関連するウェブサーバーとMySQLを使用してマシンにSSHログインし、CLI端末でこのスクリプトを直接実行します。

CREATE USER 'root'@'%' IDENTIFIED BY 'password';
GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION;

MySQLがインストールされていれば、事前のアクションなしで、MySQLで直接動作するはずです。

TO 'root'@'%'-この部分は、すべてのリモートIPにアクセスを提供します。 %を、そのIPにのみアクセスを許可する任意のIPに変更します。

14.7.1.4 GRANT構文 を参照してください。

0
Boris