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;