Cấu hình MySQL sau khi triển khai

Tạo quyền truy cập cho người dùng root:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Mật_khẩu_mới';

Tạo tài khoản admin và cấp quyền truy cập từ mọi địa chỉ IP:

CREATE USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY 'Mật_khẩu_admin';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%';
FLUSH PRIVILEGES;

Đối với phiên bản cũ hơn, có thể cấu hình root truy cập từ mọi vị trí như sau:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Mật_khẩu_root' WITH GRANT OPTION;

Tạo một tài khoản mới chỉ có thể kết nối từ một địa chỉ IP cụ thể:

CREATE USER 'nguoidungmoi'@'192.168.1.100' IDENTIFIED BY 'Matkhau123!';
GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'nguoidungmoi'@'192.168.1.100';
FLUSH PRIVILEGES;

MySQL mặc định chỉ lắng nghe trên 127.0.0.1. Để cho phép kết nối từ xa, cần sửa file cấu hình:

vim /etc/mysql/mysql.conf.d/mysqld.cnf

Thay đổi dòng bind-address = 127.0.0.1 thành bind-address = 0.0.0.0. Khởi động lại dịch vụ MySQL.

Kết nối đến cơ sở dữ liệu từ máy khác:

mysql -h [IP_SERVER] -P 3306 -u root -p

Tìm mật khẩu mặc định của MySQL trên CentOS hoặc Ubuntu:

# CentOS
cat /var/log/mysqld.log | grep password

# Ubuntu
cat /etc/mysql/debian.cnf

Cập nhật mật khẩu cho tài khoản root:

ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'Mật_khẩu_mới!';
FLUSH PRIVILEGES;

Kiểm tra danh sách cơ sở dữ liệu và bảng:

SHOW DATABASES;
USE jumpserver;
SHOW TABLES;
SELECT COUNT(*) FROM users_user;

Quản lý tài khoản MySQL:

# Liệt kê các tài khoản hiện có
SELECT user, host FROM mysql.user;

# Xóa một tài khoản
DROP USER 'zabbix'@'%';

# Tạo mới cơ sở dữ liệu
CREATE DATABASE new_database CHARACTER SET utf8 COLLATE utf8_general_ci;

# Xóa cơ sở dữ liệu
DROP DATABASE zabbix;

# Đổi mật khẩu tài khoản
ALTER USER 'zabbix'@'%' IDENTIFIED BY 'Mật_khẩu_mới!';

Sao lưu cơ sở dữ liệu trong môi trường Docker:

Xác định tên container MySQL:

docker ps

Truy cập vào container và sao lưu toàn bộ cơ sở dữ liệu:

docker exec -it jms_mysql bash
mysqldump -h127.0.0.1 -P3306 -uroot -pMATKHAU --all-databases > all_db_backup.sql
exit

Chuyển file backup ra ngoài container:

docker cp jms_mysql:/all_db_backup.sql /root/

Sao lưu cơ sở dữ liệu riêng lẻ (ví dụ: jumpserver):

docker exec -it jms_mysql bash
mysqldump -B jumpserver -h127.0.0.1 -uroot -pMATKHAU > jumpserver_backup.sql
exit

Nhập dữ liệu đã backup vào cơ sở dữ liệu mới:

CREATE DATABASE jumpserver CHARACTER SET utf8 COLLATE utf8_bin;
USE jumpserver;
SOURCE /opt/jumpserver_backup.sql;

Kiểm tra số lượng bảng sau khi import:

SHOW TABLES;

Thẻ: mysql docker mysqldump

Đăng vào ngày 27 tháng 6 lúc 16:57