L ỜI CAM ĐOAN
3.2. Mã nguồn của MySQL
Các storage engine chịu trách nhiệm giao tiếp giữa máy chủ MySQL với hệ thống
tệp của hệ điều hành, có nghĩa là tạo các storage engine đồng nghĩa với việc tạo thêm và có những điều chỉnh trên mã nguồn của hệ thống. Do đó, trước hết, cần tải và cài
đặt MySQL từ mã nguồn. Có rất nhiều phiên bản khác nhau để sử dụng, trong tài liệu
này sử dụng MySQL 5.5.17 làm minh họa. Chi tiết về các thao tác cài đặt MySQL từ
mã nguồn có thể tìm thấy tại: http://dev.mysql.com/doc/refman/5.5/en/source- installation.html
Mã nguồn của MySQL khi được tải về và giải nén gồm các thư mục, các tệp chính như sau:
/BUILD Chứa các tệp tạo và cấu hình của quá trình biên dịch cho mọi nền
tảng được hỗ trợ. Sử dụng thư mục này khi biên dịch và tạo liên kết
/client Công cụ dòng lệnh của máy khách MySQL /dbug Các tiện ích sử dụng trong gỡ lỗi
/scripts Một tập các tiện ích dựa trên kịch bản
/include Các header và tệp include của hệ thống
/sql Mã nguồn chính của hệ thống.
/mysys Chứa các hàm hỗ trợ và các gói giao diện chính của nhân hệ điều
hành.
/storage Chứa mã nguồn của các storage engine
/strings Các gói quản lí xâu (string) chính, được sử dụng cho toàn bộ nhu
/SSL Một tập các định nghĩa và các tiện ích bảo mật SSL
/plugin Chứa các plugin của hệ thống
/support-files Chứa một tập các tệp cấu hình đã được cấu hình trước cho quá
trình biên dịch với nhiều lựa chọn khác nhau
/tests Một tập các chương trình kiểm thử và các tệp kiểm thử
/vio Mã nguồn lớp socket và mạng.
/zlib Các công cụ nén dữ liệu
Config.h.cmake Tệp chứa cấu hình cho cmake /Docs Tài liệu của bản phân phối hiện thời.
/libmysql Giao diện ứng dụng máy khách sử dụng để tạo các hệ thống nhúng
/libmysqld Các tệp giao diện ứng dụng chính của máy chủ, cũng được sử
dụng để tạo các hệ thống nhúng
/mysql-test Bộ kiểm thử hệ thống MySQL
/regex Một thư viện biểu thức chính quy được sử dụng trong trình tối ưu
và thực thi truy vấn
Để làm việc với các storage engine, tham khảo nội dung trong các thư mục như:
/storage – chứa mã nguồn của các storage engine trong hệ thống, có thể sử dụng để
tham khảo các cách thức triển khai storage engine; thư mục /mysys chứa các phương
thức vào/ra cơ sở của hệ thống; thư mục /sql – chứa mã nguồn của nhân hệ thống (gồm
các tệp quan trọng như: mysqld.cc – chứa các lệnh của máy chủ mysql; handler.cc và handler.h chứa các định nghĩa và các phương thức chuẩn cho mọi storage engine;
set_var.h, set_var.cc chứa các khai báo biến cho toàn bộ hệ thống,…). MySQL triển
khai các storage engine thông qua một giao diện chuẩn là handlerton và lớp thể hiện
handler.