Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Linux

Cách cài đặt và cấu hình MySQL trên Ubuntu

MySQL là hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS) mã nguồn mở, mạnh mẽ, và phổ biến, tổ chức dữ liệu thành một hoặc nhiều bảng dữ liệu nơi kiểu dữ liệu có thể liên quan nhau. Ngôn ngữ truy vấn có cấu trúc (SQL) làm việc với RDBMS, và khi ai đó muốn lưu trữ hoặc quản lý khối lượng lớn dữ liệu, họ sẽ dùng dịch vụ của cơ sở dữ liệu quan hệ và SQL.

Bài viết này chỉ cách cấu hình MySQL trên server Ubuntu 18.04. Nó cũng chỉ cách bật xác thực, theo sau là quản lý dịch vụ. Cuối cùng, bạn cũng sẽ học cách kiểm tra dịch vụ để xác minh cấu hình thành công.

Bước 1: Cài đặt MySQL Client

Cài mysql-client để kết nối từ xa với server:

sudo apt install mysql-client -y

Kiểm tra phiên bản client để xác minh cài đặt thành công:

mysql -V

Kết quả:

mysql Ver 8.0.28-0ubuntu0.20.04.3 for Linux on x86_64 ((Ubuntu))

Bây giờ bạn có thể dùng lệnh sau để thiết lập kết nối từ xa với MySQL server:

mysql -u <username> -p <password>-h HOSTNAME_OR_IP

Bước 2: Cài đặt MySQL Server

Trước khi cài MySQL, đảm bảo server Ubuntu đã cài và cấu hình đúng. Ubuntu 18.04 server, mặc định, chứa MySQL phiên bản mới nhất 5.7 trong kho. Dùng lệnh apt cập nhật gói hệ thống từ kho như sau:

sudo apt update

Bây giờ dùng lệnh sau để cài gói MySQL server:

sudo apt install mysql-server -y

Bước 3: Cấu hình MySQL

Trong thời đại mối đe dọa an ninh mạng bền bỉ, thay đổi tùy chọn mặc định sau cài server thành công là tiêu chuẩn. Phần này hướng dẫn cấu hình MySQL server để loại bỏ các tùy chọn mặc định không an toàn như đăng nhập root từ xa, tài khoản người dùng mặc định, v.v. MySQL đơn giản hóa tác vụ này bằng cách tự động thực hiện tất cả thay đổi nhờ chạy một script bảo mật đơn giản.

sudo mysql_secure_installation

Script nhắc nhiều tùy chọn yêu cầu trả lời Yes hoặc No để thay đổi bảo mật mặc định MySQL. Ví dụ, nhắc đầu tiên hỏi có muốn thiết lập plugin xác thực mật khẩu không, trả lời Yes và tiếp tục.

Nhắc tiếp theo yêu cầu đặt mật khẩu tài khoản root MySQL. Bạn thấy việc bật plugin Validate Password cho phép đặt độ mạnh mật khẩu theo ba cấp độ chính sách bảo mật và độ dài.

Nhập số bạn muốn chọn để đặt độ mạnh mật khẩu. Hệ thống sẽ yêu cầu đặt mật khẩu mới và nhập lại để xác nhận, như sau:

Cách cài đặt và cấu hình MySQL trên Ubuntu

Bạn thấy sau khi đặt mật khẩu, nó hiển thị độ mạnh và hỏi có muốn tiếp tục không.

Cách cài đặt và cấu hình MySQL trên Ubuntu

Bây giờ nó sẽ hỏi các câu tiếp theo:

  1. Xóa user test ẩn danh
  2. Vô hiệu hóa đăng nhập từ xa từ user root
  3. Xóa database test
  4. Tải lại bảng quyền để lưu tất cả thay đổi

Gõ Y để tiếp tục với cài đặt mặc định để thiết lập quy tắc bảo mật.

Cách cài đặt và cấu hình MySQL trên Ubuntu

Các phiên bản MySQL cũ (trước 5.7.6) yêu cầu bạn khởi tạo thủ công thư mục database. Còn phiên bản sau đó, chạy lệnh sau:

mysqld –initialize

Bước 4: Điều chỉnh xác thực người dùng MySQL

Bất kể việc thiết lập mật khẩu cho tài khoản user MySQL, cài đặt xác thực mặc định vô hiệu hóa việc dùng mật khẩu khi thiết lập kết nối. Thay vào đó, nó tự động xác thực user nhờ plugin auth_socket. Plugin này tuyệt vời cho tính dễ dùng, nhưng không thực tế nếu bạn muốn truy cập database từ client từ xa.

Việc truy cập database không mật khẩu làm phức tạp quy trình làm việc khi được truy cập bởi chương trình bên ngoài, phần này tóm tắt hai cách xác thực user khi thiết lập kết nối:

1. Xác thực User Root bằng mật khẩu

Để đảm bảo xác thực user qua mật khẩu, bạn có thể đổi plugin từ "auth_socket" sang "mysql_native_password." Mở màn hình MySQL prompt bằng lệnh sudo mysql và xác minh plugin đang dùng cho xác thực user, như sau:

SELECT user, authentication_string, plugin, host FROM mysql.user;
Cách cài đặt và cấu hình MySQL trên Ubuntu

Ảnh chụp màn hình trên hiển thị client root xác thực mình bằng plugin "auth_socket". Để khởi tạo xác thực root client bằng mật khẩu, dùng câu lệnh ALTER USER để đặt plugin "mysql_native_password".

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Lưu các thay đổi trên như sau:

FLUSH PRIVILEGES;

Câu lệnh MySQL "FLUSH PRIVILEGES" lưu thay đổi vào bảng database do các mệnh đề ALTER, INSERT, UPDATE, và DELETE thực hiện.

Để xác minh chiến lược xác thực dùng bởi từng user và đảm bảo plugin "auth_socket" không được dùng bởi root client, chạy lại lệnh:

SELECT user,authentication_string,plugin,host FROM mysql.user;
Cách cài đặt và cấu hình MySQL trên Ubuntu

Bây giờ user root có thể kết nối với server bằng cách xác thực qua lệnh sau:

sudo mysql -u root -p

2. Tạo User chuyên dụng

Cách khác để bật xác thực không dùng mysql_native_password là tạo user chuyên dụng như sau:

sudo mysql

Tạo tài khoản mới và cấp tất cả đặc quyền để gán quyền kiểm soát cấp quản trị cho user mới. Sau đó thoát MySQL prompt. Chạy các truy vấn SQL sau lần lượt để đạt được điều này:

CREATE USER 'ubuntu'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'ubuntu'@'localhost' WITH GRANT OPTION;
exit

Quản lý và kiểm tra dịch vụ MySQL với systemctl

Đặt dịch vụ chạy khi khởi động server Ubuntu bằng lệnh systemctl enable như sau:

sudo systemctl enable mysql

Bên cạnh đó, bạn có thể kiểm tra server đang chạy bằng cách gõ:

sudo systemctl status mysql

Hoặc

sudo systemctl status mysql.service
Cách cài đặt và cấu hình MySQL trên Ubuntu

Dịch vụ chạy tự động sau cài MySQL, tuy nhiên, nếu không, bạn có thể khởi động dịch vụ bằng lệnh sau:

sudo systemctl start mysql

Bắt đầu với MySQL Server trên Ubuntu

MySQL là hệ thống quản lý cơ sở dữ liệu mã nguồn mở, thân thiện, có khả năng mở rộng, và mạnh mẽ. Bên cạnh đó, nó là phần không thể thiếu của mô hình LAMP/LEMP stack hoặc công nghệ ứng dụng web. Hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS) này cung cấp cài đặt đơn giản và cấu hình dễ dàng trên các phiên bản gần đây.

Bài viết này hướng dẫn bạn xây dựng thiết lập MySQL cơ bản giúp bạn bắt đầu học MySQL hoạt động như thế nào. Nó cũng bao gồm một số biện pháp bảo mật quan trọng ban đầu trong cấu hình để tránh lỗ hổng trong cài đặt mặc định. Bạn có thể tìm hiểu thêm về bảo mật MySQL bằng cách theo dõi một số mẹo bảo mật nâng cao.