MySQL cơ bản trên Ubuntu (Phần I)

1703
23-07-2024
MySQL cơ bản trên Ubuntu (Phần I)

Trong bài viết này, Bizfly Cloud sẽ giới thiệu cho bạn một số câu lệnh MySQL cơ bản nhất trên môi trường Ubuntu.

 Yêu cầu trước khi cài đặt MySQL trên Ubuntu

Để sử dụng MySQL trên Ubuntu, việc đầu tiên bạn cần làm là cài đặt MySQL trên Ubuntu. Tuy nhiên trước khi cài đặt MySQL trên Ubuntu, bạn cần có server Ubuntu, user non-root có quyền quản trị và firewall cấu hình bằng UFW.

Các bước cài đặt MySQL trên Ubuntu

1. Cài đặt MySQL Client

Thực hiện cài đặt mysql-client để kết nối với máy chủ từ xa:

sudo apt install mysql-client -y

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

mysql -V

Đầu ra:

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

Sau đó 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. Cài đặt MySQL Server

Theo mặc định, phiên bản MySQL mới nhất trong kho lưu trữ Ubuntu là 8.0.19. Việc đầu tiên cần làm là cập nhật phiên bản MySQL mới nhất. 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

Rồi sử dụng lệnh sau để cài đặt gói máy chủ my SQL:

sudo apt install mysql-server -y

Kiểm tra MySQL đã tự động khởi động thành công chưa bằng câu lệnh sau:

sudo systemctl status mysql

3. Cấu hình MySQL

Bước tiếp theo sau khi cài đặt MySQL là thiết lập cấu hình MySQL để tăng cường tính bảo mật. Đối với các bản cài đặt mới, việc chạy script bảo mật đi kèm là vô cùng quan trọng. Điều này giúp thay đổi các tùy chọn mặc định kém an toàn như thông tin đăng nhập root từ xa và người dùng mẫu.

Để chạy script bảo mật, bạn cần sử dụng lệnh sau với quyền sudo:

sudo mysql_secure_installation

Khi chạy lệnh này, bạn sẽ được yêu cầu trả lời một loạt các câu hỏi để tinh chỉnh các tùy chọn bảo mật cho cài đặt MySQL của mình. Đầu tiên, bạn sẽ được hỏi liệu có muốn thiết lập Validate Password Plugin không. Plugin này giúp kiểm tra độ mạnh của mật khẩu của người dùng MySQL mới trước khi chúng được chấp nhận.

Nếu bạn quyết định thiết lập Validate Password Plugin, tất cả người dùng MySQL mà bạn tạo sẽ phải tồn tại mật khẩu đáp ứng các yêu cầu bạn chọn. Policy mạnh nhất (chọn bằng cách nhập 2) yêu cầu mật khẩu phải dài ít nhất 8 ký tự và chứa cả chữ hoa, chữ thường, số và ký tự đặc biệt.

Securing the MySQL server deployment. Connecting to MySQL using a blank password. VALIDATE PASSWORD COMPONENT can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD component? Press y|Y for Yes, any other key for No: Y There are three levels of password validation policy: LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary file Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2

Bạn có thể lựa chọn sử dụng Validate Password Plugin để đảm bảo mật khẩu của bạn đủ mạnh hoặc có thể thực hiện quy trình thủ công.

Please set the password for root here. New password: Re-enter new password:

Khi được yêu cầu, bạn cần nhập và xác nhận mật khẩu mới cho người dùng root của MySQL. Lưu ý rằng sau khi đặt mật khẩu, bạn cần cấu hình để MySQL yêu cầu mật khẩu khi kết nối với shell.

Nếu bạn đã sử dụng Validate Password Plugin, bạn sẽ nhận được thông báo về độ mạnh của mật khẩu mới của mình. Nếu bạn hài lòng, hãy tiếp tục bằng cách nhập "Y".

Estimated strength of the password: 100 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y

Sau khi hoàn tất quy trình đặt mật khẩu, MySQL sẽ được cấu hình một cách an toàn. Bây giờ, bạn có thể tiếp tục tạo người dùng cơ sở dữ liệu khác để quản lý database của mình.

4. Tạo, xác thực và gán quyền cho user

Cách tạo user:

Sau khi cài đặt MySQL trên Ubuntu, bạn sẽ được tạo một root user để quản lý cơ sở dữ liệu. Tài khoản này có toàn quyền trên server MySQL, cho phép quản lý mọi database, bảng, user,... Tuy nhiên, để đảm bảo an toàn, nếu không cần thiết, bạn nên tránh sử dụng tài khoản này.

Từ phiên bản MySQL 5.7 trở lên root user được xác thực bằng plugin auth_socket thay vì mật khẩu. Điều này yêu cầu tên user của hệ điều hành phải trùng khớp với tên user MySQL để có thể truy cập vào root user MySQL. Để làm điều này, bạn cần sử dụng lệnh mysql với quyền sudo.

sudo mysql

Sau khi truy cập vào prompt MySQL, tạo một user mới bằng lệnh CREATE USER:

CREATE USER 'username'@'host' IDENTIFIED WITH authentication_plugin BY 'password';

Trong đó “username” là tên người dùng tương ứng, sau đó là dấu @ và tên của host mà user kết nối. Nếu chỉ có nhu cầu cục bộ từ server Ubuntu thì ta có thể chỉ định localhost.

Cách xác thực user: 

Xác thực người dùng bằng lệnh caching_sha2_password, thay username và password cần tạo tương ứng:

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

Lưu ý: Một số phiên bản PHP sẽ gặp lỗi với plugin caching_sha2_password. Nếu muốn sử dụng database với một ứng dụng PHP thì cần tạo một user xác thực bằng 

mysql_native_password trước: CREATE USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

Sau đó chuyển phương thức xác thực thành caching_sha2_plugin:

ALTER USER 'username' IDENTIFIED WITH mysql_native_password BY 'password';

  • Cách gán quyền cho user:

Sau khi tạo xong người dùng, bạn có thể bắt đầu gán các đặc quyền phù hợp theo cú pháp chung là:

GRANT PRIVILEGE ON database.table TO 'username'@'host';

Cú pháp chung để gán đặc quyền cho người dùng là sử dụng lệnh GRANT như sau:

GRANT PRIVILEGE ON database.table TO 'username'@'host';

Trong đó, PRIVILEGE đại diện cho các hành động mà người dùng được phép thực hiện trên cơ sở dữ liệu và bảng được chỉ định. Bạn cũng có thể gán nhiều đặc quyền khác nhau trong cùng một lệnh bằng cách phân tách chúng bằng dấu phẩy. Để gán quyền trên toàn cục, bạn có thể sử dụng ký tự * (tất cả) ở vị trí tên của cơ sở dữ liệu và bảng.

Để gán các quyền cơ bản cho người dùng trên toàn bộ cơ sở dữ liệu, bạn có thể chạy lệnh sau:

GRANT CREATE, ALTER, DROP, INSERT, UPDATE, INDEX, DELETE, SELECT, REFERENCES, RELOAD on . TO 'username'@'localhost' WITH GRANT OPTION;

Lưu ý rằng lệnh này cũng có option WITH GRANT OPTION để cho phép người dùng MySQL gán mọi quyền mà họ có cho các người dùng khác trên hệ thống

5. Kiểm tra trạng thái MySQL sau khi cài đặt

Sau khi cài đặt MySQL Ubuntu và cấu hình quyền user, MySQL sẽ tự động khởi chạy. Người dùng có thể kiểm tra nhanh trạng thái bằng lệnh sau:

systemctl status mysql.service

Sau khi chạy lệnh này, output hiện ra như sau:

Output ● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2020-04-21 12:56:48 UTC; 6min ago Main PID: 10382 (mysqld) Status: "Server is operational" Tasks: 39 (limit: 1137) Memory: 370.0M CGroup: /system.slice/mysql.service └─10382 /usr/sbin/mysqld

Nếu MySQL chưa chạy thì khởi động thủ công bằng lệnh sudo systemctl start mysql.

Ngoài ra bạn cũng có thể thử kết nối đến database bằng công cụ mysqladmin – một client cho phép chạy các lệnh quản trị. Giả sử bạn cần kết nối đến một user MySQL có tên bizflycloud (-u bizflycloud), yêu cầu nhập mật khẩu (-p) và trả về phiên bản:

sudo mysqladmin -p -u bizflycloud version

Bạn có thể nhận được output tương tự như sau:

Output mysqladmin Ver 8.0.19-0ubuntu5 for Linux on x86_64 ((Ubuntu)) Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Server version 8.0.19-0ubuntu5 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/run/mysqld/mysqld.sock Uptime: 10 min 44 sec Threads: 2 Questions: 25 Slow queries: 0 Opens: 149 Flush tables: 3 Open tables: 69 Queries per second avg: 0.038

Những thao tác cơ bản nhất với MySQL

Mở terminal và bắt đầu thao tác như sau:

Khởi động MySQL sau khi cài đặt:

mysql -u root -p 

Câu lệnh trên bạn yêu cầu truy cập user root. Sau khi nhập mật khẩu bạn có thể truy cập sử dụng mysql với quyền của user root.

Để xem danh sách các database bạn dùng câu lệnh.

show databases; 

MySQL sẽ hiện ra bảng danh sách các databases. Ở bảng này bạn có thể thấy database MySQL. Đây là database rất quan trọng chứa các thông tin của mysql như user, password,...

Chúng ta có thể tạo một database mới như sau:

CREATE DATABASE IF NOT EXISTS database_name; 

Câu lệnh trên sẽ tạo ra database với tên là 'database_name'. Nếu chưa có database nào có tên như vậy.

Muốn xóa database ta có thể dùng câu lệnh sau:

DROP DATABASE IF EXISTS database_name; 

Câu lệnh trên sẽ xóa database có tên là 'database_name' nếu có database tên như vậy

Muốn thao tác với một database, ta dùng lệnh:

Xem các bảng có trong database:

use database_name;

show tables; 
Xem toàn bộ dữ liệu của 1 bảng:
SELECT * FROM database_name; 

hoặc
SELECT * FROM database_name \G 

2 câu lệnh trên sẽ hiển thị dữ liệu theo 2 kiểu khác nhau.


Trên đây là một vài thao tác cơ bản với MySQL trên Ubuntu. Cảm ơn các bạn đã đọc và rất mong nhận được sự góp ý của mọi người.

Theo Viblo.asia


TAGS: mysqlsql
SHARE