Tôi đang cố định cấu hình một vùng chứa nodejs để kết nối với cơ sở dữ liệu mysql.Máy chủ lưu trữ mysql Docker không được đặc quyền
Mã của tôi trông như thế này:
var pool = mysql.createPool({
host : 'mysql',
port : '3306',
user : 'root',
password : '...',
database : 'general',
connectionLimit : 50,
queueLimit : 5000
});
Tôi đang sử dụng các tiêu chuẩn mysql container.
Tôi đang sử dụng hình con để bắt đầu các vùng chứa. fig.yml trông giống như sau:
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: ...
Mỗi lần tôi cố gắng để kết nối tôi nhận được lỗi sau:
failed to connect to database: Error: ER_HOST_NOT_PRIVILEGED: Host '172.17.0.142' is not allowed to connect to this MySQL server
Bất kỳ ý tưởng những gì tôi đang làm sai? Tôi đã chơi xung quanh với wordpress và có vẻ như để kết nối với cùng một db mysql mà không có bất kỳ vấn đề.
Thx!
Chỉnh sửa Vì vậy, tôi đã tìm thấy câu trả lời cuối cùng. Vấn đề thực sự là một vấn đề đặc quyền. Tôi chạy lệnh sau:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password'
Và tôi đã có thể truy cập cơ sở dữ liệu.
Có thể [trợ giúp này] (http://stackoverflow.com/questions/19943615/connect-to-remote-mysql-database) không? Hoặc có thể [this] (http://stackoverflow.com/questions/1559955/host-xxx-xx-xxx-xxx-is-not-allowed-to-connect-to-this-mysql-server)? – wassgren
Phiên bản mysql của bạn là gì? 'General' là từ dành riêng trong mysql 5.6, sử dụng dấu tick trong hồ bơi của bạn – Mihai
@wassgren Tôi không nghĩ đó là vấn đề đặc quyền cấp, vì wordpress kết nối với cùng cơ sở dữ liệu mà không có thêm đặc quyền – Petru