Chúng ta có thể kết nối MySQL với phản ứng gốc không?

Cơ sở dữ liệu SQL, được phát triển vào những năm 1970, là các bảng có hàng và cột cố định. Các cơ sở dữ liệu SQL phổ biến là Oracle, MySQL, Microsoft SQL Server và PostgreSQL

Cơ sở dữ liệu NoSQL, được phát triển vào cuối những năm 2000, là cơ sở dữ liệu không phải dạng bảng, lưu trữ dữ liệu khác với các bảng quan hệ. MongoDB và CouchDB tập trung vào tài liệu, Redis và DynamoDB dành cho các cặp khóa-giá trị, Cassandra và HBase chuyên về cột rộng còn Neo4j và Amazon Neptune được thiết kế cho biểu đồ

SQL có còn phù hợp vào năm 2022 không?

Đúng. Chúng tôi đang xây dựng một dự án end-to-end với React + Express + Node. js + MySQL

MySQL là một hệ thống quản lý cơ sở dữ liệu quan hệ mã nguồn mở (RDBMS). “My” là tên con gái của người đồng sáng lập Michael Widenius và SQL là chữ viết tắt của Structured Query Language. MySQL là RDBMS phổ biến thứ ba trên thế giới, tiếp tục cung cấp năng lượng cho nhiều dự án hiện có và mới

Trong bài viết này, chúng tôi phác thảo chi tiết về cách quản lý MySQL cho Node. ứng dụng js

Cài đặt MySQL cục bộ

Đối với bài viết này, phiên bản cộng đồng (miễn phí) MySQL được tải xuống trên MacOS

Truy cập trang web chính thức, chọn gói tải xuống dựa trên hệ điều hành và phiên bản hệ điều hành

A screenshot to choose the downloading package based on the operating system and OS version

Hình ảnh của tác giả

Sau khi MySQL được tải xuống, hãy mở System Preferences... trên MacOS. Nhấp vào ứng dụng MySQL và nó hiển thị rằng phiên bản đang hoạt động là MySQL 8.0.28

MySQL screenshot from the system preferences, showing MySQL 8.0.28

Hình ảnh của tác giả

Sử dụng MySQL CLI

CLI, mysql, có thể được sử dụng để quản lý cơ sở dữ liệu

Dòng 1 truy cập vào mysql được đặt tại /usr/local/mysql/bin

Trong quá trình cài đặt, chúng tôi đã tạo một người dùng, root, với mật khẩu. Tại dòng 11, chúng ta thay đổi mật khẩu thành 'password', và tại dòng 14, các đặc quyền được làm mới cho mật khẩu mới

Dự án yêu cầu ứng dụng khách JavaScript cho giao thức MySQL. Có hai lựa chọn phổ biến,

npx create-react-app my-app
cd my-app
0 và
npx create-react-app my-app
cd my-app
1. Nếu không có những thay đổi trên, kết nối mysql sẽ hiển thị lỗi sau

ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client

Tuy nhiên, những thay đổi này là không cần thiết đối với

npx create-react-app my-app
cd my-app
3

CLI cũng có thể được sử dụng để vận hành cơ sở dữ liệu

Dòng 1 tạo cơ sở dữ liệu, tên là

npx create-react-app my-app
cd my-app
4

Dòng 4 chọn cơ sở dữ liệu,

npx create-react-app my-app
cd my-app
4

Dòng 7 hiển thị tất cả các bảng trong

npx create-react-app my-app
cd my-app
4, là một tập rỗng (dòng 8)

Dòng 10 tạo một bảng, tên là

npx create-react-app my-app
cd my-app
7. Bảng này có các cột là
npx create-react-app my-app
cd my-app
8,
npx create-react-app my-app
cd my-app
9,
npm i mysql
0 và
npm i mysql
1. Ngoài ra
npx create-react-app my-app
cd my-app
9 là một chuỗi có độ dài thay đổi với độ dài tối đa là 255, các cột khác là số nguyên

Dòng 13 hiển thị tất cả các bảng trong

npx create-react-app my-app
cd my-app
4. Với
npx create-react-app my-app
cd my-app
7 mới được thêm vào, nó có 1 bảng (dòng 14–19)

Dòng 21 chèn một bản ghi mới vào

npx create-react-app my-app
cd my-app
7

Dòng 24 chọn dữ liệu từ

npx create-react-app my-app
cd my-app
7. Bản ghi mới thêm được hiển thị (dòng 25–30)

Tạo môi trường ứng dụng React

Thông thường để tạo một Nút. dự án js để quản lý cơ sở dữ liệu MySQL. Tuy nhiên, chúng tôi chọn Tạo ứng dụng React làm cơ sở vì hai lý do sau

  • React là cần thiết để xây dựng giao diện người dùng, đây là một phần trong dự án của chúng tôi
  • Tạo ứng dụng React bao gồm máy chủ Express cần thiết cho dự án

Lệnh sau tạo dự án React

npx create-react-app my-app
cd my-app

Thiết lập mysql (

npx create-react-app my-app
cd my-app
3 hoạt động tương tự), ứng dụng khách JavaScript cho giao thức MySQL

npm i mysql

Thiết lập

npm i mysql
9, một thư viện dấu nhắc trực quan cho Node. js

mysql

npm i mysql
9 trở thành một phần của System Preferences...2 trong System Preferences...3

Ngoài ra, chúng tôi đặt loại thành System Preferences...4 trong System Preferences...3 để sử dụng mô-đun ES, đây là tiêu chuẩn ECMAScript để hoạt động với các mô-đun

Chúng tôi đã sẵn sàng để quản lý MySQL trong một Nút. ứng dụng js

Quản lý MySQL trong một nút. ứng dụng js

System Preferences...6 được tạo để quản lý MySQL

Dòng 1 nhập mysql cho giao thức MySQL

Nhập dòng 2

npm i mysql
9 cho lời nhắc trực quan

Dòng 4–8 xác định cấu hình người dùng

Dòng 10–12 tạo kết nối MySQL bằng cấu hình người dùng. Dòng 11 cho phép nhiều câu lệnh bị tắt theo mặc định để tránh các cuộc tấn công SQL injection có thể xảy ra

Các dòng 14–23 định nghĩa hàm System Preferences...9, dùng để truy vấn (các) câu lệnh SQL. Nếu có lỗi, nó được đăng nhập trên bàn điều khiển (dòng 17). Nếu không, kết quả truy vấn sẽ được in (dòng 19). Sau truy vấn, ứng dụng đã sẵn sàng cho MySQL 8.0.280 tiếp theo (dòng 21)

Các dòng 25–41 định nghĩa hàm MySQL 8.0.280, hàm này sẽ nhắc MySQL 8.0.282. Nó lấy đầu vào của người dùng làm tham số để gọi hàm System Preferences...9 (dòng 38). Nếu đầu vào là MySQL 8.0.284 (dòng 34), kết nối sẽ kết thúc (dòng 36) và ứng dụng sẽ thoát

Các dòng 43–52 xác định hàm MySQL 8.0.285, kết nối với cơ sở dữ liệu. Nếu có lỗi, nó sẽ được đăng nhập trên bàn điều khiển (dòng 46). Mặt khác, hàm MySQL 8.0.280 được gọi (dòng 49)

Dòng 54 gọi hàm MySQL 8.0.285

Chạy ứng dụng nút trước MySQL 8.0.288. Nó hoạt động tương tự như mysql CLI

Dòng 3 chọn cơ sở dữ liệu,

npx create-react-app my-app
cd my-app
4

Dòng 14 hiển thị tất cả các bảng trong

npx create-react-app my-app
cd my-app
4 , trong đó có bảng
npx create-react-app my-app
cd my-app
7 được tạo bởi CLI

Dòng 16 bỏ bảng

npx create-react-app my-app
cd my-app
7

Dòng 27 hiển thị tất cả các bảng trong

npx create-react-app my-app
cd my-app
4, là một tập rỗng (dòng 28)

Dòng 29 tạo một bảng, tên là

npx create-react-app my-app
cd my-app
7. Bảng này có các cột là
npx create-react-app my-app
cd my-app
8,
npx create-react-app my-app
cd my-app
9,
npm i mysql
0 và
npm i mysql
1. Ngoài ra
npx create-react-app my-app
cd my-app
9 là một chuỗi có độ dài thay đổi với độ dài tối đa là 255, các cột khác là số nguyên

Dòng 40 hiển thị tất cả các bảng trong

npx create-react-app my-app
cd my-app
4. Với
npx create-react-app my-app
cd my-app
7 mới được thêm vào, nó có 1 bảng (dòng 41)

Dòng 42 chèn một bản ghi mới vào

npx create-react-app my-app
cd my-app
7

Dòng 53 chọn dữ liệu từ

npx create-react-app my-app
cd my-app
7. Bản ghi mới được thêm vào được hiển thị (dòng 54)

Dòng 55 thoát khỏi ứng dụng

Xóa MySQL cục bộ

Chúng tôi đã sử dụng MySQL phiên bản cộng đồng để kiểm tra mã của chúng tôi. Trên thực tế, dự án của chúng tôi sử dụng phiên bản MySQL trên đám mây. MySQL cục bộ có thể bị dừng

MySQL screenshot from the system preferences, with Stop MySQL Server button and Uninstall button are highlighted

Hình ảnh của tác giả

Chúng tôi có thể muốn gỡ cài đặt nó

A screenshot to uninstall MySQL 8.0.28

Hình ảnh của tác giả

Sau khi gỡ cài đặt, có một số bước bổ sung để dọn dẹp

  • Chạy mysql5 để kiểm tra bất kỳ quy trình MySQL nào. Nếu có bất kỳ hoạt động nào, hãy dừng lại và chấm dứt chúng
  • Đảm bảo tất cả các thư mục được dọn sạch

Phần kết luận

Chúng tôi đã chỉ ra các bước chi tiết về cách quản lý MySQL cho Node. ứng dụng js. Đây là công việc phía máy chủ trên Node. js + MySQL. Phiên bản cộng đồng MySQL được sử dụng để minh họa công việc, trong đó ứng dụng nút hoạt động tương tự như mysql CLI

Chúng tôi cũng đã thiết lập MySQL trong Remix React Framework trong một bài viết khác

Cảm ơn vì đã đọc. tôi hy vọng nó sẽ có ích. Nếu bạn quan tâm, hãy xem các bài viết khác trên Phương tiện của tôi

Ghi chú. Cảm ơn Jialin Zhu và Xiaojun Zheng đã mời tôi làm việc trong dự án thú vị này với React + Express + Node. js + MySQL

Bạn có thể sử dụng SQL với React Native không?

React Native cũng tương thích với cơ sở dữ liệu phía máy chủ . Danh sách này bao gồm các cơ sở dữ liệu SQL, chẳng hạn như. mysql.

MySQL có tương thích với phản ứng không?

Bạn không thể kết nối chúng trực tiếp . JavaScript chạy trong trình duyệt web không thể nói giao thức MySQL (nó cũng không thể tạo các kết nối mạng thô cần thiết để viết triển khai trong JS). Thay vào đó, hãy tạo một dịch vụ web (bằng ngôn ngữ lập trình bạn chọn, có thể là JavaScript chạy trên Node.

Cơ sở dữ liệu nào tốt cho React Native?

SQLite là cơ sở dữ liệu cục bộ React Native nhỏ gọn và mạnh mẽ. Nó nhanh, nhẹ và dễ sử dụng, khiến nó trở thành một trong những cơ sở dữ liệu tốt nhất cho React Native. Nó phù hợp cho các nhà phát triển cần một giải pháp cơ sở dữ liệu đáng tin cậy có thể dễ dàng nhúng vào ứng dụng của họ.