Thứ ba, 16/06/2020 | 00:00 GMT+7

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 , MySQLRedis , 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=require trong lệnh của bạn
  • -W , yêu cầu psql nhắc bạn nhập password của user PostgreSQL. Lưu ý bạn có thể đặt trước lệnh psql bằ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 psql nê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 psql sẵ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ả :

Output
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 .

Chọn các tùy chọn cấu hình mysql-apt-config

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
Output
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 mysqlsh nhắ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 password trong -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
Output
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:

Tệp cấu hình MySQL mẫu
[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:

Output
LICENSE.txt README.md redli 

Tệp redlitệ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 redli nê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 redli sẵ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 , MySQLRedis .

Để 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 .


Tags:

Các tin liên quan

Cách tạo ứng dụng Django và kết nối nó với database
2020-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