MySQL là một hệ thống cơ sở dữ liệu miễn phí, mã nguồn mở và là một trong những hệ thống cơ sở dữ liệu phổ biến nhất trên toàn cầu. Đây là một nền tảng quản lý cơ sở dữ liệu quan hệ được hỗ trợ bởi Oracle Cloud. Nó sử dụng Ngôn ngữ truy vấn có cấu trúc để thêm, truy cập và quản lý nội dung trong cơ sở dữ liệu. Nó được biết đến với độ tin cậy đã được chứng minh, xử lý nhanh, dễ sử dụng và linh hoạt. Có một số tính năng mới đã được thêm vào MySQL 8 bao gồm hỗ trợ JSON, Transactional Data Dictionary, cấu hình thời gian chạy liên tục, Document Store, Optimizer Hints, SQL roles, CTEs và Window functions, Invisible indexes và nhiều tính năng khác.
Lưu ý: Trước khi cài đặt MySQL 8, hãy tham khảotài liệu chính thức vì MySQL 8 có một số tính năng và thay đổi mới khiến một số ứng dụng không tương thích với phiên bản này.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt cơ sở dữ liệu MySQL 8 trên CentOS 8 server.
Bạn sẽ thấy kết quả sau:
Tiếp theo, hãy xác minh xem kho lưu trữ MySQL 8.0 đã được bật hay chưa bằng lệnh sau:
Bạn sẽ thấy kết quả sau:
Tiếp theo, tạm thời vô hiệu hóa kho lưu trữ AppStream và cài đặt phiên bản MySQL 8.0 mới nhất từ kho lưu trữ cộng đồng MySQL bằng lệnh sau:
Sau khi quá trình cài đặt hoàn tất thành công, bạn có thể xác minh phiên bản MySQL đã cài đặt bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Tiếp theo, khởi động dịch vụ MySQL và cho phép dịch vụ này khởi động sau khi khởi động lại hệ thống bằng lệnh sau lệnh:
Bạn cũng có thể kiểm tra trạng thái của MySQL bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Tiếp theo, bạn nên chạy tập lệnh mysql_secure_installation để bật một số tính năng bảo mật bổ sung bao gồm, đặt Mật khẩu root MySQL, xóa người dùng ẩn danh và vô hiệu hóa đăng nhập từ xa.
Đầu tiên, tìm mật khẩu root mặc định của MySQL bằng lệnh sau:
Đầu ra:
Vui lòng lưu ý mật khẩu ở trên và thay đổi nó bằng tập lệnh mysql_secure_installation.
Trả lời tất cả các câu hỏi như hiển thị bên dưới:
Sau khi cài đặt hoàn tất, hãy kiểm tra phiên bản MySQL bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Tiếp theo, hãy khởi động dịch vụ MySQL và cho phép dịch vụ này khởi động sau khi khởi động lại hệ thống bằng lệnh sau:
Theo mặc định, mật khẩu gốc của MySQL không được đặt trong CentoS 8. Vì vậy bạn sẽ cần thiết lập nó bằng cách sử dụng tập lệnh mysql_secure_installation.
Trả lời tất cả các câu hỏi như được hiển thị bên dưới:
Lưu ý: Trước khi cài đặt MySQL 8, hãy tham khảotài liệu chính thức vì MySQL 8 có một số tính năng và thay đổi mới khiến một số ứng dụng không tương thích với phiên bản này.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt cơ sở dữ liệu MySQL 8 trên CentOS 8 server.
Điều kiện tiên quyết
- Máy chủ chạy CentOS 8.
- Mật khẩu root được thiết lập trên máy chủ của bạn.
Cài đặt MySQL 8.0 từ MySQL Repository
Theo mặc định, MySQL 8.0 không có trong kho lưu trữ mặc định của CentOS 8. Vì vậy, bạn sẽ cần cài đặt kho lưu trữ cộng đồng MySQL 8.0 vào hệ thống của mình. Bạn có thể cài đặt bằng lệnh sau:
Mã:
rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm
Mã:
Đang truy xuất https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpmcảnh báo: /var/tmp/rpm-tmp.hF0m5V: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEYĐang xác minh... ################################# [100%]Đang chuẩn bị... #################################### [100%]Đang cập nhật/cài đặt... 1:mysql80-community-release-el8-1 ################################# [100%]
Mã:
dnf repolist all | grep mysql | grep enabled
Mã:
CentOS-8 - AppStream 3,1 MB/giây | 6,5 MB 00:02CentOS-8 - Base 3,0 MB/giây | 5,0 MB 00:01CentOS-8 - Extras 5,3 kB/giây | 2,1 kB 00:00MySQL 8.0 Community Server 24 MB/giây | 543 kB 00:00Cộng đồng MySQL Connectors 1,9 MB/giây | 19 kB 00:00Cộng đồng MySQL Tools 677 kB/giây | 62 kB 00:00mysql-connectors-community MySQL Connectors Community enabled: 42mysql-tools-community MySQL Tools Community enabled: 19mysql80-community MySQL 8.0 Community Server enabled: 31
Mã:
dnf --disablerepo=AppStream install mysql-community-server -y
Mã:
mysql -Version
Mã:
mysql Ver 8.0.19 cho Linux trên x86_64 (MySQL Community Server - GPL)
Mã:
systemctl start mysqld
systemctl enable mysqld
Mã:
systemctl status mysqld
Mã:
? mysqld.service - MySQL Server Loaded: đã tải (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2020-03-05 09:37:46 EST; 12 giây trước Tài liệu: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Tiến trình: 3244 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS) PID chính: 3329 (mysqld) Trạng thái: "Máy chủ đang hoạt động" Nhiệm vụ: 39 (giới hạn: 12537) Bộ nhớ: 587,7M CGroup: /system.slice/mysqld.service ??3329 /usr/sbin/mysqld05-03 09:37:01 centos8 systemd[1]: Đang khởi động Máy chủ MySQL...05-03 09:37:46 centos8 systemd[1]: Đã khởi động Máy chủ MySQL.
Đầu tiên, tìm mật khẩu root mặc định của MySQL bằng lệnh sau:
Mã:
cat /var/log/mysqld.log | grep -i 'temporary password'
Mã:
2020-03-05T14:37:40.273796Z 5 [Lưu ý] [MY-010454] [Máy chủ] Một mật khẩu tạm thời được tạo cho root@localhost: GN2uNx-vPqwS
Mã:
mysql_secure_installation
Mã:
Bảo mật triển khai máy chủ MySQL.Nhập mật khẩu cho người dùng root: Cung cấp mật khẩu root MySQL tạm thời của bạnMật khẩu hiện tại cho tài khoản người dùng root đã hết hạn. Vui lòng đặt mật khẩu mới.Mật khẩu mới: Cung cấp mật khẩu root mớiNhập lại mật khẩu mới: Nhập lại mật khẩu root mớiThành phần 'validate_password' được cài đặt trên máy chủ.Các bước tiếp theo sẽ chạy với cấu hình hiện tạicủa thành phần.Sử dụng mật khẩu hiện tại cho root.Độ mạnh ước tính của mật khẩu: 100Đổi mật khẩu cho root ? ((Nhấn y|Y để Có, bất kỳ phím nào khác để Không): N Nhập N và Enter để tiếp tục ... bỏ qua.Theo mặc định, cài đặt MySQL có một người dùng ẩn danh,cho phép bất kỳ ai đăng nhập vào MySQL mà không cần phải tạomột tài khoản người dùng cho họ. Điều này chỉ dành cho mục đíchthử nghiệm và để quá trình cài đặt diễn ra suôn sẻ hơn một chút.Bạn nên xóa những người dùng này trước khi chuyển sang môi trường sản xuất.Xóa người dùng ẩn danh? (Nhấn y|Y để Có, bất kỳ phím nào khác để Không): YThành công.Thông thường, root chỉ được phép kết nối từ'localhost'. Điều này đảm bảo rằng không ai có thể đoán đượcmật khẩu root từ mạng.Không cho phép root đăng nhập từ xa? (Nhấn y|Y để Có, bất kỳ phím nào khác để Không): YThành công.Theo mặc định, MySQL đi kèm với một cơ sở dữ liệu có tên là 'test' màbất kỳ ai cũng có thể truy cập. Điều này cũng chỉ dành cho mục đích thử nghiệm,và nên xóa trước khi chuyển sang môi trường sản xuất.Xóa cơ sở dữ liệu thử nghiệm và quyền truy cập vào cơ sở dữ liệu đó? (Nhấn y|Y cho Có, bất kỳ phím nào khác cho Không): Y - Đang xóa cơ sở dữ liệu thử nghiệm...Thành công. - Xóa các đặc quyền trên cơ sở dữ liệu thử nghiệm...Thành công.Tải lại các bảng đặc quyền sẽ đảm bảo rằng tất cả các thay đổiđã thực hiện cho đến nay sẽ có hiệu lực ngay lập tức.Tải lại các bảng đặc quyền ngay bây giờ? (Nhấn y|Y cho Có, bất kỳ phím nào khác cho Không): YThành công.Hoàn tất!
Cài đặt MySQL 8.0 từ AppStream Repository
Bạn cũng có thể cài đặt MySQL 8.0 từ AppStream Repository mặc định trên CentOS 8. Bạn có thể cài đặt bằng lệnh sau:
Mã:
dnf install @mysql -y
Mã:
mysql -Version
Mã:
mysql Ver 8.0.17 cho Linux trên x86_64 (Phân phối nguồn)
Mã:
systemctl start mysqld
systemctl enable mysqld
Mã:
mysql_secure_installation
Mã:
Bảo mật triển khai máy chủ MySQL.Kết nối với MySQL bằng mật khẩu trống.VALIDATE PASSWORD COMPONENT có thể được sử dụng để kiểm tra mật khẩuvà cải thiện bảo mật. Nó kiểm tra độ mạnh của mật khẩuvà cho phép người dùng chỉ đặt những mật khẩuđủ bảo mật. Bạn có muốn thiết lập thành phần VALIDATE PASSWORD không?Nhấn y|Y để Có, bất kỳ phím nào khác để Không: YCó ba cấp độ chính sách xác thực mật khẩu:THẤP Chiều dài >= 8TRUNG BÌNH Chiều dài >= 8, số, chữ hoa và chữ thường và ký tự đặc biệtMẠNH Chiều dài >= 8, số, chữ hoa và chữ thường, ký tự đặc biệt và tệp từ điểnVui lòng nhập 0 = THẤP, 1 = TRUNG BÌNH và 2 = MẠNH: 0Vui lòng đặt mật khẩu cho root tại đây.Mật khẩu mới:Nhập lại mật khẩu mới:Ước tính độ mạnh của mật khẩu: 100Bạn có muốn tiếp tục với mật khẩu đã cung cấp không? (Nhấn y|Y để Có, bất kỳ phím nào khác để Không): YTheo mặc định, cài đặt MySQL có một người dùng ẩn danh,cho phép bất kỳ ai đăng nhập vào MySQL mà không cần phải tạomột tài khoản người dùng cho họ. Điều này chỉ dành cho mục đíchthử nghiệm và để quá trình cài đặt diễn ra suôn sẻ hơn một chút.Bạn nên xóa những người dùng này trước khi chuyển sangmôi trường sản xuất.Xóa người dùng ẩn danh? (Nhấn y|Y để Có, bất kỳ phím nào khác để Không): YThành công.Thông thường, root chỉ được phép kết nối từ'localhost'. Điều này đảm bảo rằng không ai có thể đoán đượcmật khẩu root từ mạng.Không cho phép root đăng nhập từ xa? (Nhấn y|Y để Có, bất kỳ phím nào khác để Không): YThành công.Theo mặc định, MySQL đi kèm với một cơ sở dữ liệu có tên là 'test' màbất kỳ ai cũng có thể truy cập. Điều này cũng chỉ dành cho mục đích thử nghiệm,và nên xóa trước khi chuyển sang môi trường sản xuất.Xóa cơ sở dữ liệu thử nghiệm và truy cập vào cơ sở dữ liệu đó? (Nhấn y|Y để Có, bất kỳ phím nào khác để Không): Y - Xóa cơ sở dữ liệu thử nghiệm...Thành công. - Xóa quyền trên cơ sở dữ liệu thử nghiệm...Thành công.Tải lại các bảng quyền sẽ đảm bảo rằng tất cả các thay đổiđã thực hiện cho đến nay sẽ có hiệu lực ngay lập tức.Tải lại các bảng quyền ngay bây giờ? (Nhấn y|Y để Có, bất kỳ phím nào khác để Không): YThành công.Xong!