Về danh sách

Cài MariaDB mới trên macOS khi dùng MAMP để chạy Moodle (vượt giới hạn MariaDB của MAMP)

Cover

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.

MariaDB monitor — kết nối Homebrew MariaDB, USE moodle, SHOW TABLES với prefix js0h_
MariaDB 12.2.2 Homebrew — đã chọn database moodle và liệt kê bảng với prefix js0h_.

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ỗiNguyên nhân
Moodle chạy installerprefix bảng sai
Không kết nối databaseuser/password sai
Trang trắngconfig.php lỗi
Lỗi pluginversion Moodle khác
Không login đượcwwwroot 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.