Địa chỉ liên kết MySQL 5.7 không hoạt động


17

Tôi đã luôn thiết lập thành công kết nối từ xa cho MySQL 5.5.

Hôm nay tôi đã cài đặt một máy chủ mới với Ubuntu 16.04 và MySQL 5.7. Nhưng vì một số lý do, tôi không thể thực hiện cài đặt MySQL này nghe các máy chủ khác nhưng 127.0.0.1.

Đây là /etc/mysql/conf.d/mysql.cnf:

[mysqld]
bind-address = 0.0.0.0

Tôi không thể kết nối với máy chủ MySQL này từ một máy chủ từ xa và khi tôi kiểm tra netstat, tôi nhận ra rằng MySQL chỉ lắng nghe các kết nối localhost.

lsof -Pni :3306 đầu ra là:

COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mysqld  5302 mysql   25u  IPv4  37280      0t0  TCP 127.0.0.1:3306 (LISTEN)

Vấn đề là gì?


Bạn đã trả lại mysql? Sản lượng của netstat -lntp là gì?
Linuxx

@Linuxx Tôi thậm chí còn khởi động lại toàn bộ máy. tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 13050/mysqld
Hẻm

Tôi giả sử bạn đã thêm dòng đó trong tập tin đó. Xóa dòng đó và chỉnh sửa tệp /etc/mysql/mysql.conf.d/mysqld.cnf và thay đổi tham số ở đó.
Linuxx

1
@Linuxx Điều này hoạt động như ma thuật :) Tôi không nhận thấy rằng có một thư mục * .conf.d khác. Vì vậy, về cơ bản 5.7 giữ cấu hình [mysql] trong thư mục conf.d, trong khi cấu hình [mysqld] được giữ trong mysql.conf.d. Cảm ơn bạn! Xin vui lòng, làm cho một câu trả lời, vì vậy tôi sẽ chấp nhận nó.
Hẻm

1
Tôi đã thay đổi địa chỉ liên kết trên cả /etc/mysql/mysql.conf.d/mysqld.cnf và /etc/mysql/conf.d/mysql.cnf, đã khởi động lại máy chủ nhưng tôi vẫn thấy "tcp 0 0 127.0. 0,1: 3306 "khi tôi chạy <netstat -tulpen
Chepech

Câu trả lời:


38

Họ đã thay đổi gói MySQL để tham số liên kết nằm trong /etc/mysql/mysql.conf.d/mysqld.cnf ngay bây giờ. Vui lòng thay đổi tham số liên kết ở đó và xóa bất cứ thứ gì bạn đã đặt trong /etc/mysql/conf.d/mysql.cnf.


Điều này là vô lý mặc dù. Mục đích của "conf.d" là KHÔNG chỉnh sửa mặc định và ghi đè gói được cung cấp bởi cấu hình của riêng bạn. Nhưng như bây giờ "mysql.conf.d" đang ghi đè lên chúng ta, không có cách nào đáng tin cậy để đảm bảo rằng chúng ta đến cuối cùng trừ khi chúng ta chỉnh sửa "mysql.conf.d / mysqld.cnf".
kenn

@kenn: thêm cấu hình của bạn dưới mysql.conf.d / thay vào đó và đặt tên là "x-Something"
Bell

3
Chắc chắn, nhưng quan điểm của "conf.d" là gì? Không phải "mysql.conf.d" là mặc định do gói cung cấp, được cho là bị ghi đè bởi "conf.d"? Tôi nghĩ rằng thứ tự tải của "conf.d" và "mysql.conf.d" nên được đảo ngược trong "/etc/mysql/my.cnf" ở cấp gói MySQL.
kenn
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.