Cách kết nối một cơ sở dữ liệu với cơ sở dữ liệu khác trong MySQL

MySQL là một cơ sở dữ liệu phổ biến được sử dụng bởi nhiều tổ chức và nhà phát triển. Đôi khi, trong khi làm việc với MySQL, bạn có thể cần di chuyển cơ sở dữ liệu từ máy chủ này sang máy chủ khác, để sao chép hoặc thử nghiệm hoặc sao chép. Bạn có thể cần sao chép/chuyển cơ sở dữ liệu để tạo cơ sở dữ liệu riêng cho mục đích báo cáo. Trong bài viết này, chúng ta sẽ tìm hiểu cách sao chép/chuyển dữ liệu từ cơ sở dữ liệu này sang cơ sở dữ liệu khác trong MySQL


Cách sao chép/chuyển dữ liệu từ cơ sở dữ liệu này sang cơ sở dữ liệu khác trong MySQL

Có ba bước để sao chép/chuyển dữ liệu từ cơ sở dữ liệu này sang cơ sở dữ liệu khác trong MySQL


1. Sao lưu cơ sở dữ liệu MySQL

Bước đầu tiên là sao lưu cơ sở dữ liệu MySQL của bạn bằng lệnh mysqldump. Giả sử bạn muốn sao chép doanh số cơ sở dữ liệu, sau đó mở terminal trên máy chủ nơi đặt cơ sở dữ liệu của bạn và chạy lệnh sau để sao lưu cơ sở dữ liệu. Thay thế doanh số bán hàng bằng tên cơ sở dữ liệu và tên người dùng bằng tên người dùng cơ sở dữ liệu của bạn

$ sudo mysqldump -u username -p sales > sales_dump.sql

Bạn sẽ được nhắc nhập mật khẩu người dùng MySQL của mình trước khi quá trình xử lý bắt đầu

Nếu bạn muốn sao lưu cơ sở dữ liệu từ xa thì hãy thêm địa chỉ IP máy chủ của nó với tùy chọn -h

$ sudo mysqldump -h host_ip_address_or_url -u username -p sales > sales_dump.sql

Nếu bạn muốn sao lưu nhiều cơ sở dữ liệu, hãy sử dụng tùy chọn –databases. Đây là lệnh để sao lưu cơ sở dữ liệu bán hàng và đơn đặt hàng

$ sudo mysqldump -u username -p --databases sales orders > sales_dump.sql

Nếu bạn muốn sao lưu tất cả cơ sở dữ liệu trên máy chủ của mình, hãy sử dụng tùy chọn –all-databases

$ sudo mysqldump -u username -p --all-databases > sales_dump.sql

Nếu bạn chỉ muốn sao lưu các bảng cụ thể, hãy đề cập đến nó sau tên cơ sở dữ liệu trong lệnh MySQLdump. Đây là lệnh để sao lưu bảng người dùng và sản phẩm từ cơ sở dữ liệu bán hàng

$ sudo mysqldump -u username -p sales users products > sales_dump.sql

Bạn thậm chí có thể lưu kết quả truy vấn dưới dạng. tập tin sql

$ sudo mysqldump -u username -p sales users --where="WHERE CLAUSE" > dump.sql


2. Chuyển bản sao lưu sang máy chủ cơ sở dữ liệu khác

Bạn có thể sử dụng bất kỳ chương trình truyền tệp nào để sao chép. tập tin sql giữa hai máy chủ. Bạn cần chạy các lệnh này từ máy chủ nguồn nơi bạn đã tạo tệp kết xuất dữ liệu

Chúng tôi sẽ sử dụng lệnh scp cho mục đích này

$ Scp -P [port] [dump_file].sql [username]@[servername]:[path on destination]

Đây là lệnh chuyển file sales_dump. sql sang ip54. 43. 32. 21. Nhưng điều quan trọng là bạn phải có quyền truy cập SSH trên máy chủ này, vì bạn sẽ cần nhập tên người dùng và mật khẩu để truy cập. Ngoài ra, bạn cần có quyền ghi vào thư mục đích để có thể sao chép tệp vào đó. Thay thế 54. 43. 32. 21 với địa chỉ IP của máy chủ đích, root với tên người dùng của bạn trên máy chủ đó và /home/ubuntu/sales với vị trí thư mục mà bạn muốn lưu tệp

$ scp sales_dump.sql [email protected]:/home/ubuntu/sales


3. Khôi phục kết xuất dữ liệu

Bước cuối cùng là tạo cơ sở dữ liệu mới từ tệp kết xuất dữ liệu. Đầu tiên, đăng nhập vào MySQL, tạo một cơ sở dữ liệu trống trên máy chủ đích và thoát khỏi nó

________số 8_______

Chạy lệnh sau để sao chép dữ liệu từ. tệp kết xuất sql vào cơ sở dữ liệu mới. Đây là cú pháp cho nó

Nếu chúng ta muốn sao chép bảng hoặc cơ sở dữ liệu từ máy chủ MySQL này sang máy chủ MySQL khác, thì hãy sử dụng mysqldump với tên cơ sở dữ liệu và tên bảng

Chạy lệnh sau tại máy chủ nguồn. Điều này sẽ kết xuất cơ sở dữ liệu hoàn chỉnh vào kết xuất. tệp txt

$ mysqldump -u root -p database_name table_name > dump.txt
password *****

Chúng tôi có thể sao chép cơ sở dữ liệu hoàn chỉnh mà không cần sử dụng tên bảng cụ thể như đã giải thích ở trên

Bây giờ, kết xuất ftp. txt trên máy chủ khác và sử dụng lệnh sau. Trước khi chạy lệnh này, hãy đảm bảo rằng chúng tôi đã tạo database_name trên máy chủ đích

$ mysql -u root -p database_name < dump.txt
password *****

Một cách khác để thực hiện việc này mà không cần sử dụng tệp trung gian là gửi đầu ra của kết xuất MySQL trực tiếp qua mạng tới máy chủ MySQL từ xa. Nếu chúng tôi có thể kết nối với cả hai máy chủ từ máy chủ lưu trữ cơ sở dữ liệu nguồn, hãy sử dụng lệnh sau (Đảm bảo rằng chúng tôi có quyền truy cập vào cả hai máy chủ)

$ mysqldump -u root -p database_name \
| mysql -h other-host.com database_name

Trong mysqldump, một nửa lệnh kết nối với máy chủ cục bộ và ghi đầu ra kết xuất vào đường ống. Nửa lệnh còn lại kết nối với máy chủ MySQL từ xa trên máy chủ khác. com. Nó đọc đường ống cho đầu vào và gửi từng câu lệnh đến máy chủ khác. máy chủ com

Bước đầu tiên để di chuyển cơ sở dữ liệu MySQL là lấy kết xuất dữ liệu mà bạn muốn chuyển. Để làm điều đó, bạn sẽ phải sử dụng lệnh mysqldump. Cú pháp cơ bản của lệnh là.
mysqldump -u [username] -p [database] > dump.sql

Nếu cơ sở dữ liệu nằm trên một máy chủ từ xa, hãy đăng nhập vào hệ thống đó bằng cách sử dụng ssh hoặc sử dụng -h and -P options to provide host and port respectively.

mysqldump -P [port] -h [host] -u [username] -p [database] > dump.sql

Có nhiều tùy chọn khác nhau có sẵn cho lệnh này, hãy xem qua các tùy chọn chính theo trường hợp sử dụng

A) Sao lưu cơ sở dữ liệu cụ thể

mysqldump -u [username] -p [database] > dump.sql

Lệnh này kết xuất cơ sở dữ liệu được chỉ định vào tệp

Bạn có thể chỉ định nhiều cơ sở dữ liệu cho kết xuất bằng lệnh sau

mysqldump -u [username] -p --databases [database1] [database2] > dump.sql

Bạn có thể sử dụng tùy chọn –all-databases để sao lưu tất cả cơ sở dữ liệu trên phiên bản MySQL

mysqldump -u [username] -p --all-databases > dump.sql

B) Sao lưu Các bảng cụ thể

Các lệnh trên kết xuất tất cả các bảng trong cơ sở dữ liệu được chỉ định, nếu bạn cần sao lưu một số bảng cụ thể, bạn có thể sử dụng lệnh sau

mysqldump -u [username] -p [database] [table1] [table2] > dump.sql

C) Truy vấn tùy chỉnh

Nếu bạn muốn sao lưu dữ liệu bằng một số truy vấn tùy chỉnh, bạn sẽ cần sử dụng tùy chọn where do mysqldump cung cấp.

mysqldump -u [username] -p [database] [table1] --where="WHERE CLAUSE" > dump.sql

Example: mysqldump -u root -p testdb table1 --where="mycolumn = myvalue" > dump.sql

Lưu ý .

  • Theo mặc định, lệnh mysqldump bao gồm các câu lệnh DROP TABLE và CREATE TABLE trong kết xuất đã tạo. Do đó, nếu bạn đang sử dụng sao lưu gia tăng hoặc bạn đặc biệt muốn khôi phục dữ liệu mà không xóa dữ liệu trước đó, hãy đảm bảo rằng bạn sử dụng tùy chọn –no-create-info trong khi tạo kết xuất
mysqldump -u [username] -p [database] --no-create-info > dump.sql
  • Nếu bạn chỉ cần sao chép lược đồ chứ không phải dữ liệu, bạn có thể sử dụng tùy chọn –no-data trong khi tạo kết xuất
mysqldump -u [username] -p [database] --no-data > dump.sql

2) Sao chép kết xuất cơ sở dữ liệu trên máy chủ đích

Khi bạn đã tạo kết xuất theo thông số kỹ thuật của mình, bước tiếp theo là chuyển tệp kết xuất dữ liệu sang máy chủ đích. Bạn sẽ phải sử dụng lệnh scp cho điều đó

Scp -P [port] [dump_file].sql [username]@[servername]:[path on destination]

ví dụ

mysqldump -P [port] -h [host] -u [username] -p [database] > dump.sql
0

3) Khôi phục kết xuất

Bước cuối cùng là khôi phục dữ liệu trên máy chủ đích. Lệnh MySQL trực tiếp cung cấp cách khôi phục để kết xuất dữ liệu vào MySQL

mysqldump -P [port] -h [host] -u [username] -p [database] > dump.sql
1

Thí dụ

mysqldump -P [port] -h [host] -u [username] -p [database] > dump.sql
2

Nếu kết xuất của bạn bao gồm nhiều cơ sở dữ liệu, không chỉ định cơ sở dữ liệu trong lệnh ở trên.

mysqldump -P [port] -h [host] -u [username] -p [database] > dump.sql
3

Phần kết luận

Làm theo các bước nêu trên, bạn có thể di chuyển cơ sở dữ liệu MySQL giữa hai máy chủ một cách dễ dàng nhưng có thể khá cồng kềnh nếu đây là tác vụ định kỳ. Một giải pháp tất cả trong một như Hevo sẽ giải quyết vấn đề này một cách dễ dàng và giúp quản lý tất cả các đường dẫn dữ liệu của bạn một cách tinh tế và có khả năng chịu lỗi.

Hevo sẽ tự động lập danh mục tất cả các lược đồ bảng của bạn và sẽ thực hiện tất cả các chuyển đổi cần thiết để di chuyển Cơ sở dữ liệu MySQL giữa các phiên bản MySQL này. Hevo sẽ tìm nạp dữ liệu từ máy chủ MySQL nguồn của bạn theo kiểu gia tăng và khôi phục dữ liệu đó một cách liền mạch vào phiên bản MySQL đích. Hevo cũng sẽ thông báo cho bạn nếu có bất kỳ thay đổi lược đồ hoặc lỗi mạng nào qua email và Slack. Tất cả những điều này có thể đạt được từ Hevo UI, không cần quản lý bất kỳ máy chủ hoặc công việc định kỳ nào

Các doanh nghiệp có thể sử dụng các nền tảng tự động như Hevo Data để thiết lập tích hợp và xử lý quy trình ETL. Nó giúp bạn chuyển trực tiếp dữ liệu từ nguồn bạn chọn sang Kho dữ liệu, công cụ Nghiệp vụ thông minh hoặc bất kỳ đích mong muốn nào khác theo cách hoàn toàn tự động và an toàn mà không cần phải viết bất kỳ mã nào và sẽ mang đến cho bạn trải nghiệm không gặp rắc rối.

HÃY THAM QUAN TRANG WEB CỦA CHÚNG TÔI ĐỂ KHÁM PHÁ HEVO

Bạn muốn thử Hevo?

Đăng ký dùng thử miễn phí 14 ngày và tận mắt trải nghiệm bộ Hevo giàu tính năng. Bạn cũng có thể xem giá cạnh tranh nhất sẽ giúp bạn chọn gói phù hợp cho nhu cầu kinh doanh của mình

Chia sẻ kinh nghiệm tìm hiểu của bạn về các bước di chuyển Cơ sở dữ liệu MySQL giữa 2 máy chủ trong phần bình luận bên dưới

Làm cách nào để kết nối với cơ sở dữ liệu trong MySQL?

Để kết nối với cơ sở dữ liệu MySQL .
Nhấp vào tab Dịch vụ
Mở rộng nút Trình điều khiển từ Database Explorer. .
Nhập tên người dùng và mật khẩu. .
Nhấn OK để chấp nhận thông tin đăng nhập. .
Nhấn OK để chấp nhận lược đồ mặc định
Nhấp chuột phải vào URL Cơ sở dữ liệu MySQL trong cửa sổ Dịch vụ (Ctrl-5)

Bạn có thể tham gia trên cơ sở dữ liệu MySQL không?

Có, giả sử tài khoản có các quyền phù hợp thì bạn có thể sử dụng . CHỌN