Để hiểu MySQL, trước tiên bạn cần hiểu cơ sở dữ liệu và SQL. Nếu bạn đã biết cơ sở dữ liệu và SQL, bạn có thể chuyển đến phần MySQL là gì.
MySQL là gì?
MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở viết tắt RDBMS phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng. Hoạt động theo mô hình Client – Server. MySQL quản lý dữ liệu thông qua các cơ sở dữ liệu và mỗi cơ sở dữ liệu có nhiều bảng quan hệ chứa dữ liệu.
MySQL là một hệ quản trị cơ sở dữ liệu cho phép bạn quản lý cơ sở dữ liệu liên quan. Nó là phần mềm mã nguồn mở được hỗ trợ bởi Oracle. Nó có nghĩa là bạn có thể sử dụng MySQL mà không phải trả phí. Ngoài ra, bạn có thể thay đổi mã nguồn của nó để phù hợp với nhu cầu của mình.
Lịch sử phát triển của MySQL
Quá trình phát triển và hình thành của MySQL được tóm tắt lại như sau:
- Năm 1994, MySQL được phát triển bởi MySQL AB.
- Năm 1995, phiên bản mới nhất của MySQL đucợ phát hành.
- Năm 2008, MySQL AB được mua lại bởi công ty Sun Microsystems.
- Năm 2010, Sun Microsystems được mua lại bởi công ty Oracle.
- Đội ngũ phát triển của MySQL tách MySQL ra thành 1 nhánh gọi là MariaDB.
- Phiên bản 5.6 được phát hành năm 2013.
- Phiên bản 5.7 được phát hành năm 2015.
MySQL hiện nay có 2 phiên bản miễn phí gồm MySQL Community Server và phiên bản có phí Enterprise Server.
SQL – Ngôn ngữ của cơ sở dữ liệu quan hệ
Vốn dĩ, SQL là viết tắt của ngôn ngữ truy vấn mang tính cấu trúc. Ngôn ngữ SQL là ngôn ngữ chuẩn hóa được sử dụng để truy cập cơ sở dữ liệu. ANSI / SQL xác định tiêu chuẩn SQL. Phiên bản hiện tại của SQL là SQL: 2016. Bất cứ khi nào đề cập đến tiêu chuẩn SQL, chúng ta đều muốn nói đến phiên bản SQL hiện tại.
SQL chứa ba phần:
- Định nghĩa dữ liệu bao gồm các câu lệnh giúp bạn xác định cơ sở dữ liệu và các đối tượng của nó, ví dụ: table, view, trigger, stored procudures, v.v.
- Thao tác dữ liệu chứa các câu lệnh cho phép bạn cập nhật và truy vấn dữ liệu.
- Điều khiển dữ liệu cho phép bạn cấp quyền cho người dùng truy cập dữ liệu cụ thể trong cơ sở dữ liệu.
Xem thêm: SQL là gì? Các câu lệnh của SQL
MySQL hoạt động như thế nào?
Cách thức hoạt động trong MySQL là mô hình Client – Server. Cùng Vietnix tìm hiểu rõ hơn về mô hình này ngay ở dưới đây.
Hình ảnh giải thích cơ bản của cấu trúc máy khách-máy chủ. Một hoặc nhiều thiết bị (máy khách) kết nối với máy chủ thông qua một mạng cụ thể. Mọi máy khách có thể đưa ra yêu cầu từ giao diện người dùng trên màn hình của họ và máy chủ sẽ tạo ra kết quả mong muốn, miễn là cả hai đầu đều hiểu hướng dẫn. Các quy trình chính diễn ra trong môi trường MySQL đều giống nhau, đó là:
- MySQL tạo cơ sở dữ liệu để lưu trữ và thao tác dữ liệu, xác định mối quan hệ của từng bảng.
- Client có thể đưa ra yêu cầu bằng cách nhập các câu lệnh SQL cụ thể trên MySQL.
- Server application sẽ phản hồi với thông tin được yêu cầu và nó sẽ xuất hiện ở phía máy khách.
Ở phía Client, sẽ để ý đến MySQL GUI (Giao diện đồ họa người dùng) sử dụng. GUI càng nhẹ và thân thiện với người dùng, các hoạt động quản lý dữ liệu của họ sẽ nhanh hơn và dễ dàng hơn. Một số MySQL GUI phổ biến nhất là MySQL WorkBench, SequelPro, DBVisualizer và Công cụ quản trị Navicat DB.
Một số trong số chúng là miễn phí, trong khi một số là thương mại, một số chạy riêng cho macOS và một số tương thích với các hệ điều hành chính. Khách hàng nên chọn GUI tùy thuộc vào nhu cầu của họ. Đối với quản lý cơ sở dữ liệu web, bao gồm cả trang WordPress, cách tốt nhất là phpMyAdmin.
MySQL Client
Đối với MySQL Client không cần cài đặt MySQL. Mọi phần mềm đều có thể truy vấn lên MySQL server và nhận kết quả trả về. MySQL Client điển hình là đoạn mã PHP script trên cùng server dùng để kết nối tới cơ sở dữ liệu MySQL database.
MySQL Server
MySQL Server là máy tính hay là một hệ các máy tính có cài đặt phần mềm MySQL dành cho Server giúp lưu trữ dữ liệu và để Client có thể truy cập và quản lý dữ liệu. Các bảng sẽ chứa dữ liệu và các bảng này có mối liên hệ lẫn nhau. Phần mềm MySQL Server miễn phí, được phát triển bởi công ty Oracle.
Xem thêm: Cách kết nối MySQL với PHP chi tiết
Ưu điểm và nhược điểm của MySQL là gì?
Ưu điểm MySQL
- An toàn: Vì MySQL sở hữu nhiều tính năng bảo mật cấp cao, mã hóa thông tin đăng nhập và chứng thực từ host đều khả dụng.
- Dễ sử dụng: MySQL ổn định và dễ sử dụng trên nhiều hệ điều hành và cung cấp một hệ thống các hàm tiện ích lớn.
- Khả năng mở rộng: Với MySQL có thể xử lý rất nhiều dữ liệu và hơn thế nữa có thể mở rộng khi cần thiết.
- Hiệu năng cao: Hỗ trợ nhiều chức năng SQL được mong chờ từ một hệ quản trị cơ sở dữ liệu quan hệ (RDBMS).
Nhược điểm MySQL
- Giới hạn: Nó vẫn bị hạn chế về một số chức năng cần thiết.
- Dung lượng hạn chế: Nếu só bản khi càng lớn thì việc truy xuất dữ liệu sẽ phức tạp và khó khăn hơn. Bạn cần phải áp dụng nhiều thủ thuật để nâng cấp tốc độ truy xuất dữ liệu lên.
SQL và MySQL có giống nhau không?
Đây là một số điểm khác biệt chính giữa SQL và MySQL
- Trong khi SQL là ngôn ngữ được sử dụng để vận hành các cơ sở dữ liệu quan hệ khác nhau, MySQL lại là cơ sở dữ liệu quan hệ mã nguồn mở đầu tiên vào đầu những năm 90.
- SQL là một ngôn ngữ truy vấn, trong khi MySQL là một cơ sở dữ liệu quan hệ sử dụng SQL để truy vấn một cơ sở dữ liệu.
- Bạn có thể sử dụng SQL để truy cập, cập nhật và thao tác dữ liệu được lưu trữ trong cơ sở dữ liệu. Tuy nhiên, MySQL là một cơ sở dữ liệu lưu trữ hiện có trong cơ sở dữ liệu một cách có tổ chức.
- SQL được sử dụng để viết các truy vấn cho cơ sở dữ liệu, MySQL tạo điều kiện cho việc lưu trữ, sửa đổi và quản lý dữ liệu ở định dạng bảng.
- SQL không hỗ trợ bất kỳ trình kết nối nào. Trong khi đó, MySQL đi kèm với một công cụ tích hợp – MySQL workbench – để thiết kế và xây dựng cơ sở dữ liệu.
- SQL tuân theo một định dạng tiêu chuẩn, trong đó cú pháp và lệnh cơ bản được sử dụng cho DBMS và RDBMS vẫn khá giống nhau, trong khi MySQL nhận được các bản cập nhật thường xuyên.
- SQL hỗ trợ một công cụ lưu trữ duy nhất, nhưng MySQL hỗ trợ nhiều công cụ lưu trữ và cả các công cụ lưu trữ plug-in. Do đó, MySQL linh hoạt hơn.
- Trong SQL, máy chủ vẫn độc lập với cơ sở dữ liệu, có nghĩa là bạn có thể thực hiện các thao tác khác trên cơ sở dữ liệu trong quá trình backup. Mặt khác, trong MySQL, bạn có thể thực hiện backup dữ liệu bằng cách trích xuất các câu lệnh SQL. Tuy nhiên, không giống như SQL, trong MySQL, máy chủ chặn cơ sở dữ liệu trong quá trình backup dữ liệu, giảm thiểu nguy cơ hỏng dữ liệu khi chuyển từ phiên bản MySQL này sang phiên bản MySQL khác.
- Về bảo mật dữ liệu, máy chủ SQL an toàn hơn nhiều so với máy chủ MySQL. Trong SQL, các quy trình bên ngoài (như ứng dụng của bên thứ ba) không thể truy cập hoặc thao tác dữ liệu trực tiếp. Trong MySQL, người ta có thể dễ dàng thao tác hoặc sửa đổi các tệp cơ sở dữ liệu trong thời gian chạy bằng cách sử dụng các tệp nhị phân.
- SQL không phải là một ngôn ngữ mã nguồn mở. Đương nhiên, nếu bạn gặp bất kỳ vấn đề nào, bạn không thể mong đợi sự hỗ trợ của cộng đồng. Thay vào đó, bạn sẽ phải dựa vào sự hỗ trợ của Microsoft SQL Server. Trái ngược với điều này, MySQL là một nền tảng mã nguồn mở, hỗ trợ từ cộng đồng rất mạnh mẽ.
Mục | SQL | MYSQL |
---|---|---|
Khái niệm | SQL là một ngôn ngữ truy vấn có cấu trúc (Structured Query Language). SQL hỗ trợ trong việc quản lý cơ sở dữ liệu quan hệ (RDBMS). | MySQL là một RDBMS để lưu trữ, truy xuất, sửa đổi và quản trị cơ sở dữ liệu bằng cách sử dụng MySQL. |
Kiểu | SQL là một ngôn ngữ truy vấn. | MySQL là phần mềm cơ sở dữ liệu và sử dụng ngôn ngữ SQL để truy vấn cơ sở dữ liệu. |
Kết nối | Đói với SQL nó không có hỗ trợ kết nối. | MySQL cung cấp một công cụ tích hợp được gọi là ‘MySQL workbench’ để thiết kế và phát triển cơ sở dữ liệu. |
Mục đích | Để truy vấn và vận hành hệ thống cơ sở dữ liệu. | Cho phép xử lý dữ liệu, lưu trữ, sửa đổi, xóa định dạng bảng. |
Sử dụng | Mã và lệnh SQL được sử dụng trong các hệ thống DBMS và RDMS khác nhau bao gồm MYSQL. | MySQL được sử dụng làm cơ sở dữ liệu RDBMS. |
Cập nhật | Là ngôn ngữ cố định. | Cập nhật và nâng cấp thường xuyên. |
Một số thuật ngữ thường gặp trong MySQL
- Database (còn gọi là cơ sở dữ liệu): là một tập hợp có tổ chức của thông tin có cấu trúc hoặc dữ liệu, thường được lưu trữ dưới dạng điện tử trong một hệ thống máy tính. Cơ sở dữ liệu thường được kiểm soát bởi hệ quản trị cơ sở dữ liệu (DBMS). Dữ liệu và DBMS, cùng với các ứng dụng liên kết với nhau được gọi là một hệ thống cơ sở dữ liệu, thường được rút gọn thành database.
- Open Source: là một thuật ngữ ban đầu dùng để chỉ phần mềm mã nguồn mở (OSS). Phần mềm mã nguồn mở là mã được thiết kế để có thể truy cập công khai và bất kỳ ai cũng có thể xem, sửa đổi và phân phối mã khi họ thấy phù hợp. MySQL cũng là một phần mềm mã nguồn mở.
- Mô hình Client – Server: là một mô hình nổi tiếng trong mạng máy tính giữa các nhà cung cấp tài nguyên hoặc dịch vụ, được gọi là Server và người yêu cầu dịch vụ được gọi là Client. Trong mô hình Client-Server, khi Client gửi yêu cầu dữ liệu đến Server thông qua internet, Server chấp nhận quy trình được yêu cầu và gửi các gói dữ liệu được yêu cầu trở lại Client. Client không chia sẻ bất kỳ tài nguyên nào của họ. Ví dụ về Mô hình Client-Server là Email, World Wide Web, v.v.
>> Xem thêm: Những kiểu dữ liệu trong MySQL (Data Types) mà bạn cần biết
Hướng dẫn cài đặt MySQL
Cài đặt MySQL trên Windows
Tải MySQL Installer
Nếu bạn muốn cài đặt MySQL trên môi trường Windows, sử dụng trình MySQL Installer là cách dễ dàng nhất. MySQL Installer cung cấp cho bạn một trình hướng dẫn dễ sử dụng giúp bạn cài đặt MySQL với các thành phần sau:
- MySQL Server
- Tất cả các kết nối có sẵn
- MySQL Workbench với các mô hình dữ liệu mẫu
- MySQL Notifier
- Công cụ cho Excel và Microsoft Visual Studio
- Cơ sở dữ liệu mẫu MySQL
- Tài liệu MySQL
Để tải xuống MySQL Installer, hãy truy cập liên kết sau https://dev.mysql.com/downloads/installer/. Có hai tệp trình cài đặt:
- Nếu bạn đang kết nối internet trong khi cài đặt MySQL, bạn có thể chọn phiên bản cài đặt trực tuyến mysql-installer-web-community- .exe.
- Trong trường hợp bạn muốn cài đặt MySQL offline, bạn có thể tải xuống tệp mysql-installer-community- .exe.
Cài đặt MySQL thông qua MySQL Installer
Để cài đặt MySQL bằng MySQL Installer, hãy nhấp đúp vào tệp MySQL Installer và làm theo các bước bên dưới:
- Cài đặt MySQL Bước 1: Cấu hình Windows MySQL Installer
- Cài đặt MySQL Bước 2 – Màn hình chào mừng cung cấp một số tùy chọn. Chọn tùy chọn đầu tiên: Install MySQL Producs
- Cài đặt MySQL Bước 3 – Tải xuống MySQL Producs mới nhất: MySQL Installer kiểm tra và tải xuống MySQL Producs mới nhất bao gồm MySQL Server, MySQL Workbench, v.v.
- Cài đặt MySQL Bước 4: Nhấp vào nút Next để tiếp tục
- Cài đặt MySQL Bước 5 – Choosing a Setup Type: có một số kiểu thiết lập. Chọn tùy chọn Full để cài đặt tất cả các sản phẩm và tính năng MySQL.
- Cài đặt MySQL Bước 6 – Check Requirements
- Cài đặt MySQL Bước 7 – Installation Progress: MySQL Installer tải xuống tất cả các sản phẩm đã chọn. Sẽ mất một lúc, tùy thuộc vào sản phẩm bạn đã chọn và tốc độ kết nối internet của bạn
- Cài đặt MySQL Bước 7 – Installation Progress: đang tải Sản phẩm xuống.
- Cài đặt MySQL Bước 7 – Installation Progress: Hoàn tất quá trình tải xuống. Nhấp vào nút Next để tiếp tục…
- Cài đặt MySQL Bước 8 – Configuration OverView. Nhấp vào nút Next để xác định cấu hình Máy chủ cơ sở dữ liệu MySQL
Cài đặt MySQL Bước 8.1 – MySQL Server Configuration: chọn Loại cấu hình và cổng MySQL (3306 theo mặc định) và nhấp vào nút Next để tiếp tục.
- Cài đặt MySQL Bước 8.1 – MySQL Server Configuration: chọn mật khẩu cho tài khoản gốc.
- Cài đặt MySQL Bước 8.1 – MySQL Server Configuration: chọn chi tiết Windows Service bao gồm Tên Windows Service và loại tài khoản, sau đó nhấp vào nút Next để tiếp tục.
- Cài đặt MySQL Bước 8.1 – MySQL Server Configuration – Đang tiến hành: Trình cài đặt MySQL đang cấu hình máy chủ cơ sở dữ liệu MySQL. Chờ cho đến khi nó được thực hiện xong và nhấp vào nút Next để tiếp tục.
- Cài đặt MySQL Bước 8.1 – MySQL Server Configuration – Xong. Nhấp vào nút Next để tiếp tục.
- Cài đặt MySQL Bước 8.2 – Configuration Overview: MySQL Installer cài đặt cơ sở dữ liệu mẫu và mô hình mẫu.
- Cài đặt MySQL Bước 9 – Installation Completes: quá trình cài đặt hoàn tất. Nhấp vào nút Finish để đóng trình hướng dẫn cài đặt và khởi chạy MySQL Workbench.
Cài đặt MySQL trên CentOS
Bước 1: Thiết lập Yum reponsitory
Thực thi lệnh sau để bật MySQL yum repository trên CentOS:
yum update
Bước 2: Cài đặt MySQL 8 Community Server
Vì MySQL yum repository có nhiều cấu hình cho nhiều phiên bản MySQL, bạn cần phải tắt tất cả các reponsitory trong mysql repo file:
sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/mysql-community.repo
Và thực hiện lệnh sau để cài đặt MySQL 8:
sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/mysql-community.repo
Bước 3: Khởi động MySQL Service
Sử dụng lệnh này để bắt đầu dịch vụ mysql:
service mysqld start
Bước 4: Hiển thị mật khẩu mặc định cho người dùng root
Khi bạn cài đặt MySQL 8.0, tài khoản người dùng gốc được cấp một mật khẩu tạm thời. Để hiển thị mật khẩu của tài khoản người dùng gốc, bạn sử dụng lệnh sau:
grep "A temporary password" /var/log/mysqld.log
Đây là kết quả:
[Note] A temporary password is generated for root@localhost: hjkygMukj5+t783
* Lưu ý rằng mật khẩu tạm thời của bạn sẽ khác. Bạn sẽ cần mật khẩu này để thay đổi mật khẩu của tài khoản người dùng root.
Bước 5: Cài đặt bảo mật MySQL
Thực thi lệnh mysql_secure_installation để bảo mật máy chủ MySQL:
mysql_secure_installation
Nó sẽ nhắc bạn nhập mật khẩu hiện tại của tài khoản gốc:
Enter password for user root:
Nhập mật khẩu tạm thời ở trên và nhấn Enter. Thông báo sau sẽ hiển thị:
The existing password for the user account root has expired. Please set a new password.
New password:
Re-enter new password:
Bạn sẽ cần nhập mật khẩu mới cho tài khoản root hai lần. Nó sẽ nhắc nhở một số câu hỏi, bạn nên nhập yes (y):
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Bước 6: Khởi động lại và kích hoạt MySQL Service
Sử dụng lệnh sau để khởi động lại mysql service:
service mysqld restart
và tự động khởi động mysql service khi khởi động hệ thống:
chkconfig mysqld on
Bước 7: Kết nối với MySQL
Sử dụng lệnh này để kết nối với máy chủ MySQL:
mysql -u root -p
Nó sẽ nhắc bạn nhập mật khẩu của người dùng root. Bạn gõ mật khẩu và nhấn Enter:
Nhập mật khẩu:
Nó sẽ hiển thị lệnh mysql
mysql>
Sử dụng SHOW DATABASES để hiển thị tất cả cơ sở dữ liệu trong máy chủ hiện tại:
mysql> show databases;
Đây là kết quả:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.05 sec)
Lời kết
Nếu bạn phát triển trang web hoặc ứng dụng web, thì việc tìm hiểu MySQL là gì là một việc cần thiết. Bởi MySQL là một lựa chọn tốt. MySQL là một thành phần thiết yếu của LAMP stack, bao gồm Linux, Apache, MySQL và PHP. Hy vọng bài viết này sẽ giúp bạn có thêm nhiều kiến thức bổ ích trong quá trình phát triển trong học tập cũng như trong việc.