5

mysql データベースに接続するように nodejs コンテナーを構成しようとしています。

私のコードは次のようになります。

var pool  = mysql.createPool({
    host     : 'mysql',
    port     : '3306',
    user     : 'root',
    password : '...',
    database : 'general',
    connectionLimit : 50,
    queueLimit : 5000
});

標準のmysqlコンテナーを使用しています。

コンテナの起動に fig を使用しています。fig.yml は次のようになります。

node:
  build: node
  ports:
    - "9000:9000"
    - "9001:9001"
  links:
    - mysql:mysql
  command: node server/Main.js

mysql:
  image: mysql
  volumes:
    - /data/test:/var/lib/mysql
  environment:
    MYSQL_ROOT_PASSWORD: ...

接続しようとするたびに、次のエラーが表示されます。

failed to connect to database: Error: ER_HOST_NOT_PRIVILEGED: Host '172.17.0.142' is not allowed to connect to this MySQL server

私が間違っていることは何ですか?私はワードプレスをいじってみましたが、問題なく同じmysql dbに接続しているようです。

どうも!

編集 だから、私は最終的に答えを見つけました。問題は確かに特権の問題でした。次のコマンドを実行しました。

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password'

そして、データベースにアクセスできました。

4

1 に答える 1