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'
そして、データベースにアクセスできました。