私は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サーバーへの接続は許可されていません
[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を再起動しました。
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN -
このような状況で、リモートログインを妨げる原因は他にありますか?
MySQLでは、ユーザーには2つの必須部分が含まれています。
これらのユーザーはすべて異なり、異なる資格情報を持つ可能性があります。
例のリストからのそれぞれ-別のユーザーと一意のアクセスリスト
だからあなたは選択肢があります:
リモートアクセスを持つ別のユーザーを作成します。
お気に入り:
CREATE USER 'other_root'@'%' IDENTIFIED BY 'other_root_password';
GRANT ALL ON *.* TO 'other_root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
デフォルトでは、すべてのユーザー(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構文 を参照してください。