Việc cài đặt MySQL trên Linux thường yêu cầu quyền quản trị (root). Tuy nhiên, trong nhiều môi trường máy chủ dùng chung hoặc quy định bảo mật khắt khe, bạn có thể cần triển khai cơ sở dữ liệu này dưới tư cách một người dùng thông thường. Dưới đây là hướng dẫn chi tiết cách thiết lập MySQL 5.7.27 bằng file binary (glibc).
1. Chuẩn bị thư mục và môi trường
Giả sử người dùng hiện tại là myuser và thư mục làm việc chính nằm tại /home/myuser/database. Chúng ta sẽ quy hoạch các đường dẫn như sau:
- Thư mục cài đặt:
/home/myuser/database/mysql - Thư mục dữ liệu (data):
/home/myuser/database/mysql/data - File socket:
/home/myuser/database/mysql/mysql.sock - Cổng dịch vụ: 3306
Tiến hành giải nén gói cài đặt và đổi tên thư mục để thuận tiện cho việc quản lý:
cd /home/myuser/database
tar -zxvf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.27-linux-glibc2.12-x86_64 mysql
2. Thiết lập tệp cấu hình (my.cnf)
Vì không dùng quyền root, chúng ta không thể sử dụng file cấu hình mặc định tại /etc/my.cnf. Thay vào đó, hãy tạo một file cấu hình riêng bên trong thư mục cài đặt.
cd /home/myuser/database/mysql
touch my.cnf
Nội dung file my.cnf cần chỉ định rõ các đường dẫn tuyệt đối mà người dùng có quyền ghi:
[client]
port = 3306
socket = /home/myuser/database/mysql/mysql.sock
[mysqld]
port = 3306
basedir = /home/myuser/database/mysql
datadir = /home/myuser/database/mysql/data
pid-file = /home/myuser/database/mysql/mysql.pid
socket = /home/myuser/database/mysql/mysql.sock
log_error = /home/myuser/database/mysql/error.log
server-id = 101
symbolic-links = 0
3. Thiết lập biến môi trường
Để có thể gọi các lệnh của MySQL từ bất kỳ đâu, hãy thêm đường dẫn bin vào biến môi trường PATH trong file cấu hình cá nhân (ví dụ .bash_profile hoặc .bashrc):
echo "export PATH=$PATH:/home/myuser/database/mysql/bin" >> ~/.bashrc
source ~/.bashrc
4. Khởi tạo Database
Trước khi chạy dịch vụ, bạn cần khởi tạo cấu trúc hệ thống của MySQL. Sử dụng cờ --initialize để tạo mật khẩu tạm thời cho tài khoản root.
mysqld --defaults-file=/home/myuser/database/mysql/my.cnf \
--user=myuser \
--basedir=/home/myuser/database/mysql \
--datadir=/home/myuser/database/mysql/data \
--initialize
Sau khi lệnh chạy xong, hãy kiểm tra file log để lấy mật khẩu tạm thời:
grep "temporary password" /home/myuser/database/mysql/error.log
5. Khởi chạy dịch vụ MySQL
Sử dụng lệnh mysqld_safe để khởi động server ngầm định. Việc chỉ định --defaults-file là bắt buộc để MySQL nhận diện đúng cấu hình của người dùng thông thường.
mysqld_safe --defaults-file=/home/myuser/database/mysql/my.cnf &
6. Đăng nhập và đổi mật khẩu quản trị
Sử dụng mật khẩu tạm thời đã tìm thấy ở bước 4 để đăng nhập vào hệ thống:
mysql -u root -p -S /home/myuser/database/mysql/mysql.sock
Sau khi đăng nhập thành công, bạn phải tiến hành thay đổi mật khẩu ngay lập tức để có thể thực thi các truy vấn khác:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewSecurePassword123';
FLUSH PRIVILEGES;
EXIT;
Lưu ý: Do chúng ta sử dụng socket ở vị trí không mặc định, khi dùng các công cụ client, bạn nên chỉ định rõ tham số -S hoặc cấu hình phần [client] trong tệp my.cnf cá nhân để kết nối suôn sẻ.