Chứa DB của MySQL vào RAM disk để test cho nhanh
Mysql
44
Testing
30
White

Ngoc Dao viết ngày 20/03/2016

Khi test tự động có đụng đến DB, thường ta phải tạo rồi xóa DB rất nhiều lần. Do đó nếu lưu DB trên đĩa cứng bình thường thì mỗi lần chạy test phải có thể chờ lâu, do tốc độ đọc ghi của đĩa cứng chậm. Bài này hướng dẫn cách cài MySQL trên Mac (bạn có thể áp dụng ý tưởng trong bài này cho những thứ khác, chạy hệ điều hành khác) và cấu hình để nó lưu DB vào memory, như vậy test sẽ chạy trong chớp mắt. Nhiều hướng dẫn trên mạng hướng dẫn rất phức tạp, nào là tạo group, tạo user, cấu hình chạy theo kiểu service tự động chạy khi khởi động máy v.v. Cách trong bài này đơn giản nhẹ nhàng hơn nhiều, vì máy Mac quí hoá của bạn là máy cá nhân, muốn làm việc lúc nào thì bạn bật MySQL lên, làm việc xong bạn tắt MySQL chơi game nghe nhạc, chứ để mấy cái process quái quỉ đó chạy ngầm làm chi cho nặng máy!

Tạo RAM disk

Gõ lệnh: diskutil erasevolume HFS+ "ramdisk" `hdiutil attach -nomount ram://2097152`

Lệnh này sẽ tạo RAM disk có dung lượng 1GB rồi mount vào thư mục /Volumes/ramdisk. Muốn unmount để thu hồi memory thì bật Finder rồi click unmount là xong.

Cài Brew

Brew là chương trình quản lí package (giống yum, apt-get v.v. trên Linux) viết bằng Ruby được ưa chuộng nhất trên MacOS hiện nay. Ta cài Xcode, rồi cài nó theo hướng dẫn.

Chú ý package của Brew có loại gọi là "keg-only", nghĩa là sau khi cài xong thì các chương trình bin của package không được tự động gán vào biến môi trường PATH. Với những package này, sau khi cài xong package phải gõ thêm lệnh: brew link <ten package>.

Ví dụ gettext là package kiểu này. Sau khi brew install gettext thì ta không có ngay lệnh xgettext. Phải brew link gettext thêm.

Cài MySQL

Gõ lệnh brew install mysql để cài. Cài xong máy sẽ có thêm một số lệnh mysqlxxx. Một số lệnh khác hay dùng: brew search mysql, brew info mysql.

Theo hướng dẫn hiện trên màn hình sau khi cài (muốn xem lại thì brew info mysql), ta gõ lệnh: unset TMPDIR rồi mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/Volumes/ramdisk/mysql --tmpdir=/tmp.

Thư mục /Volumes/ramdisk/mysql sẽ được tạo. Để khởi động MySQL và bảo nó hãy chứa DB ở thư mục này, gõ lệnh: mysql.server start --datadir=/Volumes/ramdisk/mysql. MySQL sẽ khởi động ở cổng 3306. Lúc này ta có thể dùng chương trình ví dụ như Navicat v.v. để truy cập bằng username "root", password rỗng.

Hãy thử nghiệm, sẽ thấy MySQL bây giờ chạy nhanh như chớp!

Để tắt, gõ lệnh mysql.server stop.

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Ngoc Dao

102 bài viết.
285 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
62 8
Làm thế nào để nâng cấp trang web mà không làm gián đoạn dịch vụ? Đây là câu hỏi phỏng vấn các công ty lớn thường hỏi khi bạn xin vào vị trí làm lậ...
Ngoc Dao viết hơn 2 năm trước
62 8
White
40 1
Bài viết này giải thích sự khác khác nhau giữa hai ngành khoa học máy tính (computer science) và kĩ thuật phần mềm (software engineering), hi vọng ...
Ngoc Dao viết hơn 2 năm trước
40 1
White
34 1
Nếu là team leader, giám đốc công ty hay tướng chỉ huy quân đội, vấn đề cơ bản bạn gặp phải là “hướng mọi người đi theo con đường bạn chỉ ra”. Thử...
Ngoc Dao viết hơn 2 năm trước
34 1
Bài viết liên quan
White
20 0
Mysql innodb internal là một chủ đề khá sâu. Bản thân tôi cũng chưa bao quát hết. Bài viết này chỉ cung cấp một cái nhìn sơ lược. Để các bạn khôn...
manhdung viết 3 năm trước
20 0
White
4 0
1. Định nghĩa Một kế hoạch kiểm thử dự án phần mềm (test plan) là một tài liệu mô tả các mục tiêu, phạm vi, phương pháp tiếp cận, và tập trung vào...
Thiên Hoàng Minh Vũ viết 6 tháng trước
4 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
102 bài viết.
285 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!