Đối với các bản cài đặt mysql homebrew, my.cnf ở đâu? Nó có cài đặt không?
Đối với các bản cài đặt mysql homebrew, my.cnf ở đâu? Nó có cài đặt không?
Câu trả lời:
Không có my.cnf theo mặc định. Như vậy, MySQL bắt đầu với tất cả các cài đặt mặc định. Nếu bạn muốn tạo my.cnf của riêng mình để ghi đè bất kỳ giá trị mặc định nào, hãy đặt nó tại /etc/my.cnf.
Ngoài ra, bạn có thể chạy mysql --help
và xem qua nó cho các vị trí conf được liệt kê.
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf
The following groups are read: mysql client
The following options may be given as the first argument:
--print-defaults Print the program argument list and exit.
--no-defaults Don't read default options from any option file.
--defaults-file=# Only read default options from the given file #.
--defaults-extra-file=# Read this file after the global files are read.
Như bạn có thể thấy, cũng có một số tùy chọn để bỏ qua các tệp conf hoặc chỉ định các tệp khác để đọc khi bạn gọi mysql trên dòng lệnh.
ls $(brew --prefix mysql)/*.cnf
mysql --help | grep cnf
thực sự dễ dàng hơn để tìm thấy các dòng.
Mysql homebrew chứa các tệp cấu hình mẫu trong thư mục tệp hỗ trợ của cài đặt.
ls $(brew --prefix mysql)/support-files/my-*
Nếu bạn cần thay đổi cài đặt mặc định, bạn có thể sử dụng một trong số này làm điểm bắt đầu.
cp $(brew --prefix mysql)/support-files/my-default.cnf /usr/local/etc/my.cnf
Như @rednaw chỉ ra, rất có thể bản cài đặt homebrew của MySQL sẽ nằm trong /usr/local
tệp vì vậy không nên thêm tệp my.cnf vào /etc
thư mục hệ thống , vì vậy tôi đã thay đổi lệnh sao chép tệp vào /usr/local/etc
.
Nếu bạn đang sử dụng MariaDB chứ không phải MySQL, hãy sử dụng như sau:
cp $(brew --prefix mariadb)/support-files/my-small.cnf /usr/local/etc/my.cnf
sudo cp $(brew --prefix mysql)/support-files/my-default.cnf /etc/my.cnf
/usr/local/
(tôi nghĩ là mặc định), bạn cũng có thể đặt phần mềm này my.conf
vào /usr/local/etc/
, không yêu cầu quyền root.
brew --prefix mariadb
. Trong bản phân phối MariaDB my-default.cnf
không tồn tại - vì vậy hãy sử dụng my-small.cnf
. Hãy thử điều nàycp $(brew --prefix mariadb)/support-files/my-small.cnf /usr/local/etc/my.cnf
Một cách để tìm hiểu:
sudo /usr/libexec/locate.updatedb
# wait a few minutes for it to finish
locate my.cnf
mdfind -name my.cnf
thay vì locate
lệnh trên OSX
locate my.cnf
làm việc trực tiếp. Tôi đã không chạysudo /usr/libexec/locate.updatedb
/usr/local/Cellar/mysql/8.0.16/.bottle/etc/my.cnf
và /usr/local/etc/my.cnf
là những gì tôi đã nhận được
trong hệ thống của tôi, nó là
nano /usr/local/etc/my.cnf.default
như mẫu và
nano /usr/local/etc/my.cnf
như đang làm việc
Không có gì thực sự giúp tôi - tôi không thể ghi đè cài đặt trong tệp /etc/my.cnf. Vì vậy, tôi đã tìm kiếm như John đề xuất https://stackoverflow.com/a/7974114/717251
sudo /usr/libexec/locate.updatedb
# wait a few minutes for it to finish
locate my.cnf
Nó tìm thấy một my.cnf khác trong
/usr/local/Cellar/mysql/5.6.21/my.cnf
thay đổi tập tin này làm việc cho tôi! Đừng quên khởi động lại Tác nhân khởi chạy:
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
Cập nhật:
Nếu bạn có một bản cài đặt homebrew khá gần đây, bạn nên sử dụng các lệnh dịch vụ brew để khởi động lại mysql (sử dụng phiên bản mysql homebrew đã cài đặt của bạn, tức là mysql hoặc mysql@5.7):
brew services stop mysql
brew services start mysql
brew services stop mysql
và brew services start mysql
thay thế các launchctl unload ...
dòng.
Vì mysql --help
hiển thị danh sách các tệp, tôi thấy hữu ích khi dẫn kết quả ls
để xem tệp nào tồn tại:
$ mysql --help | grep /my.cnf | xargs ls
ls: /etc/my.cnf: No such file or directory
ls: /etc/mysql/my.cnf: No such file or directory
ls: ~/.my.cnf: No such file or directory
/usr/local/etc/my.cnf
Đối với MySQL 5.7 (đã cài đặt Homebrew) của tôi, có vẻ như các tệp được bật /usr/local/etc/my.cnf
.
Trên loại vỏ của bạn my_print_defaults --help
Ở dưới cùng của kết quả, bạn sẽ có thể xem tệp mà máy chủ đọc cấu hình. Nó in một cái gì đó như thế này:
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf
Tôi tin câu trả lời là không. Cài đặt một trong ~ / .my.cnf hoặc / usr / local / etc dường như là giải pháp ưa thích.
Trong trường hợp của Homebrew, mysql cũng sẽ tìm kiếm my.cnf trong thư mục Cellar, ví dụ:
/usr/local/Cellar/mysql/5.7.21/my.cnf
Đối với trường hợp, người ta thích giữ cấu hình gần với nhị phân - tạo my.cnf
ở đây nếu thiếu.
Khởi động lại mysql sau khi thay đổi:
brew services restart mysql
Phiên bản máy chủ: 8.0.19 Homebrew. macOS Catalina 10.15.5 và cài đặt MySQL thông qua Homebrew. Tìm thấy tập tin này ở đây:
/usr/local/etc/my.cnf
Giải pháp này đã giúp :)
Đối với MacOS (High Sierra), MySQL đã được cài đặt với nhà sản xuất bia.
Việc tăng các biến toàn cục từ môi trường mysql không thành công. Vì vậy, trong trường hợp đó, việc tạo ~ / .my.cnf là lựa chọn an toàn nhất. Thêm các biến bằng [mysqld] sẽ bao gồm các thay đổi (Lưu ý: nếu bạn thay đổi bằng [mysql], thay đổi có thể không hoạt động).
<~ / .my.cnf> [mysqld] connect_timeout = 43200 max_allowed_packet = 2048M net_buffer_length = 512M
Khởi động lại máy chủ mysql. và kiểm tra các biến. y
sql> CHỌN @@ max_allowed_packet; + ---------------------- + | @@ max_allowed_packet | + ---------------------- + | 1073741824 | + ---------------------- +
1 hàng trong bộ (0,00 giây)