MySQL là một hệ thống quản lý cơ sở dữ liệu quan hệ [RDBMS] 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 loại dữ liệu có thể liên quan đến nhau. Ngôn ngữ truy vấn có cấu trúc [SQL] hoạt động với các RDBMS và khi ai đó muốn lưu trữ hoặc quản lý một lượng lớn dữ liệu, họ sẽ 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 Ubuntu 18 của bạn. 04 máy chủ. Nó cũng chỉ cho bạn cách bật xác thực, tiếp theo 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 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 máy khách để xác minh xem 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 -p -h HOSTNAME_OR_IP
Bước 2. Cài đặt máy chủ MySQL
Trước khi cài đặt MySQL, hãy đảm bảo máy chủ Ubuntu được cài đặt và cấu hình đúng cách. Ubuntu18. 04, theo mặc định, chứa phiên bản MySQL 5 mới nhất. 7 trong kho. Sử dụng lệnh apt để cập nhật các gói hệ thống từ kho lưu trữ như sau
sudo apt update
Bây giờ sử dụng lệnh sau để cài đặt gói máy chủ MySQL
sudo apt install mysql-server -y
Bước 3. Cấu hình MySQL
Trong thời đại các mối đe dọa an ninh mạng dai dẳng hiện nay, việc thay đổi các tùy chọn mặc định sau khi cài đặt máy chủ thành công là một tiêu chuẩn. 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 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 giảm bớt nhiệm vụ này bằng cách tự động thực hiện tất cả các thay đổi với sự trợ giúp của việc chạy một tập lệnh bảo mật đơn giản
sudo mysql_secure_installation
Tập lệnh nhắc nhiều tùy chọn yêu cầu câu trả lời Có hoặc Không để thay đổi bảo mật mặc định của MySQL. Chẳng hạn, lời nhắc đầu tiên yêu cầu bạn có muốn thiết lập plugin để xác thực mật khẩu hay không, hãy trả lời Có và tiếp tục
Dấu nhắc tiếp theo yêu cầu đặt mật khẩu tài khoản người dùng root MySQL. Bạn có thể nhận thấy rằng việc bật plugin Xác thực mật khẩu cho phép đặt độ mạnh của mật khẩu theo ba cấp độ của chính sách bảo mật mật khẩu và độ dài
Nhập số bạn muốn chọn để đặt độ mạnh mật khẩu. Sau đó 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
Bạn có thể nhận thấy rằng sau khi đặt mật khẩu, nó sẽ hiển thị độ mạnh và hỏi bạn có muốn tiếp tục không
Bây giờ nó sẽ hỏi các câu hỏi tiếp theo
- Để xóa người dùng kiểm tra ẩn danh
- Vô hiệu hóa đăng nhập từ xa từ người dùng root
- Xóa cơ sở dữ liệu thử nghiệm
- Tải lại bảng đặc quyền để lưu tất cả các thay đổi
Nhập Y để tiếp tục với cài đặt mặc định để đặt quy tắc bảo mật
Các phiên bản cũ hơn của MySQL [trước 5. 7. 6] yêu cầu bạn tự khởi tạo thư mục cơ sở dữ liệu. Trong khi đối với các phiên bản sau đó, hãy 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 người dùng MySQL, cài đặt xác thực mặc định sẽ 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 là một tính năng tuyệt vời cho khả năng sử dụng, tuy nhiên, sẽ không thực tế nếu bạn muốn truy cập cơ sở dữ liệu của mình từ một máy khách từ xa
Vì truy cập cơ sở dữ liệu mà không có mật khẩu sẽ làm phức tạp quá trình làm việc khi được truy cập bởi một chương trình bên ngoài, phần này tóm tắt hai cách để xác thực người dùng khi thiết lập kết nối
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 qua mật khẩu, bạn có thể thay đổi plugin từ "auth_socket" thành "mysql_native_password. " Với mục đích này, hãy mở màn hình lời nhắc của 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
________số 8Ả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 ứng dụng 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
mysql -V
0Câu lệnh MySQL "FLUSH PRIVILEGES" lưu các thay đổi đối với các 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 minh các chiến lược xác thực được sử dụng bởi mỗi 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
mysql -V
1Bâ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
mysql -V
22. 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
mysql -V
3Tạo một 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 dấu nhắc MySQL. Chạy từng truy vấn SQL sau đây để đạt được điều này
mysql -V
4Quả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 kích hoạt systemctl như sau
mysql -V
5Ngoài ra, bạn có thể kiểm tra hoạt động của máy chủ bằng cách gõ
mysql -V
6Hoặc
mysql -V
7Dịch vụ sẽ 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
mysql -V
8Bắt đầu với MySQL Server trên Ubuntu
MySQL là một hệ thống quản lý cơ sở dữ liệu mã nguồn mở, thân thiện với người dùng, có thể mở rộng và mạnh mẽ. 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ệ 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 của nó
Bài viết này hướng dẫn bạn xây dựng một thiết lập MySQL cơ bản sẽ giúp bạn bắt đầu tìm hiểu cách thức hoạt động của MySQL. 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 của nó để tránh các lỗ hổng trong thiết lập mặc định. Bạn có thể tìm hiểu thêm về cách bảo mật MySQL bằng cách làm theo một số mẹo bảo mật nâng cao