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