2016-09-19 3 views
1

Following this thread。 my.cnfファイルを編集して#bind-addressの値をコメントアウトし、0.0.0.0と接続を許可する特定のIPアドレスを指定しようとしました。MYSql設定のバインドアドレスは0.0.0.0に設定されていますが、netstatはUbuntuで異なって表示されます

私は気づかない、このmy.cnfの方法は非のようにリンクされている間:

lrwxrwxrwx 1ルートルート9月24日9 6時21分のmy.cnf - > /etc/alternatives/my.cnf

とこのmy.cnfのもリンクされている:

lrwxrwxrwx 1ルートルート9月20日午前6時23分9のmy.cnf - > /etc/mysql/mysql.cnf

だから、現実には、私が編集していますmysqlの.cnfファイル。

MYSQLサーバを停止/起動します。

私は、netstatコマンドを実行します-nat |グレップ:3306それは私に与える: TCP 0 0 127.0.0.1:3306 0.0.0.0:*は、私がクライアントに越えるとget

をLISTEN 'server_name'のMySQLサーバーに接続できません

私は間違っていますか?

+1

これはまだ127.0.0.1:3306で聞いています。正しい 'my.cnf'ファイルを効果的に変更していません。 – alvits

答えて

1

バインドアドレス0.0.0.0は、リモート接続を許可するための手順の一部に過ぎません。これらのステップには、 `#skip-networking 'を明示的に実行することが含まれます。

[mysqld] 
bind-address = 0.0.0.0 
# skip-networking 

サーバを再起動します。

ログインにはホストコンボが必要です。理想的には適切な(過度ではない)権限で使用するためにdbにGRANTが必要です。

あなたはGRANT SyntaxにMySQLマニュアルページを参照してくださいselect user,host from mysql.user

を使用して、現在のユーザーを見ることができます。

私は、ワイルドカード%ホストと他のマイナーな細部について少し答えHereを書きました。

試験のための図は以下である:ここで

create schema testDB007; 
use testDB007; 

create table t1 
( id int not null 
); 

CREATE USER 'jeffrey123z'@'%' IDENTIFIED BY 'mypass123^'; 
-- note password is mypass123^ 

GRANT ALL ON testDB007.* TO 'jeffrey123z'@'%'; 
SHOW GRANTS FOR 'jeffrey123z'@'%'; 

enter image description here

、上記青色の行(使用)は、ユーザがログインすることができる以外はほとんど何を意味し、それはそれです。 2行目はGRANT cmdのdbのPRIVILEGESを示しています。 mysql.user

ビューのユーザー:上の写真については

enter image description here

は、

select user,host,password from mysql.user where user='jeffrey123z'; 

select user,host,authentication_string from mysql.user where user='jeffrey123z'; 

最初のクエリは、上記の前のMySQL 5.7用です。 2番目のクエリは5.7以降です。パスワードはハッシュされています。ホストは任意のホストからのログインを意味するワイルドカード%です。

0

が、私は同じ問題を持っていた:mysqlのは正しく設定、sudo systemctl restart mysqlが正常に動作するように見えたが、sudo lsof -i -P -n | grep 3306はまだ私の代わりに期待TCP *:3306 (LISTEN)TCP 127.0.0.1:3306 (LISTEN)を与えた、と私は/usr/bin/mysqldが実際に再起動されていなかったことをps aux | grep mysqlから気づきました。

新しい設定を有効にするには、フルリブートが必要でした。

関連する問題