Khi phát triển Moodle trên macOS, nhiều người dùng MAMP vì nó cài sẵn Apache, PHP và MySQL/MariaDB. Tuy nhiên MAMP thường dùng phiên bản MariaDB/MySQL cũ (ví dụ 8.x), trong khi Moodle mới yêu cầu MariaDB >= 10.11. Hệ thống Moodle sẽ báo lỗi và không cho cài đặt hoặc nâng cấp. Giải pháp: cài MariaDB mới bằng Homebrew và để MAMP chỉ chạy Apache + PHP.
1. Vấn đề khi dùng MAMP với Moodle
MAMP thường dùng phiên bản MariaDB / MySQL cũ (ví dụ 8.x). Các phiên bản mới của Moodle yêu cầu:
MariaDB >= 10.11
Khi chạy kiểm tra hệ thống Moodle sẽ báo lỗi dạng:
database mariadb (8.0.x)
version 10.11.0 is required
Do đó Moodle không cho cài đặt hoặc nâng cấp.
2. Cài MariaDB mới bằng Homebrew
Trước tiên cần cài Homebrew.
Cài Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Kiểm tra:
brew --version
Cài MariaDB
brew install mariadb
3. Khởi động MariaDB
brew services start mariadb
Kiểm tra trạng thái:
brew services list
Nếu thấy mariadb started → MariaDB đã chạy.
4. Đăng nhập MariaDB lần đầu
MariaDB Homebrew sử dụng socket authentication, nên đăng nhập bằng:
sudo mysql
5. Tạo database mới cho Moodle
Ví dụ tạo database:
CREATE DATABASE brisky2026
DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
6. Tạo user database
CREATE USER 'brisky2026'@'localhost'
IDENTIFIED BY '12345678';
7. Cấp quyền database
GRANT ALL PRIVILEGES ON brisky2026.* TO 'brisky2026'@'localhost';
FLUSH PRIVILEGES;
Thoát MariaDB: exit;
8. Import database Moodle
Giả sử file backup briskynew.sql. Import:
mysql -u brisky2026 -p12345678 brisky2026 < ~/Downloads/briskynew.sql
9. Kiểm tra import thành công
mysql -u brisky2026 -p12345678 -e "SHOW TABLES FROM brisky2026;"
Nếu thấy hàng trăm bảng như js0h_config, js0h_user, js0h_course, js0h_quiz → Import thành công.

10. Kiểm tra prefix bảng
Nhiều site Moodle không dùng prefix mặc định mdl_. Ví dụ database có bảng js0h_user, js0h_course thì prefix phải là js0h_.
11. Cấu hình file config.php của Moodle
Mở file /Applications/MAMP/htdocs/brisky/config.php. Ví dụ cấu hình đúng:
<?php
unset($CFG);
global $CFG;
$CFG = new stdClass();
$CFG->dbtype = 'mariadb';
$CFG->dblibrary = 'native';
$CFG->dbhost = '127.0.0.1';
$CFG->dbport = '3306';
$CFG->dbname = 'brisky2026';
$CFG->dbuser = 'brisky2026';
$CFG->dbpass = '12345678';
$CFG->prefix = 'js0h_';
$CFG->wwwroot = 'http://localhost:8888/brisky';
$CFG->dataroot = '/Applications/MAMP/htdocs/brisky/moodledata';
require_once(__DIR__ . '/lib/setup.php');
12. Restart Apache trong MAMP
/Applications/MAMP/bin/apache2/bin/apachectl restart
Hoặc trong giao diện MAMP: Stop Servers → Start Servers.
13. Xóa cache Moodle
Nếu Moodle vẫn nhận sai database, xóa cache:
rm -rf /Applications/MAMP/htdocs/brisky/moodledata/cache/*
rm -rf /Applications/MAMP/htdocs/brisky/moodledata/localcache/*
rm -rf /Applications/MAMP/htdocs/brisky/moodledata/sessions/*
14. Truy cập Moodle
Mở trình duyệt: http://localhost:8888/brisky. Nếu cấu hình đúng, Moodle sẽ không chạy installer và load site từ database đã import.
15. Các lỗi phổ biến khi import Moodle
| Lỗi | Nguyên nhân |
| Moodle chạy installer | prefix bảng sai |
| Không kết nối database | user/password sai |
| Trang trắng | config.php lỗi |
| Lỗi plugin | version Moodle khác |
| Không login được | wwwroot sai |
16. Lệnh kiểm tra database Moodle nhanh
mysql -u brisky2026 -p12345678 -e "SELECT COUNT(*) FROM brisky2026.js0h_user;"
Nếu kết quả > 1 → database hoạt động bình thường.
Kết luận
Do MAMP giới hạn phiên bản database, giải pháp tốt nhất khi phát triển Moodle trên macOS là: MAMP → Apache + PHP, Homebrew → MariaDB mới. Cách này giúp dùng MariaDB 10.11+, tương thích Moodle mới, dễ quản lý database và tránh lỗi version.