MySQL liên kết với cổng 3307 chứ không phải cổng 3306


9

Tôi đang chạy OS X Yosemite 10.10.5 trên Mac Mini cuối năm 2014. Đó là máy chủ phát triển của tôi. Tôi vừa cài đặt MySQL trên máy này: 'mysql --version' báo cáo phiên bản là 'mysql Ver 14,14 Phân phối 5.6,26, cho osx10.8 (x86_64) bằng cách sử dụng trình bao bọc EditLine'. Tuy nhiên, tôi chắc chắn đã tải xuống và cài đặt phiên bản "OS X 10.9" (Tôi chỉ kiểm tra lại tệp DMG).

Dù sao, tôi đang cố gắng làm cho sản phẩm nghe trên cổng 3306 như bình thường và tôi gặp một số khó khăn khi làm cho nó làm điều đó. Theo mặc định, nó dường như bị ràng buộc với cổng 3307, ngay cả khi my.cnf trông như thế này:

[mysqld]
bind-address = 0.0.0.0
port         = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

(dòng cuối cùng đã có trong mặc định trong / usr / local / mysql /)

Nhìn vào quá trình đang chạy, tôi có thể thấy dòng lệnh (ps ax | grep mysql) đã được đưa ra là 3307:

40958   ??  Ss     0:00.38 /usr/local/mysql/bin/mysqld \\
--user=_mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data \\
--plugin-dir=/usr/local/mysql/lib/plugin \\
--log-error=/usr/local/mysql/data/mysqld.local.err \\
--pid-file=/usr/local/mysql/data/mysqld.local.pid --port=3307

(Tôi hiện đang bắt đầu và dừng nó với bảng ưu tiên hệ thống MySQL không trực tiếp ngoài dòng lệnh)

Để truy cập nó từ máy khách, tôi phải đặt cổng trên dòng lệnh một cách rõ ràng

$ mysql -u smcphee -h 192.168.x.x -P 3307 -p

Đối với các cú đá, tôi đã chỉnh sửa my.cnf để chỉ định một số cổng ngẫu nhiên khác. Máy chủ vẫn đang liên kết với cổng 3307. Tôi không thể tìm thấy bất kỳ my.cnf nào khác trên đĩa ở bất cứ đâu có thể ghi đè lên nó.

Chuyện gì đang xảy ra ở đây?

Câu trả lời:


10

Bạn có thể thử kiểm tra xem tập tin sau có tồn tại trong máy của bạn không?

/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist

Kiểm tra xem cổng được xác định trên 3307 hay không, nếu đây là sự thật thay đổi thành 3306 và khởi động lại dịch vụ.


Vâng, đúng vậy. Và nó có dòng này trong đó: <string> - port = 3307 </ string> Tại sao nó lại mặc định làm điều đó?
scot

1
Tôi đoán điều này xảy ra vì tệp này khởi động dịch vụ, tôi không chắc nhưng có thể nếu bạn xóa dòng, dịch vụ sẽ lấy cổng trên my.cnftệp.
Victor Marroquin

ồ vâng tất nhiên rồi. bởi "tại sao" tôi có nghĩa là tại sao nó sẽ cài đặt tệp với giá trị như vậy thay vì dự kiến, hợp lý, mặc định. (Tất nhiên, tôi cho rằng gói cài đặt đã cài đặt trình nền khởi chạy ... bởi vì những gì khác sẽ có?)
scot

1

Điều này phải có một cái gì đó để làm với bảng ưu tiên hệ thống MySQL và cách nó khởi động máy chủ. Tôi đã vô hiệu hóa và loại bỏ bảng ưu tiên. Khi tôi khởi động / dừng máy chủ bằng cách sử dụng 'mysqld_safe' trên dòng lệnh, nó sẽ sử dụng cổng được chỉ định trong my.cnf.

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.