Cách cài đặt và cấu hình MySQL trên Ubuntu | Học CNTT cùng FUNiX

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

Chia sẻ kiến thức 18/04/2022

Bạn muốn thiết lập hệ thống quản lý cơ sở dữ liệu quan hệ của riêng mình trên Ubuntu? Cùng FUNiX tìm hiểu về cài đặt cơ sở dữ liệu MySQL trên máy chủ.

 


MySQL là một hệ quản trị cơ sở dữ liệu quan hệ (relational database management system, hay RDBMS) mã nguồn mở, mạnh mẽ và được sử dụng rộng rãi, tổ chức dữ liệu thành một hoặc nhiều bảng dữ liệu trong đó các kiểu dữ liệu có thể liên quan với nhau. Ngôn ngữ truy vấn có cấu trúc (Structured Query Language, hay SQL) hoạt động với RDBMS và khi ai đó muốn lưu trữ hoặc quản lý một 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 hướng dẫn cách định cấu hình MySQL trên máy chủ Ubuntu 18.04, cách bật xác thực, và sau đó là quản lý dịch vụ. Cuối cùng, bạn cũng sẽ học cách dùng thử dịch vụ để xác minh cấu hình thành công.

1. Bước 1: Cài đặt máy khách MySQL

Cài đặt mysql-client để kết nối từ xa với máy chủ:

sudo apt install mysql-client -y

Kiểm tra phiên bản ứng dụng khách để xác nhận cài đặt có thành công không:

mysql -V

Đầu ra:

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

Bây giờ bạn có thể sử dụng lệnh sau để thiết lập kết nối từ xa với máy chủ MySQL:

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

2. Bước 2: Cài đặt máy chủ MySQL

Trước khi cài đặt MySQL, hãy đảm bảo rằng máy chủ Ubuntu được cài đặt và cấu hình đúng cách. Máy chủ Ubuntu 18.04, theo mặc định, chứa MySQL phiên bản 5.7 mới nhất trong kho lưu trữ. Sử dụng lệnh apt để cập nhật gói hệ thống từ kho lưu trữ như sau:

sudo apt update

Bây giờ hãy dùng lệnh sau để cài đặt gói máy chủ MySQL:

sudo apt install mysql-server -y

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

Phần này hướng dẫn bạn cấu hình máy chủ MySQL để loại bỏ các tùy chọn mặc định rủi ro như thông tin đă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 nhiệm vụ này bằng cách tự động thực hiện tất cả thay đổi bằng cách chạy một tập lệnh bảo mật đơn giản.

sudo mysql_secure_installation

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

Lời nhắc tiếp theo yêu cầu  bạn đặt mật khẩu tài khoản người dùng gốc MySQL. Việc bật plugin Validate Password (Xác thực mật khẩu) cho phép thiết lập độ mạnh của mật khẩu dựa trên ba cấp độ của chính sách bảo mật mật khẩu và độ dài mật khẩu.

Đặt độ mạnh của mật khẩu bạn muốn. Sau đó hệ thống sẽ yêu cầu đặt mật khẩu mới và gõ lại để xác nhận, như sau:

 

Sau khi đặt mật khẩu, màn hình sẽ hiển thị độ mạnh và hỏi bạn có muốn tiếp tục không.

 

Các câu hỏi tiếp theo để:

  1. Xóa người dùng thử nghiệm ẩn danh
  2. Tắt đăng nhập từ xa từ người dùng gốc (root user)
  3. Xóa cơ sở dữ liệu thử nghiệm
  4. Tải lại bảng đặc quyền (privileges table) để lưu tất cả các thay đổi

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

 

Các phiên bản MySQL trước 5.7.6 yêu cầu bạn khởi tạo thủ công thư mục cơ sở dữ liệu. Trong các phiên bản sau đó, hãy chạy lệnh sau:

mysqld –initialize

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

Cài đặt xác thực mặc định vô hiệu hóa việc sử dụng mật khẩu trong quá trình thiết lập kết nối. Thay vào đó, nó tự động xác thực người dùng với sự trợ giúp của plugin auth_socket. Plugin này là có khả năng sử dụng tuyệt vời, tuy nhiên, nó không thực tế nếu bạn muốn truy cập cơ sở dữ liệu từ một ứng dụng khách từ xa.

Vì việc truy cập cơ sở dữ liệu mà không có mật khẩu làm phức tạp hóa quá trình làm việc khi một chương trình bên ngoài truy cập, phần dưới đây sẽ tóm tắt hai cách để xác thực người dùng khi thiết lập kết nối:

4.1 Xác thực người dùng gốc bằng mật khẩu

Để đảm bảo xác thực người dùng thông qua mật khẩu, bạn có thể thay plugin “auth_socket” bằng “mysql_native_password“. Để thực hiện, hãy mở màn hình nhắc MySQL bằng cách sử dụng lệnh sudo mysql và xác minh plugin đang được sử dụng để xác thực người dùng, như sau:

SELECT user, authentication_string, plugin, host FROM mysql.user;

Ảnh chụp màn hình ở trên hiển thị rằng máy khách gốc tự xác thực bằng cách sử dụng plugin “auth_socket”. Để khởi tạo xác thực máy khách gốc bằng mật khẩu, hãy sử 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 các thay đổi đối với bảng cơ sở dữ liệu được thực hiện bởi các mệnh đề ALTER, INSERT, UPDATE và DELETE.

Bây giờ để xác nhận các chiến lược xác thực được sử dụng bởi từng người dùng và đảm bảo rằng plugin “auth_socket” không được ứng dụng khách gốc sử dụng, hãy chạy lại lệnh:

SELECT user,authentication_string,plugin,host FROM mysql.user;
 

Bây giờ người dùng root có thể kết nối với máy chủ bằng cách xác thực thông qua lệnh sau:

sudo mysql -u root -p

4.2 Tạo một người dùng chuyên dụng

Một cách khác để kích hoạt xác thực mà không cần sử dụng mysql_native_password là tạo một người dùng chuyên dụng như sau:

sudo mysql

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

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

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

Đặt dịch vụ để chạy khi khởi động máy chủ Ubuntu bằng cách sử dụng lệnh systemctl enable như sau:

sudo systemctl enable mysql

Ngoài ra, bạn có thể kiểm tra máy chủ có đang hoạt động không bằng cách gõ:

sudo systemctl status mysql

Hoặc

sudo systemctl status mysql.service
Bạn muốn thiết lập hệ thống quản lý cơ sở dữ liệu quan hệ của riêng mình trên Ubuntu? Cùng FUNiX tìm hiểu về cài đặt cơ sở dữ liệu MySQL trên máy chủ.

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

sudo systemctl start mysql

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

MySQL là một hệ quản trị cơ sở dữ liệu mã nguồn mở mạnh mẽ, thân thiện với người dùng và có thể mở rộng. Bên cạnh đó, nó là một phần không thể thiếu của mô hình ngăn xếp LAMP/LEMP hoặc các công nghệ ứng dụng web. Hệ quản trị 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 của nó.

>>> Nếu bạn đang có nhu cầu tìm hiểu về khóa học lập trình đi làm ngay. Hãy liên hệ với FUNiX ngay tại đây:

>>> Xem thêm chuỗi bài viết liên quan:

Cách khắc phục sự cố vòng lặp đăng nhập trên Ubuntu

Hướng dẫn từng bước để bắt đầu với máy chủ Ubuntu

9 điều cần làm sau khi cài đặt Ubuntu Linux trong VirtualBox

Cách cài đặt và thiết lập máy chủ ProFTPD với TLS trên Ubuntu

Vân Nguyễn

Dịch từ: https://www.makeuseof.com/install-configure-mysql-ubuntu/

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
Chat với FUNiX GPT ×

yêu cầu gọi lại

error: Content is protected !!