Cách kết nối với dịch vụ database trên Ubuntu 18.04
Dịch vụdatabase có một số lợi ích so với database tự quản lý, bao gồm cập nhật tự động, mở rộng quy mô đơn giản và tính sẵn sàng cao. Tuy nhiên, nếu bạn mới làm việc với database được quản lý, thì cách tốt nhất để thực hiện các việc nhất định - như kết nối với database - có thể không rõ ràng.Trong hướng dẫn này, ta sẽ xem xét cách cài đặt các client cho nhiều hệ thống quản lý database (DBMS), bao gồm PostgreSQL , MySQL và Redis , trên server Ubuntu 18.04. Ta cũng sẽ giải thích cách sử dụng các chương trình này để kết nối với version database được quản lý.
Lưu ý: Các hướng dẫn được nêu trong hướng dẫn này đã được thử nghiệm với Dịch vụdatabase DigitalOcean , nhưng chúng thường hoạt động đối với database  được quản lý từ bất kỳ nhà cung cấp  cloud  nào. Tuy nhiên, nếu bạn gặp sự cố khi kết nối với database  được cung cấp từ nhà cung cấp khác, bạn nên tham khảo tài liệu của họ để được trợ giúp.
Yêu cầu
Để làm theo các hướng dẫn chi tiết trong hướng dẫn này, bạn cần :
- Truy cập vào  server  chạy Ubuntu 18.04.  Server  này phải có  user  không phải root có  quyền  quản trị và firewall  được  cấu hình  bằng ufw. Để cài đặt điều này, hãy làm theo Hướng dẫn Cài đặt Server Ban đầu cho Ubuntu 18.04 của ta .
- Một version database được quản lý. Hướng dẫn này cung cấp hướng dẫn về cách kết nối với nhiều hệ thống quản lý database , đặc biệt là PostgreSQL, MySQL và Redis. Để cung cấp Dịch vụdatabase DigitalOcean, hãy xem lại tài liệu của ta về DBMS mà bạn chọn:
Khi bạn đã có những thứ này tại chỗ, hãy chuyển đến bất kỳ phần nào phù hợp với DBMS của bạn.
Kết nối với Database PostgreSQL được quản lý
Để kết nối với database  PostgreSQL được quản lý, bạn có thể sử dụng psql ,  ứng dụng client  dòng lệnh tiêu chuẩn cho Postgres. Nó là open-souce , được duy trì bởi  Group  phát triển PostgreSQL và thường được bao gồm khi bạn  download   server  PostgreSQL. Tuy nhiên, bạn có thể tự cài đặt psql bằng cách cài đặt gói postgresql-client với APT.
Nếu gần đây bạn chưa làm như vậy, hãy cập nhật index gói của server của bạn:
- sudo apt update
Sau đó chạy lệnh sau để cài đặt psql :
- sudo apt install postgresql-client
APT sẽ yêu cầu bạn  xác nhận  bạn muốn cài đặt gói. Làm như vậy bằng cách nhấn ENTER .
Sau đó, bạn có thể kết nối với database  Postgres được quản lý  của bạn  mà không cần cấu hình thêm. Ví dụ: bạn có thể gọi psql với các cờ sau:
- -U, user PostgreSQL bạn muốn kết nối
- -h, tên server hoặc địa chỉ IP của database được quản lý
- -p, cổng TCP mà database được quản lý đang lắng nghe các kết nối
- -d, database cụ thể mà bạn muốn kết nối
- -v, viết tắt của "biến", đứng trước các biến kết nối khác, theo sau là dấu bằng (- =) và giá trị của biến. Ví dụ: nếu bạn muốn xác thực certificate CA của database khi bạn kết nối, bạn sẽ bao gồm- -v sslmode=requiretrong lệnh của bạn
- -W, yêu cầu- psqlnhắc bạn nhập password của user PostgreSQL. Lưu ý bạn có thể đặt trước lệnh- psqlbằng- PGPASSWORD= password, nhưng thường được coi là an toàn hơn nếu không đưa password vào dòng lệnh
Với các cờ này được bao gồm, cú pháp của lệnh psql sẽ giống như sau:
- psql -U user -h host -p port -d database -v variable=value -W
Ngoài ra, nếu nhà cung cấp database được quản lý của bạn cung cấp một định danh tài nguyên thống nhất (URI) để kết nối, bạn có thể sử dụng cú pháp sau:
- psql postgresql://username:password@host:port/database?option_1=value&option_n=value
Lưu ý: Nếu bạn đang kết nối với Dịch vụdatabase DigitalOcean, bạn có thể tìm thấy tất cả thông tin kết nối này trong Control panel cloud của bạn . Nhấp vào Database trong menu thanh bên bên trái, sau đó nhấp vào database bạn muốn kết nối và cuộn xuống để tìm phần Chi tiết kết nối của nó. Từ đó, bạn thực hiện một trong những thao tác sau:
- Chọn tùy chọn Tham số kết nối và sao chép riêng các trường liên quan vào cú pháp psqlnêu chi tiết trước đó
- Chọn tùy chọn Chuỗi kết nối và sao chép URI kết nối tạo sẵn mà bạn có thể paste vào cú pháp URI kết nối được nêu ở trên
- Chọn tùy chọn Cờ và sao chép lệnh psqlsẵn sàng sử dụng mà bạn có thể paste vào terminal của bạn để tạo kết nối
Như vậy, bạn đã sẵn sàng để bắt đầu sử dụng với version PostgreSQL được quản lý của bạn . Để biết thêm thông tin về cách tương tác với PostgreSQL, hãy xem hướng dẫn của ta về Cách quản lý database SQL . Bạn cũng có thể thấy phần Giới thiệu về Truy vấn trong PostgreSQL của ta hữu ích.
Kết nối với Database MySQL được Quản lý
Để truy cập database  MySQL được quản lý, bạn  cần  cài đặt một  ứng dụng client  MySQL trên máy mà bạn định thực hiện kết nối. Có thể kết nối bằng lệnh mysql , được cung cấp bởi Máy khách dòng lệnh MySQL , nhưng lệnh này không hỗ trợ chuỗi kết nối. Để linh hoạt hơn với cách bạn kết nối, thay vào đó  ta  khuyên bạn nên sử dụng lệnh mysqlsh cho phép bạn sử dụng MySQL Shell chính thức, vì nó cho phép bạn tự do kết nối với cờ hoặc URI kết nối.
Để truy cập vào database  DigitalOcean Managed MySQL, bạn cần cài đặt MySQL shell version  8.0 trở lên. Để làm như vậy, trước tiên bạn phải thêm repository  MySQL trước khi cài đặt gói mysql-shell .
Bắt đầu bằng cách chuyển đến trang Kho lưu trữ APT MySQL trong trình duyệt web . Tìm nút Download ở góc dưới bên phải và nhấp qua trang tiếp theo. Trang này sẽ nhắc bạn đăng nhập hoặc đăng ký account web Oracle. Bạn có thể bỏ qua điều đó và thay vào đó hãy tìm liên kết có nội dung Không, cảm ơn, chỉ cần bắt đầu download của tôi . Nhấp chuột phải vào liên kết và chọn Sao chép Địa chỉ Liên kết (tùy chọn này có thể được viết khác nhau, tùy thuộc vào trình duyệt của bạn).
Đến đây bạn đã sẵn sàng để download file . Trên server của bạn, di chuyển đến folder bạn có thể ghi vào:
- cd /tmp
 Download  file  bằng curl , nhớ dán địa chỉ bạn vừa sao chép vào vị trí của phần được đánh dấu của lệnh sau. Bạn cũng cần truyền hai cờ dòng lệnh để curl . -O hướng dẫn curl xuất ra file  thay vì  kết quả  tiêu chuẩn. Cờ L làm cho curl theo chuyển hướng HTTP, điều này cần thiết trong trường hợp này vì địa chỉ bạn đã sao chép thực sự chuyển hướng đến một vị trí khác trước khi file   download :
- curl -OL https://dev.mysql.com/get/mysql-apt-config_0.8.15-1_all.deb
Tệp bây giờ sẽ được download trong folder hiện tại của bạn. Liệt kê các file đảm bảo :
- ls
Bạn sẽ thấy tên file được liệt kê trong kết quả :
mysql-apt-config_0.8.15-1_all.deb . . .  Đến đây bạn  có thể thêm repository  MySQL APT vào danh sách repository  của hệ thống. Lệnh dpkg được sử dụng để cài đặt, gỡ bỏ và kiểm tra .deb phần mềm .deb . Lệnh sau bao gồm cờ -i , cho biết rằng bạn muốn cài đặt từ file  được chỉ định:
- sudo dpkg -i mysql-apt-config*
Trong quá trình cài đặt, bạn sẽ thấy một màn hình cấu hình nơi bạn có thể chỉ định version  MySQL nào bạn muốn, cùng với một tùy chọn để cài đặt repository  cho các công cụ khác liên quan đến MySQL. Giá trị mặc định sẽ thêm thông tin repository  cho version  ổn định mới nhất của MySQL và không có gì khác. Đây là những gì  ta  muốn, vì vậy hãy sử dụng mũi tên xuống để  chuyển  đến tùy chọn menu Ok và nhấn ENTER .
Sau đó, gói sẽ hoàn tất việc thêm repository . Làm mới  cache  gói apt của bạn để cung cấp các gói phần mềm mới:
- sudo apt update
Tiếp theo, bạn có thể dọn dẹp hệ thống của bạn một chút và xóa file bạn đã download , vì bạn sẽ không cần nó trong tương lai:
- rm mysql-apt-config*
Lưu ý: Nếu bạn cần cập nhật cấu hình của các kho này, hãy chạy lệnh sau để chọn các tùy chọn mới của bạn:
- sudo dpkg-reconfigure mysql-apt-config
Sau khi chọn các tùy chọn mới của bạn, hãy chạy lệnh sau để làm mới cache gói của bạn:
- sudo apt update
 Đến đây bạn  đã thêm các repository  MySQL, bạn đã sẵn sàng cài đặt phần mềm MySQL Shell thực tế. Làm như vậy với lệnh apt sau:
- sudo apt install mysql-shell
Sau khi lệnh đó kết thúc, hãy kiểm tra số version phần mềm đảm bảo rằng bạn có bản phát hành mới nhất:
- mysqlsh --version
mysqlsh   Ver 8.0.19 for Linux on x86_64 - for MySQL 8.0.19 (MySQL Community Server (GPL)) Sau khi bạn đã cài đặt gói mysql-shell , bạn có thể truy cập database  được quản lý  của bạn  bằng cách chạy lệnh mysqlsh với các cờ sau làm đối số:
- -u, user MySQL mà bạn muốn kết nối
- -p, yêu cầu- mysqlshnhắc nhập password của user . Bạn có thể đưa password của bạn trực tiếp vào lệnh kết nối theo sau cờ- -p(không có dấu cách, như- -p passwordtrong- -p password) nhưng vì lý do bảo mật, điều này thường không được khuyến khích
- -h, tên server hoặc địa chỉ IP của database
- -P, cổng TCP mà MySQL đang lắng nghe các kết nối
- -D, database cụ thể bạn muốn kết nối với
Ngoài ra, bạn  có thể cần  bao gồm tùy chọn --sql . Khi MySQL Shell mở một phiên mới, nó sẽ làm như vậy ở một trong ba chế độ: SQL, JavaScript hoặc Python. Chế độ SQL mở một phiên trong đó bạn có thể sử dụng SQL để truy vấn và thao tác dữ liệu, cũng như tạo database , bảng,  group  hoặc bất kỳ thứ gì khác mà bạn cần để lưu trữ và quản lý dữ liệu  của bạn . Chế độ JavaScript và Python cho phép bạn sử dụng các hàm có sẵn trong các ngôn ngữ tương ứng đó để tạo một số đối tượng phiên. Điều này cho phép bạn sử dụng nhiều version   server  MySQL từ cùng một version  MySQL Shell.
MySQL shell sẽ mở các phiên trong chế độ JavaScript theo mặc định. Vì vậy, nếu bạn muốn chạy các truy vấn SQL như thường làm với client  dòng lệnh MySQL, bạn  cần  chỉ định tùy chọn --sql để  cài đặt  kết nối trong chế độ SQL.
Sử dụng các cờ này, cú pháp mysqlsh sẽ giống như sau:
- mysqlsh -u user -p -h host -P port -D database --sql
Ngoài ra, nếu bạn có một URI kết nối mà bạn có thể sử dụng để kết nối, bạn sẽ sử dụng cú pháp như sau:
- mysqlsh --sql mysql://user:password@host:port/database?option_1=value&option_n=value
Lưu ý: Nếu bạn đang kết nối với Dịch vụdatabase DigitalOcean, bạn có thể tìm thấy tất cả thông tin kết nối này trong Control panel cloud của bạn . Nhấp vào Database trong menu thanh bên bên trái, sau đó nhấp vào database bạn muốn kết nối và cuộn xuống để tìm phần Chi tiết kết nối của nó. Từ đó, bạn thực hiện một trong những thao tác sau:
- Chọn tùy chọn Tham số kết nối và sao chép riêng các trường liên quan vào cú pháp mysqlshđã nêu trước đó
- Chọn tùy chọn Chuỗi kết nối và sao chép URI kết nối được tạo sẵn mà bạn có thể paste vào lệnh chuỗi kết nối được nêu chi tiết ở trên
Như vậy, bạn đã sẵn sàng để bắt đầu sử dụng version MySQL được quản lý của bạn .
Nếu bạn mới làm việc với MySQL Shell, một điều cần lưu ý là, để đóng kết nối, lệnh exit được sử dụng trong các client  MySQL khác sẽ không hoạt động. Thay vào đó, bạn  cần  chạy phím tắt \q :
- \q
Bye! Để biết thêm thông tin về cách tương tác với MySQL, hãy xem hướng dẫn của ta về Cách quản lý database SQL . Bạn cũng có thể thấy phần Giới thiệu về Truy vấn trong MySQL của ta hữu ích.
Lưu ý về xác thực password trong MySQL 8
Trong MySQL 8.0 và mới hơn, plugin xác thực mặc định là caching_sha2_password . Tuy nhiên, khi viết bài này, PHP không hỗ trợ caching_sha2_password . Nếu bạn định sử dụng database  MySQL được quản lý  của bạn  với một ứng dụng sử dụng PHP, chẳng hạn như WordPress hoặc phpMyAdmin, điều này có thể dẫn đến sự cố khi ứng dụng cố gắng kết nối với database .
Nếu bạn có quyền truy cập vào file  cấu hình của database , bạn có thể thêm cài đặt để buộc nó sử dụng plugin xác thực được PHP hỗ trợ - ví dụ: mysql_native_password - theo mặc định:
[mysqld] default-authentication-plugin=mysql_native_password Tuy nhiên, một số nhà cung cấp database  được quản lý - bao gồm DigitalOcean - không cung cấp file  cấu hình database  cho  user  cuối. Trong trường hợp này, bạn có thể kết nối với database  và chạy ALTER USER cho bất kỳ  user  MySQL hiện có nào cần kết nối với database , nhưng không thể làm như vậy với plugin caching_sha2_password :
- ALTER USER user IDENTIFIED WITH mysql_native_password BY 'password';
Tất nhiên, bạn có thể đặt  user  mới xác thực với mysql_native_password bằng cách chỉ định plugin trong câu CREATE USER tương ứng của họ:
- CREATE USER user IDENTIFIED WITH mysql_native_password BY 'password';
Nếu bạn đang sử dụng Dịch vụdatabase DigitalOcean, hãy  lưu ý  nếu bạn  cấu hình   user  để xác thực bằng một plugin không phải caching_sha2_password thì bạn sẽ không thể thấy password  của  user  đó trong  Control panel   cloud   của bạn . Vì lý do này, bạn nên  đảm bảo  bạn ghi lại password  của  mọi user  xác thực bằng mysql_native_password hoặc các plugin khác ở một vị trí an toàn.
Kết nối với Database Redis được quản lý
Khi bạn cài đặt Redis local , nó đi kèm với redis-cli , giao diện dòng lệnh của Redis. Bạn có thể sử dụng redis-cli để kết nối với version  Redis từ xa, được quản lý, nhưng bản chất nó không hỗ trợ kết nối TLS / SSL. Có nhiều cách bạn có thể  cấu hình  redis-cli để kết nối an toàn với version  Redis được quản lý (ví dụ: bằng cách  cấu hình  tunnel  TLS , nhưng có những client  Redis thay thế có hỗ trợ TLS tích hợp sẵn.
Đối với Database Redis được quản lý DigitalOcean, ta khuyên bạn nên cài đặt Redli, một terminal Redis tương tác, open-souce . Để làm như vậy, hãy chuyển đến Trang bản phát hành trên dự án Redli GitHub và tìm bảng Nội dung cho bản phát hành mới nhất. Theo văn bản này, đây sẽ là version 0.4.4.
Ở đó, tìm liên kết cho file  có linux_amd64.tar.gz . Liên kết này trỏ đến một file  lưu trữ được gọi là tarball , khi được giải nén , sẽ tạo ra một vài file   trên hệ thống.  Nhấp chuột phải vào liên kết này và chọn Sao chép địa chỉ liên kết (tùy chọn này có thể khác nhau tùy thuộc vào  trình duyệt web ).
Trên server của bạn, di chuyển đến folder bạn có thể ghi vào:
- cd /tmp
Sau đó, dán liên kết vào lệnh wget sau, thay thế URL được đánh dấu. Lệnh này sẽ tải file  xuống  server  của bạn:
- wget https://github.com/IBM-Cloud/redli/releases/download/v0.4.4/redli_0.4.4_linux_amd64.tar.gz
Khi file đã được download server của bạn, hãy extract tarball:
- tar xvf redli_0.4.4_linux_amd64.tar.gz
Thao tác này sẽ tạo các file sau trên server của bạn:
LICENSE.txt README.md redli Tệp redli là tệp binary  Redli. Di chuyển nó vào folder  /usr/local/bin , vị trí mà Ubuntu tìm kiếm các file  thực thi:
sudo mv redli /usr/local/bin/ Đến đây, bạn có thể dọn dẹp hệ thống của bạn một chút và loại bỏ tarball:
- rm redli_0.4.4_linux_amd64.tar.gz
 Đến đây bạn  có thể sử dụng Redli để kết nối với version  Redis được quản lý  của bạn . Bạn  có thể thực hiện bằng cách  chạy lệnh redli theo sau là các cờ sau:
- -h, server để kết nối. Đây có thể là tên server hoặc địa chỉ IP
- -a, password dùng để xác thực version Redis
- -p, cổng để kết nối với
Với các cờ này được bao gồm, cú pháp redli sẽ như sau.  Lưu ý  ví dụ này cũng bao gồm tùy chọn --tls , cho phép bạn kết nối với database  Redis được quản lý qua TLS / SSL mà không cần tunnel :
- redli --tls -h host -a password -p port
Một lợi ích mà Redli có so với redis-cli là nó hiểu được giao thức rediss , được sử dụng để chỉ định một URI trỏ đến database  Redis. Điều này cho phép bạn sử dụng một chuỗi kết nối để truy cập database   của bạn :
- redli --tls -u rediss://user:password@host:port
 Lưu ý  ví dụ này bao gồm cờ -u , chỉ định rằng đối số sau đây sẽ là một URI kết nối.
Lưu ý: Nếu bạn đang kết nối với Dịch vụdatabase DigitalOcean, bạn có thể tìm thấy tất cả thông tin kết nối này trong Control panel cloud của bạn . Nhấp vào Database trong menu thanh bên bên trái, sau đó nhấp vào database bạn muốn kết nối và cuộn xuống để tìm phần Chi tiết kết nối . Từ đó, bạn thực hiện một trong những thao tác sau:
- Chọn tùy chọn Tham số kết nối và sao chép riêng các trường liên quan vào cú pháp redlinêu chi tiết trước đó
- Chọn tùy chọn Chuỗi kết nối và sao chép một URI kết nối tạo sẵn mà bạn có thể sử dụng với cú pháp chuỗi kết nối được nêu ở trên
- Chọn tùy chọn Cờ và sao chép lệnh redlisẵn sàng sử dụng mà bạn có thể paste vào terminal của bạn để thực hiện kết nối
Sau đó, bạn có thể bắt đầu tương tác với version Redis được quản lý của bạn . Để biết thêm thông tin về cách làm việc với Redis, hãy xem loạt bài hoặc cheat sheets của ta về Cách quản lý database Redis .
Kết luận
Là một sự phát triển tương đối mới trong các dịch vụ cloud , nhiều thực tiễn nổi tiếng về database tự quản lý không được tài liệu hóa rộng rãi hoặc toàn diện cho database do các nhà cung cấp dịch vụ cloud quản lý. Một trong những điều cơ bản nhất của những thực hành này, truy cập database , có thể không rõ ràng ngay lập tức đối với những người mới làm việc với database được quản lý. Mục tiêu của ta cho hướng dẫn này là nó giúp bạn bắt đầu khi bắt đầu sử dụng database được quản lý để lưu trữ dữ liệu.
Để biết thêm thông tin về cách làm việc với database , ta khuyến khích bạn xem nhiều nội dung liên quan đến database của ta , bao gồm các hướng dẫn tập trung trực tiếp vào PostgreSQL , MySQL và Redis .
Để tìm hiểu thêm về Dịch vụdatabase DigitalOcean, vui lòng xem tài liệu sản phẩm Dịch vụdatabase của ta .
Các tin liên quan
Cách tạo ứng dụng Django và kết nối nó với database2020-05-07
Cách sử dụng Di chuyển database và Trình seeding để Thiết lập database Tóm tắt trong Laravel
2020-02-13
Cách tạo một ứng dụng lập hóa đơn đơn giản với node: database và API
2019-12-12
Cách cài đặt WordPress với dịch vụ database trên Ubuntu 18.04
2019-08-20
Dịch vụ Database online
2019-02-14
Tìm hiểu database phân đoạn - Database Sharding
2019-02-07
Cách thiết lập database từ xa để tối ưu hóa hiệu suất trang web với MySQL trên Ubuntu 18.04
2018-11-28
Cách quản lý database SQL
2018-09-26
Cách cải thiện tìm kiếm database với tìm kiếm toàn văn bản (Full Text Search) trong MySQL 5.6 trên Ubuntu 16.04
2017-10-30
Cách thiết lập database đồ thị Titan với Cassandra và ElasticSearch trên Ubuntu 16.04
2017-06-27
 

