Tương lai của mysql

MySQL là một hệ thống quản trị cơ sở dữ liệu quan hệ [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 đến . Ngôn ngữ truy vấn có cấu trúc [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, chúng sẽ được phục vụ bởi hệ thống cơ sở dữ liệu và SQL

Bài viết này hướng dẫn cách cấu hình MySQL trên máy chủ Ubuntu 18. 04 của bạn. Nó cũng chỉ cho bạn cách kích hoạ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 máy khách mysql để 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 minh xem cài đặt có thành công hay 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 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 phiên bản MySQL 5. 7 mới nhất trong kho lưu trữ. Sử dụng lệnh apt để cập nhật hệ thống gói từ kho lưu trữ như sau

sudo apt update

Bây giờ hãy 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ủa các mối đe dọa đối với an ninh mạng đại diện như 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ư thông tin đă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

Lệnh sẽ đưa ra 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. Ví dụ. lời đầu tiên đưa ra yêu cầu nếu bạn muốn thiết lập một plugin để xác thực mật khẩu, hãy trả lời Có và tiếp tục

Lời nhắc tiếp theo yêu cầu đặt mật khẩu tài khoản người dùng gốc MySQL. Bạn có thể thấy rằng việc bật plugin Xác thực mật khẩu cho phép thiết lập mức độ 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

Nhập số bạn muốn chọn để đặt cường độ của 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

TênMô tảcharacter varying[n], varchar[n]độ dài thay đổi có giới hạn

mysql -V
0],
mysql -V
1]độ dài cố định, đệm trống
mysql -V
2độ dài không giới hạn thay đổi

Bảng 8. 4 hiển thị các loại ký tự đa năng có sẵn trong PostgreSQL

SQL định nghĩa hai loại ký tự chính. character varying[n] và

mysql -V
0], trong đó
mysql -V
5 là số nguyên dương. Cả hai loại này đều có thể lưu trữ các chuỗi có độ dài tối đa 15 ký tự [không phải byte]. Nỗ lực lưu trữ một chuỗi dài hơn vào một cột thuộc các loại này sẽ dẫn đến lỗi, trừ khi các ký tự thừa đều là khoảng trắng, trong trường hợp đó, chuỗi sẽ bị cắt ngắn đến độ dài tối đa. [Ngoại lệ hơi kỳ lạ này được yêu cầu bởi tiêu chuẩn SQL. ] Nếu chuỗi được lưu trữ ngắn hơn độ dài đã khai báo, các giá trị của loại character varying[n0 sẽ được đệm khoảng trắng;

Nếu một người chuyển một giá trị thành character varying[n] hoặc

mysql -V
0 một cách rõ ràng], thì một giá trị quá dài sẽ bị cắt bớt thành
mysql -V
5 ký tự mà không gây ra lỗi. [Điều này cũng được yêu cầu bởi tiêu chuẩn SQL. ]

Các ký hiệu varchar[n] và

mysql -V
1] lần lượt là bí danh của character varying[n] và
mysql -V
0]. Nếu được chỉ định, độ dài phải lớn hơn 0 và không được vượt quá 10485760. character varying[n0 không có chỉ định độ dài tương đương với varchar[n0. Nếu character varying[n1 được sử dụng mà không có chỉ định độ dài, thì loại chấp nhận các chuỗi có kích thước bất kỳ. Cái sau là một phần mở rộng PostgreSQL

Ngoài ra, PostgreSQL cung cấp loại

mysql -V
2, lưu trữ các chuỗi có độ dài bất kỳ. Mặc dù loại
mysql -V
2 không có trong tiêu chuẩn SQL nhưng một số hệ thống quản lý cơ sở dữ liệu SQL khác cũng có loại này.

Các giá trị của loại character varying[n0 được đệm vật lý bằng khoảng trắng theo chiều rộng được chỉ định

mysql -V
5, đồng thời được lưu trữ và hiển thị theo cách đó. Tuy nhiên, dấu cách được coi là không quan trọng về mặt ngữ nghĩa và bị bỏ qua khi so sánh hai giá trị của loại character varying[n0. Trong các đối chiếu có khoảng trắng quan trọng, hành vi này có thể tạo ra kết quả không mong muốn; . Dấu cách bị xóa khi chuyển đổi giá trị character varying[n0 thành một trong các loại chuỗi khác. Lưu ý rằng các khoảng trắng ở cuối có ý nghĩa về mặt ngữ nghĩa trong các giá trị character varying[n1 và
mysql -V
2 và khi sử dụng khớp mẫu, đó là
mysql -V
02 và các biểu thức chính quy

Các ký tự có thể được lưu trữ trong bất kỳ loại dữ liệu nào trong số này được xác định bởi bộ ký tự cơ sở dữ liệu, được chọn khi cơ sở dữ liệu được tạo. Bất kể bộ ký tự cụ thể là gì, không thể lưu trữ ký tự có mã bằng 0 [đôi khi được gọi là NUL]. Để biết thêm thông tin, hãy tham khảo Phần 24. 3

Yêu cầu lưu trữ đối với một chuỗi ngắn [tối đa 126 byte] là 1 byte cộng với chuỗi thực tế, bao gồm phần đệm khoảng trắng trong trường hợp character varying[n0. Các chuỗi dài hơn có 4 byte chi phí thay vì 1. Các chuỗi dài được hệ thống nén tự động, vì vậy yêu cầu vật lý trên đĩa có thể ít hơn. Các giá trị rất dài cũng được lưu trữ trong các bảng nền để chúng không cản trở việc truy cập nhanh vào các giá trị cột ngắn hơn. Trong mọi trường hợp, chuỗi ký tự dài nhất có thể được lưu trữ là khoảng 1 GB. [Giá trị tối đa được phép cho

mysql -V
5 trong khai báo kiểu dữ liệu nhỏ hơn giá trị đó. Sẽ không hữu ích nếu thay đổi điều này vì với mã hóa ký tự nhiều byte, số lượng ký tự và byte có thể khá khác nhau. Nếu bạn muốn lưu trữ các chuỗi dài không có giới hạn trên cụ thể, hãy sử dụng
mysql -V
2 hoặc character varying[n1 mà không cần chỉ định độ dài, thay vì tạo giới hạn độ dài tùy ý. ]

Mẹo

Không có sự khác biệt về hiệu suất giữa ba loại này, ngoài việc tăng dung lượng lưu trữ khi sử dụng loại đệm trống và một vài chu kỳ CPU bổ sung để kiểm tra độ dài khi lưu trữ vào cột bị giới hạn độ dài. Mặc dù

mysql -V
0] có lợi thế về hiệu suất trong một số hệ thống cơ sở dữ liệu khác, nhưng không có lợi thế như vậy trong PostgreSQL; . Trong hầu hết các tình huống, nên sử dụng
mysql -V
2 hoặc character varying[n1 thay thế

Tham khảo Phần 4. 1. 2. 1 để biết thông tin về cú pháp của chuỗi ký tự và đến Chương 9 để biết thông tin về các hàm và toán tử có sẵn

Ví dụ 8. 1. Sử dụng các loại ký tự

CREATE TABLE test1 [a character[4]];
INSERT INTO test1 VALUES ['ok'];
SELECT a, char_length[a] FROM test1; -- [1]

  a   | char_length
------+-------------
 ok   |           2


CREATE TABLE test2 [b varchar[5]];
INSERT INTO test2 VALUES ['ok'];
INSERT INTO test2 VALUES ['good      '];
INSERT INTO test2 VALUES ['too long'];
ERROR:  value too long for type character varying[5]
INSERT INTO test2 VALUES ['too long'::varchar[5]]; -- explicit truncation
SELECT b, char_length[b] FROM test2;

   b   | char_length
-------+-------------
 ok    |           2
 good  |           5
 too l |           5

Có hai loại ký tự có độ dài cố định khác trong PostgreSQL, được hiển thị trong Bảng 8. 5. Chúng không dành cho mục đích sử dụng chung, chỉ để sử dụng trong danh mục hệ thống nội bộ. Loại

mysql -V
11 được sử dụng để lưu trữ số nhận dạng. Độ dài của nó hiện được xác định là 64 byte [63 ký tự có thể sử dụng cộng với dấu kết thúc] nhưng phải được tham chiếu bằng cách sử dụng hằng số
mysql -V
12 trong mã nguồn varchar[n8. Độ dài được đặt tại thời điểm biên dịch [và do đó có thể điều chỉnh cho các mục đích sử dụng đặc biệt]; . Loại
mysql -V
14 [lưu ý các dấu ngoặc kép] khác với
mysql -V
15 ở chỗ nó chỉ sử dụng một byte lưu trữ và do đó chỉ có thể lưu trữ một ký tự ASCII. Nó được sử dụng trong danh mục hệ thống như một kiểu liệt kê đơn giản

Bảng 8. 5. Các loại ký tự đặc biệt

TênKích thước lưu trữMô tả

mysql -V
141 byteloại nội bộ một byte
mysql -V
1164byteloại nội bộ cho tên đối tượng

Chủ Đề