Phát triển MySQL local với FlyEnv
MySQL là một cơ sở dữ liệu quan hệ mã nguồn mở, và trong nhiều năm nó đã là lựa chọn mặc định đằng sau WordPress, Laravel cùng vô số stack web khác. FlyEnv biến MySQL thành một dịch vụ local được quản lý mà bạn điều khiển từ một cửa sổ duy nhất: cài nhiều phiên bản, chạy mysqld với my-<version>.cnf có thể chỉnh, theo dõi log lỗi và log chậm, và tiếp cận dữ liệu qua phpMyAdmin hay ngăn Manage tích hợp sẵn. Khi một server chưa đủ, tính năng Group chạy nhiều instance MySQL song song, mỗi instance với phiên bản, cổng và thư mục dữ liệu riêng.

Quản lý phiên bản MySQL
Cài và giữ nhiều phiên bản MySQL song song từ MySQL → Trình quản lý phiên bản, và chọn phiên bản mà dịch vụ chạy.
- Nguồn cài theo từng nền tảng: Homebrew (
mysql,[email protected]) và MacPorts (mysqlN-server) trên macOS, Homebrew trên Linux, và một danh sách tĩnh trực tuyến gồm các gói dựng sẵn trên Windows. - Phiên bản tùy chỉnh: thêm bất kỳ thư mục nào chứa bản cài MySQL của riêng bạn; FlyEnv quét nó và liệt kê các bản build đó cạnh các phiên bản được quản lý.
- Một phiên bản dịch vụ hiện hành: tab Dịch vụ chạy một phiên bản duy nhất được chọn làm dịch vụ MySQL chính, trong khi các instance chạy đồng thời bổ sung được xử lý bởi tính năng Group mô tả dưới đây.

Dịch vụ và cấu hình
FlyEnv chạy binary mysqld thật ở foreground — chứ không phải mysqld_safe — được khởi chạy với --defaults-file=my-<version>.cnf --port=.... Cổng mặc định là 3306 và lấy từ tệp cấu hình. Trên Windows, dịch vụ được dừng một cách sạch sẽ qua mysqladmin.exe ... shutdown.
Mỗi phiên bản có tệp my-<major.minor>.cnf riêng dưới thư mục MySQL của FlyEnv, có thể chỉnh từ tab Tệp cấu hình:
- Biểu mẫu thiết lập chung: điều chỉnh các tùy chọn thường thay đổi — cổng,
key_buffer_size,innodb_buffer_pool_sizevà nhiều hơn nữa — qua một biểu mẫu trực quan thay vì phải tự tay chỉnh tệp. - Trình chỉnh sửa thô: chuyển sang khung xem nguồn đầy đủ cho bất cứ thứ gì biểu mẫu chưa bao phủ.

Log
Hai tab Log và Log chậm mở error.log và slow.log của server trực tiếp bên trong FlyEnv. Log lỗi là điểm dừng đầu tiên khi một phiên bản không khởi động được, còn log chậm cho thấy những truy vấn nào vượt ngưỡng long-query một khi logging truy vấn chậm đã được bật trong cấu hình — hữu ích khi đo hiệu năng một ứng dụng local trên dữ liệu thực tế.

phpMyAdmin
Nút phpMyAdmin trên thanh công cụ Dịch vụ thiết lập một site phpMyAdmin đầy đủ chỉ trong một bước: FlyEnv tải phpMyAdmin, tạo một site local phpmyadmin.test được phục vụ bởi web server và phiên bản PHP của bạn, rồi mở nó trong trình duyệt. Nó làm việc với dịch vụ MySQL đang chạy, nhờ đó bạn có một web UI quen thuộc để duyệt bảng và chạy truy vấn mà không phải cài đặt thủ công thứ gì cả.

Quản lý cơ sở dữ liệu
Với công việc hằng ngày, không cần rời khỏi ứng dụng: ngăn Manage theo từng phiên bản nói chuyện trực tiếp với server đang chạy.
- Thêm cơ sở dữ liệu: tạo một cơ sở dữ liệu mới từ danh sách cơ sở dữ liệu.
- Mật khẩu root: đổi mật khẩu root cho instance — mật khẩu root mặc định trên các lần cài mới là
root. Hướng dẫn người dùng và mật khẩu cơ sở dữ liệu đề cập chi tiết hơn về phần này. - Sao lưu: dump bất kỳ cơ sở dữ liệu nào bằng
mysqldumpvào một thư mục sao lưu bạn chọn, ngay từ ngăn này.
Plugin MySQL Cluster
Để có một workspace instance chuyên dụng với replication source/replica GTID và Group Replication single-primary, hãy cài plugin MySQL Cluster từ Plugin Market. Plugin tái sử dụng các phiên bản MySQL đã cài và cấp cho mỗi instance local mới cổng, thư mục dữ liệu, cấu hình và log riêng.
Nhiều instance với Groups
Tab Group chạy nhiều instance MySQL đồng thời cạnh dịch vụ chính. Mỗi instance kết hợp một phiên bản MySQL được chọn với cổng và thư mục dữ liệu riêng của nó, và giữ cấu hình cùng log theo từng instance — nhờ đó một dự án ghim vào MySQL 5.7 có thể chạy cạnh một dự án trên MySQL 8.x mà không đụng chạm dữ liệu của nhau. Công tắc nguồn của nhóm trên đầu thanh bên — cũng có trong khay hệ thống — khởi động hay dừng dịch vụ chính cùng toàn bộ các instance Group.

Groups rất tiện khi tái lập các thiết lập sản xuất ở local — ví dụ khi một dự án Laravel kỳ vọng một major version MySQL cụ thể.
Hướng dẫn, giải pháp và bản demo liên quan
Tiếp tục với một hướng dẫn thực tế, một giải pháp, một bản demo hoặc góc nhìn từ cộng đồng.
Lưu ý tương thích
FlyEnv quản lý runtime MySQL local, các tệp cấu hình và thư mục dữ liệu của nó; module không đảm bảo mọi phiên bản MySQL đều khả dụng trên mọi hệ điều hành hay nguồn cài. Các phiên bản được cung cấp trong Trình quản lý phiên bản phụ thuộc vào nền tảng của bạn (Homebrew và MacPorts trên macOS, Homebrew trên Linux, gói tĩnh trên Windows) và vào những gì các nguồn đó phát hành. Nếu stack của bạn dùng MariaDB như một bản thay thế MySQL ngay tức khắc, module MariaDB cung cấp cùng quy trình một cửa sổ. Hãy coi danh sách phiên bản trong ứng dụng và trang tải xuống là nguồn chuẩn xác về những gì có thể cài trên máy bạn.