Adminer (trước đây là phpMinAdmin) là một công cụ quản trị cơ sở dữ liệu đầy đủ tính năng hỗ trợ cả RDBMS (Hệ thống quản lý cơ sở dữ liệu quan hệ) như MySQL/MariaDB, PostgreSQL, SQLite, MS SQL và Oracle cũng như NoSQL như MongoDB và các hệ thống khác (thông qua plugin). Đây là công cụ quản lý cơ sở dữ liệu nhẹ, thân thiện với người dùng và hiệu suất cao có thể dễ dàng sử dụng để quản lý cơ sở dữ liệu của bạn.
Adminer được tạo ra như một giải pháp thay thế cho phpMyAdmin, được viết bằng PHP và bao gồm một tệp PHP nhỏ duy nhất và được phân phối theo Giấy phép Apache (hoặc GPL v2).
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn hướng dẫn từng bước về cách cài đặt "Adminer" công cụ quản trị cơ sở dữ liệu trên máy chủ Ubuntu 22.04.
Trước khi bạn bắt đầu cài đặt Adminer, hãy chạy lệnh apt sau để cập nhật và làm mới chỉ mục gói kho lưu trữ Ubuntu của bạn.
Bây giờ bạn có thể kiểm tra gói "adminer" bằng lệnh sau. Tại thời điểm viết bài này, kho lưu trữ Ubuntu cung cấp phiên bản mới nhất của Admuiner v4.8, có sẵn trong kho lưu trữ Ubuntu "universe/web". Ngoài ra, bạn có thể thấy có một số gói phụ thuộc cho Adminer, bao gồm trình điều khiển PHP cho nhiều RDBMS như MySQL/MariaDB, PostgreSQL và SQLite3.
Bây giờ bạn có thể cài đặt công cụ quản trị cơ sở dữ liệu "Adminer" bằng lệnh apt bên dưới. Nhập Y để xác nhận cài đặt và nhấn ENTER để tiếp tục, quá trình cài đặt "Adminer" sẽ bắt đầu.
Sau khi quá trình cài đặt "Adminer" hoàn tất, bạn sẽ cần kích hoạt cấu hình Apache2 mặc định cho Adminer "/etc/apache2/conf-available/adminer.conf".
Chạy lệnh sau để kích hoạt cấu hình Adminer cho máy chủ web Apache2.
Tiếp theo, hãy kiểm tra và xác minh cấu hình Apache2 bằng lệnh sau. Sau đó, khởi động lại dịch vụ Apache2 để áp dụng các thay đổi mới.
Bây giờ bạn có thể truy cập dịch vụ này thông qua trình duyệt web với đường dẫn URL mặc định "/adminer" (tức là: http://192.168.5.75/adminer). Và bạn sẽ nhận được trang đăng nhập của công cụ quản trị cơ sở dữ liệu "Adminer".
Adminer là công cụ quản trị nhiều cơ sở dữ liệu, rất khác so với các công cụ quản trị cơ sở dữ liệu như phpMyAdmin chỉ hỗ trợ MySQL/MariaDB hoặc pgAdmin cho PostgreSQL.
Bạn có thể sử dụng "Adminer" để kết nối với nhiều RDBMS như MySQL/MariaDB, PostgreSQL, SQLite và OracleDB. Để kết nối với cơ sở dữ liệu của bạn bằng "Adminer", bạn chỉ cần nhập thông tin chi tiết về người dùng cơ sở dữ liệu, mật khẩu và cơ sở dữ liệu trên trang đăng nhập "Adminer".
Dưới đây, bạn sẽ bảo mật cài đặt "Adminer" bằng hai phương pháp:
Chỉnh sửa tệp "/etc/apache2/conf-available/adminer.conf" bằng lệnh sau.
Ở đầu dòng, bạn có thể thấy tùy chọn "Alias ..." xác định đường dẫn URL mặc định của Adminer. Trong bản demo, chúng ta sẽ thay đổi đường dẫn URL mặc định từ "/adminer" thành đường dẫn tùy chỉnh "/mydbadmin" bằng cách sử dụng cấu hình sau.
Lưu và đóng tệp khi bạn hoàn tất.
Tiếp theo, chạy lệnh sau để kiểm tra và xác minh cấu hình Apache2. Nếu bạn nhận được thông báo đầu ra như "Syntax OK", điều đó có nghĩa là cấu hình Apache2 của bạn đã chính xác.
Bây giờ hãy khởi động lại dịch vụ Apache2 để áp dụng các thay đổi mới bằng cách sử dụng lệnh bên dưới.
Cuối cùng, bạn có thể truy cập cài đặt Adminer của mình trên đường dẫn URL mới "/mydbadmin" (ví dụ: http://192.168.5.75/mydbadmin). Và bạn sẽ nhận được trang đăng nhập của công cụ quản trị cơ sở dữ liệu Adminer.
Chạy lệnh sau để tạo tệp người dùng mới "/etc/adminer/.htpasswd" cho xác thực cơ bản Apache. Trong ví dụ này, bạn sẽ định nghĩa người dùng mới cho xác thực cơ bản Apache là "dbadmin".
Bây giờ hãy nhập mật khẩu cho người dùng "dbadmin" và lặp lại mật khẩu. Và tệp người dùng mới cho xác thực cơ bản Apache sẽ được tạo.
Nếu bạn chỉ muốn thêm người dùng mới, bạn có thể xóa tùy chọn "-c", nghĩa là tạo tệp người dùng cơ sở dữ liệu mới. Vì vậy, lệnh để thêm người dùng mới sẽ như sau.
Tiếp theo, chỉnh sửa cấu hình "/etc/apache2/conf-available/adminer.conf" bằng lệnh sau.
Thêm cấu hình sau vào tệp. Khi sử dụng cấu hình, chỉ những người dùng hợp lệ trên tệp người dùng "/etc/adminer/.htpasswd" mới được phép đăng nhập và truy cập công cụ quản trị cơ sở dữ liệu Adminer trên đường dẫn URL "/mydbadmin".
Lưu và đóng tệp khi bạn hoàn tất.
Bây giờ hãy chạy lệnh sau để kiểm tra và xác minh tệp cấu hình Apache. Sau đó, khởi động lại dịch vụ Apache2 để áp dụng các thay đổi mới.
Cuối cùng, quay lại trình duyệt web của bạn và truy cập cài đặt URL Adminer (ví dụ: http://192.168.5.75/mydbadmin). Và bây giờ bạn sẽ được nhắc xác thực cơ bản của Apache trước khi vào trang đăng nhập Adminer.
Nhập tên người dùng "dbadmin" và mật khẩu, sau đó nhấp vào "Đăng nhập". Và bạn sẽ vào trang đăng nhập Adminer.
Trước khi tạo người dùng MariaDB mới, bạn sẽ cần thiết lập MariaDB để chạy trên địa chỉ IP riêng, có thể thiết lập thông qua cấu hình MariaDB "/etc/mysql/mariadb.conf.d/50-server.cnf".
Chỉnh sửa tệp cấu hình MariaDB "/etc/mysql/mariadb.conf.d/50-server.cnf" bằng lệnh bên dưới.
Thay đổi địa chỉ "lắng nghe" mặc định thành IP riêng của máy chủ MariaDB. Trong ví dụ này, địa chỉ IP của máy chủ MariaDB là "192.168.5.20".
Lưu và đóng tệp khi bạn hoàn tất.
Bây giờ hãy chạy lệnh sau để khởi động lại dịch vụ MariaDB và áp dụng các thay đổi mới.
Tiếp theo, hãy đăng nhập vào máy chủ MySQL/MariaDB của bạn và chạy lệnh mysql bên dưới.
Bây giờ hãy chạy các truy vấn MariaDB sau để tạo người dùng và mật khẩu mới cho máy chủ MariaDB của bạn. Trong ví dụ này, người dùng MariaDB "[emailprotected]" sẽ có thể kết nối đến máy chủ MariaDB từ máy chủ Quản trị, có địa chỉ IP là "192.168.5.75".
Tiếp theo, hãy chạy các truy vấn sau để kiểm tra và xác minh các đặc quyền của người dùng "[emailprotected]". Sau đó, nhập "quit" để thoát khỏi shell MariaDB. Như bạn thấy, người dùng MariaDB "[emailprotected]" sẽ có thể truy cập tất cả các cơ sở dữ liệu trên máy chủ MariaDB.
Bây giờ nếu bạn có tường lửa UFW đang chạy trên máy chủ MariaDB, bạn cũng có thể thêm các quy tắc UFW mới để bảo mật quyền truy cập MariaDB. Chạy lệnh sau để chỉ cho phép cổng MySQL/MariaDB từ địa chỉ IP của máy chủ Adminer là "192.168.5.75".
Sau đó, hãy xác minh danh sách các quy tắc UFW bằng lệnh bên dưới. Và bạn sẽ thấy quy tắc mới cho quyền truy cập MySQL/MariaDB trên cổng "3360/tcp" khả dụng trên tường lửa UFW.
Trên trang đăng nhập Adminer, nhập thông tin chi tiết về máy chủ cơ sở dữ liệu, tên người dùng và mật khẩu. Sau đó, nhấp vào nút "Đăng nhập" để đăng nhập.
Sau khi đăng nhập, giờ bạn có thể quản lý cơ sở dữ liệu của mình từ bảng điều khiển Adminer. Ngoài ra, bạn sẽ thấy phiên bản cơ sở dữ liệu và người dùng hiện đang sử dụng để kết nối với máy chủ.
Adminer được tạo ra như một giải pháp thay thế cho phpMyAdmin, được viết bằng PHP và bao gồm một tệp PHP nhỏ duy nhất và được phân phối theo Giấy phép Apache (hoặc GPL v2).
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn hướng dẫn từng bước về cách cài đặt "Adminer" công cụ quản trị cơ sở dữ liệu trên máy chủ Ubuntu 22.04.
Điều kiện tiên quyết
Trước khi bắt đầu với hướng dẫn sau, bạn phải có một số yêu cầu sau:- Máy chủ Ubuntu 22.04.
- Người dùng không phải root có quyền root/quản trị viên.
- Máy chủ cơ sở dữ liệu được cài đặt trên máy của bạn. Các công cụ Adminer hỗ trợ nhiều RDBMS (Hệ thống quản lý cơ sở dữ liệu quan hệ) như MySQL/MariaDB, PostgreSQL, SQLite3 và OracleDB.
Cài đặt Adminer trên Ubuntu Server
Trên các hệ thống Ubuntu mới hơn (bao gồm Ubuntu 22.04), công cụ cơ sở dữ liệu Adminer có sẵn theo mặc định trên kho lưu trữ Ubuntu Universe. Điều này giúp quản trị viên dễ dàng cài đặt Adminer hơn mà không cần bất kỳ kho lưu trữ của bên thứ ba nào hoặc bất kỳ bước cài đặt cơ bản bổ sung nào.Trước khi bạn bắt đầu cài đặt Adminer, hãy chạy lệnh apt sau để cập nhật và làm mới chỉ mục gói kho lưu trữ Ubuntu của bạn.
Mã:
sudo apt update
Mã:
sudo apt info adminer
Bây giờ bạn có thể cài đặt công cụ quản trị cơ sở dữ liệu "Adminer" bằng lệnh apt bên dưới. Nhập Y để xác nhận cài đặt và nhấn ENTER để tiếp tục, quá trình cài đặt "Adminer" sẽ bắt đầu.
Mã:
sudo apt install adminer
Sau khi quá trình cài đặt "Adminer" hoàn tất, bạn sẽ cần kích hoạt cấu hình Apache2 mặc định cho Adminer "/etc/apache2/conf-available/adminer.conf".
Chạy lệnh sau để kích hoạt cấu hình Adminer cho máy chủ web Apache2.
Mã:
sudo ln -s /etc/apache2/conf-available/adminer.conf /etc/apache2/conf-enabled/
Mã:
sudo apachectl configtest
sudo systemctl restart apache2
Bây giờ bạn có thể truy cập dịch vụ này thông qua trình duyệt web với đường dẫn URL mặc định "/adminer" (tức là: http://192.168.5.75/adminer). Và bạn sẽ nhận được trang đăng nhập của công cụ quản trị cơ sở dữ liệu "Adminer".
Adminer là công cụ quản trị nhiều cơ sở dữ liệu, rất khác so với các công cụ quản trị cơ sở dữ liệu như phpMyAdmin chỉ hỗ trợ MySQL/MariaDB hoặc pgAdmin cho PostgreSQL.
Bạn có thể sử dụng "Adminer" để kết nối với nhiều RDBMS như MySQL/MariaDB, PostgreSQL, SQLite và OracleDB. Để kết nối với cơ sở dữ liệu của bạn bằng "Adminer", bạn chỉ cần nhập thông tin chi tiết về người dùng cơ sở dữ liệu, mật khẩu và cơ sở dữ liệu trên trang đăng nhập "Adminer".
Bảo mật cài đặt Adminer
Sau khi bạn đã cài đặt Adminer, bây giờ bạn sẽ bảo mật cài đặt bằng các phương pháp khác nhau.Dưới đây, bạn sẽ bảo mật cài đặt "Adminer" bằng hai phương pháp:
- Thay đổi đường dẫn URL mặc định: Cài đặt Adminer mặc định có sẵn tại đường dẫn URL "/adminer", điều này có thể đoán được đối với kẻ tấn công. Thay đổi đường dẫn URL mặc định sẽ giúp Adminer của bạn an toàn hơn, vì chỉ bạn biết quyền truy cập đường dẫn URL cho cài đặt Adminer của mình.
- Thêm Xác thực cơ bản: Thao tác này sẽ thêm xác thực trước khi bạn truy cập trang đăng nhập Adminer. Xác thực cơ bản có thể được tạo bằng cách sử dụng mô-đun Apache2 basic_auth.
Thay đổi đường dẫn URL mặc định
Cài đặt Adminer mặc định bao gồm tệp cấu hình Apache2 "/etc/apache2/conf-available/adminer.conf" có thể được sử dụng để thiết lập công cụ quản trị cơ sở dữ liệu Adminer trên máy chủ của bạn.Chỉnh sửa tệp "/etc/apache2/conf-available/adminer.conf" bằng lệnh sau.
Mã:
sudo nano /etc/apache2/conf-available/adminer.conf
Mã:
Alias /mydbadmin /etc/adminer
Tiếp theo, chạy lệnh sau để kiểm tra và xác minh cấu hình Apache2. Nếu bạn nhận được thông báo đầu ra như "Syntax OK", điều đó có nghĩa là cấu hình Apache2 của bạn đã chính xác.
Mã:
sudo apachectl configtest
Mã:
sudo systemctl restart apache2
Thêm xác thực cơ bản Apache
Sau khi thay đổi cài đặt URL đường dẫn mặc định, đã đến lúc thêm xác thực cơ bản vào Adminer bằng mô-đun Apache2 "basic_auth".Chạy lệnh sau để tạo tệp người dùng mới "/etc/adminer/.htpasswd" cho xác thực cơ bản Apache. Trong ví dụ này, bạn sẽ định nghĩa người dùng mới cho xác thực cơ bản Apache là "dbadmin".
Bây giờ hãy nhập mật khẩu cho người dùng "dbadmin" và lặp lại mật khẩu. Và tệp người dùng mới cho xác thực cơ bản Apache sẽ được tạo.
Mã:
sudo htpasswd -B -c /etc/adminer/.htpasswd dbadmin
Mã:
sudo htpasswd -B /etc/adminer/.htpasswd newuser
Mã:
sudo nano /etc/apache2/conf-available/adminer.conf
Mã:
AuthType Basic
AuthName "Restricted Resource"
AuthBasicProvider file
AuthUserFile /etc/adminer/.htpasswd
Require valid-user
Bây giờ hãy chạy lệnh sau để kiểm tra và xác minh tệp cấu hình Apache. Sau đó, khởi động lại dịch vụ Apache2 để áp dụng các thay đổi mới.
Mã:
sudo apachectl configtest
sudo systemctl restart apache2
Cuối cùng, quay lại trình duyệt web của bạn và truy cập cài đặt URL Adminer (ví dụ: http://192.168.5.75/mydbadmin). Và bây giờ bạn sẽ được nhắc xác thực cơ bản của Apache trước khi vào trang đăng nhập Adminer.
Nhập tên người dùng "dbadmin" và mật khẩu, sau đó nhấp vào "Đăng nhập". Và bạn sẽ vào trang đăng nhập Adminer.
Thiết lập người dùng cơ sở dữ liệu (MySQL/MariaDB)
Trong ví dụ này, chúng ta sẽ sử dụng cơ sở dữ liệu MariaDB trên một máy chủ khác. Vì vậy, bạn sẽ cần thiết lập thông tin chi tiết về cơ sở dữ liệu như tên người dùng và mật khẩu cho máy chủ không phải localhost.Trước khi tạo người dùng MariaDB mới, bạn sẽ cần thiết lập MariaDB để chạy trên địa chỉ IP riêng, có thể thiết lập thông qua cấu hình MariaDB "/etc/mysql/mariadb.conf.d/50-server.cnf".
Chỉnh sửa tệp cấu hình MariaDB "/etc/mysql/mariadb.conf.d/50-server.cnf" bằng lệnh bên dưới.
Mã:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Mã:
listen = 192.168.5.20
Bây giờ hãy chạy lệnh sau để khởi động lại dịch vụ MariaDB và áp dụng các thay đổi mới.
Mã:
sudo systemctl restart mariadb
Mã:
sudo mysql -u root -p
Mã:
CREATE USER 'dbadmin'@'192.168.5.75' IDENTIFIED BY 'dbpassword';
GRANT ALL PRIVILEGES ON *.* TO 'dbadmin'@'192.168.5.75' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Tiếp theo, hãy chạy các truy vấn sau để kiểm tra và xác minh các đặc quyền của người dùng "[emailprotected]". Sau đó, nhập "quit" để thoát khỏi shell MariaDB. Như bạn thấy, người dùng MariaDB "[emailprotected]" sẽ có thể truy cập tất cả các cơ sở dữ liệu trên máy chủ MariaDB.
Mã:
SHOW GRANTS FOR [emailprotected];
quit
Bây giờ nếu bạn có tường lửa UFW đang chạy trên máy chủ MariaDB, bạn cũng có thể thêm các quy tắc UFW mới để bảo mật quyền truy cập MariaDB. Chạy lệnh sau để chỉ cho phép cổng MySQL/MariaDB từ địa chỉ IP của máy chủ Adminer là "192.168.5.75".
Mã:
sudo ufw allow from 192.168.5.75 to 192.168.5.20 port 3306 proto tcp comment 'allow mysql access for Adminer'
sudo ufw reload
Mã:
sudo ufw status
Đăng nhập vào Máy chủ MariaDB từ Adminer
Sau khi thiết lập người dùng cơ sở dữ liệu trên hệ thống của bạn, đã đến lúc kết nối với máy chủ cơ sở dữ liệu từ công cụ quản trị cơ sở dữ liệu Adminer.Trên trang đăng nhập Adminer, nhập thông tin chi tiết về máy chủ cơ sở dữ liệu, tên người dùng và mật khẩu. Sau đó, nhấp vào nút "Đăng nhập" để đăng nhập.
Sau khi đăng nhập, giờ bạn có thể quản lý cơ sở dữ liệu của mình từ bảng điều khiển Adminer. Ngoài ra, bạn sẽ thấy phiên bản cơ sở dữ liệu và người dùng hiện đang sử dụng để kết nối với máy chủ.