PhpMyAdmin, Nginx, MySQL và MariaDB là các công cụ và công nghệ phổ biến trong lĩnh vực quản lý cơ sở dữ liệu web. Dưới đây là mô tả ngắn về từng công cụ:
- phpMyAdmin: phpMyAdmin là một ứng dụng web mã nguồn mở được sử dụng để quản lý cơ sở dữ liệu MySQL hoặc MariaDB thông qua giao diện đồ họa. Nó cung cấp các tính năng như tạo cơ sở dữ liệu, bảng, người dùng, thực hiện truy vấn SQL, sao lưu và phục hồi dữ liệu, và nhiều tính năng khác. phpMyAdmin giúp đơn giản hóa việc quản lý và tương tác với cơ sở dữ liệu MySQL hoặc MariaDB.
- Nginx: Nginx (đọc là “engine-x”) là một máy chủ web và proxy ng reverse-proxy mã nguồn mở. Nó được thiết kế để xử lý các tải trọng lớn và có hiệu suất cao, đồng thời tiêu thụ ít tài nguyên hệ thống. Nginx được sử dụng rộng rãi làm máy chủ web để phục vụ các trang web tĩnh và động.
- MySQL và MariaDB: MySQL và MariaDB là hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) mã nguồn mở. Chúng cung cấp một cách tiện lợi và mạnh mẽ để lưu trữ và quản lý cơ sở dữ liệu quan hệ. MySQL đã trở thành một trong những RDBMS phổ biến nhất và được sử dụng rộng rãi trong các ứng dụng web. MariaDB là một nhánh phát triển từ MySQL và được xây dựng để duy trì tính tương thích ngược với MySQL và cung cấp các cải tiến và tính năng mới.
Tại sao chúng ta cần có phpMyAdmin?
- phpMyAdmin cung cấp giao diện đồ họa thân thiện cho việc quản lý cơ sở dữ liệu MySQL hoặc MariaDB. Nó giúp người dùng không cần phải làm quen với lệnh SQL để thao tác với cơ sở dữ liệu.
- Nó cung cấp các tính năng như tạo, chỉnh sửa và xóa cơ sở dữ liệu, bảng, truy vấn dữ liệu, sao lưu và phục hồi dữ liệu, quản lý người dùng và phân quyền, và nhiều tính năng khác.
- phpMyAdmin giúp đơn giản hóa công việc quản lý cơ sở dữ liệu, giúp người dùng tạo, sửa đổi và truy vấn dữ liệu một cách dễ dàng và tiện lợi thông qua giao diện web.
Để cài đặt phpMyAdmin và Nginx bằng Docker Compose, bạn có thể tạo một file docker-compose.yml
với nội dung sau:
cat > docker-compose.yml << 'OEF'
version: '3.8'
services:
nginx:
image: nginx
container_name: nginx
restart: always
ports:
- 80:80
volumes:
- /home/nginx.conf:/etc/nginx/conf.d/default.conf
depends_on:
- phpmyadmin
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin
restart: always
environment:
- PMA_ARBITRARY=1
depends_on:
- mysql
- mariadb
mysql:
image: mysql
container_name: mysql
restart: always
environment:
- MYSQL_ROOT_PASSWORD=Hoanghd164
- MYSQL_DATABASE=wiki-hoanghd-mysql
- MYSQL_USER=hoanghd
- MYSQL_PASSWORD=Hoanghd164
mariadb:
image: mariadb
container_name: mariadb
restart: always
environment:
- MYSQL_ROOT_PASSWORD=Hoanghd164
- MYSQL_DATABASE=wiki-hoanghd-mariadb
- MYSQL_USER=hoanghd
- MYSQL_PASSWORD=Hoanghd164
OEF
Lưu ý thay đổi các giá trị Hoanghd164
, wiki-hoanghd-mariadb
, wiki-hoanghd-mysql
và hoanghd
thành giá trị mong muốn của bạn.
Sau đó, bạn tạo một file nginx.conf
với nội dung sau:
cat > /home/nginx.conf << 'OEF'
server {
listen 80;
server_name phpmyadmin.hoanghd.com;
location / {
proxy_pass http://phpmyadmin;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
OEF
Lưu ý thay phpmyadmin.hoanghd.com
bằng tên miền hoặc địa chỉ IP của máy chủ của bạn.
Sau khi đã chuẩn bị các tệp docker-compose.yml
và nginx.conf
, bạn chạy lệnh sau để bắt đầu cài đặt:
$ docker-compose up -d
[+] Running 5/5
⠿ Network hoanghd_default Created 0.1s
⠿ Container mariadb Started 2.3s
⠿ Container mysql Started 1.3s
⠿ Container phpmyadmin Started 3.0s
⠿ Container nginx Started 4.0s
Docker Compose sẽ tải về và cài đặt các hình ảnh Docker cần thiết và khởi chạy các dịch vụ Nginx, phpMyAdmin và MySQL.
Kiểm tra lại các container của bạn đã chạy thành công chưa.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
854fb5b45bc1 nginx "/docker-entrypoint.…" 50 seconds ago Up 46 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp nginx
aca1ff9ab089 phpmyadmin/phpmyadmin "/docker-entrypoint.…" 51 seconds ago Up 47 seconds 80/tcp phpmyadmin
20ca07106047 mariadb "docker-entrypoint.s…" 51 seconds ago Up 48 seconds 3306/tcp mariadb
a45d5dc5e3c3 mysql "docker-entrypoint.s…" 51 seconds ago Up 49 seconds 3306/tcp, 33060/tcp mysql
Sau khi quá trình cài đặt hoàn tất, bạn có thể truy cập phpMyAdmin thông qua trình duyệt web bằng cách truy cập vào http://phpmyadmin.hoanghd.com
.
Mình thử login vào server mysql (tức là container của mình tạo chung với Docker Compose).
Kết quả mình có database có tên wiki-hoanghd-mysql
.
Tương tự mình thử login vào server mariadb (cũng là container của mình tạo chung với Docker Compose).
Kết quả mình có database có tên wiki-hoanghd-mariadb
.