Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách di chuyển cơ sở dữ liệu MS SQL đang chạy trên máy từ xa sang cơ sở dữ liệu MySQL cục bộ của tôi đang chạy trên linux, duy trì mã hóa

Sử dụng MySQL Workbench, tôi đã thử các kết hợp này, không có kết hợp nào trong số chúng hoạt động:

MS SQL từ xa> trình điều khiển ODBC gốc MySQL từ xa

MS SQL từ xa> trình điều khiển MySQL ODBC DataSource từ xa

từ xa MS SQL> trình điều khiển MySQL freeTDS ODBC từ xa (có hoặc không có UTF-8)

ảo MS SQL> trình điều khiển ODBC gốc MySQL ảo

MS SQL ảo> trình điều khiển MySQL ODBC DataSource ảo

virtual MS SQL> ảo MySQL freeTDS ODBC driver (có hoặc không có UTF-8)

Trong một trong hai trường hợp đó, quá trình di chuyển bị kẹt (Bàn làm việc không phản hồi) hoặc các ký tự không được chuyển đúng cách.

Tổng thời gian thử và sai là khoảng 12 giờ.

Ở đây tôi đang chia sẻ với bạn một cách làm thế nào tôi có thể di chuyển thành công toàn bộ cơ sở dữ liệu MS SQL sang máy chủ MySQL cục bộ đang chạy trên máy phát triển của tôi.

Khi tôi đang kết nối với máy W10 từ xa qua Kết nối Máy tính Từ xa (RDC) từ máy VirtualBox của mình, lúc đầu, tôi muốn loại bỏ bước bổ sung này để làm cho mọi thứ dễ dàng hơn.

  1. nếu bạn chưa có, hãy tải xuống và cài đặt máy Virtual Box miễn phí mà Microsoft cung cấp và bắt đầu nó

  2. từ máy ảo này khởi động RDC và trước khi kết nối, hãy thêm đĩa cục bộ trên máy ảo để có sẵn trên máy từ xa

  3. trên máy từ xa, khởi động SQL Server management studio và tạo bản sao lưu cơ sở dữ liệu (Nhấp chuột phải vào cơ sở dữ liệu mong muốn, Nhiệm vụ> Sao lưu ..., lưu tệp sao lưu vào đĩa)

  4. sao chép tệp sao lưu này vào ổ đĩa của bạn trên máy ảo bằng cách điều hướng đến Mạng và tải tệp lên ổ C:trên máy ảo của bạn

  5. cài đặt trên máy ảo MS SQL server của bạn, phiên bản Express miễn phí, cùng với SQL Server Management Studio (Tôi đã tải xuống phiên bản 2014)

  6. tạo cơ sở dữ liệu mới và chọn Nhiệm vụ ...> Khôi phục> Cơ sở dữ liệu ..., chọn tệp bạn đã tải lên máy ảo của mình, chọn Ghi đè cơ sở dữ liệu hiện có ..

  7. tạo thông tin đăng nhập mới cho máy chủ MS SQL của bạn (nhấp chuột phải vào Đăng nhập), chọn thông tin đăng nhập và mật khẩu mong muốn, gán vai trò sysadmin, chỉ để làm cho mọi thứ dễ dàng hơn, vì đây là quá trình di chuyển một lần

  8. trên máy chủ Linux cục bộ của bạn, hãy cài đặt MySQL Workbench mới nhất, tôi giả sử rằng cơ sở dữ liệu MySQL đang chạy cục bộ, nếu chưa, hãy cài đặt nó

  9. bởi vì bạn đang sử dụng Linux, bạn sẽ cần thêm bước để cài đặt trình điều khiển FreeTDS ODBC vào hệ thống của mình, nếu điều này liên kết, cách cài đặt trình điều khiển FreeTDS trên Linux đã chết, hãy tìm kiếm Trình hướng dẫn di chuyển cơ sở dữ liệu / Di chuyển Microsoft SQL Server trong hướng dẫn sử dụng MySQL Workbench

  10. thiết lập máy ảo để có thể truy cập từ hệ thống Host linux của bạn, tôi đã thực hiện điều đó bằng cách chọn Đính kèm với:Bộ điều hợp bắc cầu và chọn wlan0 trong cài đặt của máy ảo

  11. khởi động máy ảo và chọn dải IP từ cùng một mạng mà bạn sử dụng bộ điều hợp

  12. trên máy ảo của bạn, hãy thêm quy tắc tường lửa cho máy chủ MS SQL hoặc tạm thời tắt tường lửa

Từ bây giờ, mọi thứ được thực hiện trên máy Linux cục bộ của bạn với máy ảo đang chạy

  1. khởi động MySQL Workbench 'Database Migration, chọn MS SQL làm máy nguồn, nhập địa chỉ IP chính xác mà bạn đã thiết lập trong máy ảo của mình trước đó

  2. làm cơ sở dữ liệu đích, sử dụng thông tin đăng nhập và cài đặt cơ sở dữ liệu MySQL cục bộ của bạn

  3. trong bước Tùy chọn tạo mục tiêu chỉ chọn Tạo tệp kịch bản SQL và chọn Giữ các lược đồ nếu chúng đã thoát.

  4. thực hiện các bước tiếp theo cho đến khi bạn đến Thiết lập chuyển dữ liệu. Ở đó chọn Bản sao trực tuyến của bảng ... nhưng không nhấn Tiếp theo

  5. chỉnh sửa tập lệnh đã lưu ở bước 15.:

loại bỏ:

CREATE SCHEMA IF NOT EXISTS `Test` ;

thêm:

CREATE DATABASE `Test` DEFAULT CHARACTER SET utf16 COLLATE utf16_czech_ci;

thay đổi tất cả các định nghĩa tạo bảng bằng cách thêm bộ ký tự mong muốn và đối chiếu vào định nghĩa bảng:

CREATE TABLE IF NOT EXISTS `TestTable` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) COLLATE utf16_czech_ci DEFAULT NULL,
  PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf16 COLLATE=utf16_czech_ci;
  1. chạy tập lệnh cập nhật này trong cơ sở dữ liệu MySQL của bạn

  2. chuyển sang bước tiếp theo trong MySQL Workbench và dữ liệu sẽ được nhập chính xác

Có thể có một số bước không được nêu rõ ràng, vui lòng cho tôi biết trong phần nhận xét nếu bạn cần một số giải thích rõ ràng




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tránh tình trạng cuộc đua với những lần kiểm tra duy nhất trong Django

  2. RuntimeError với mysql2 và rails3 (Bundler)

  3. Việc truy xuất dữ liệu từ RDS cung cấp cho đối tượng AttributeError:'sqlalchemy.cimmutabledict.immutabledict' không có thuộc tính 'setdefault'

  4. SQL - Điều kiện WHERE trên SUM ()

  5. Nhận năm hiện tại, tháng hiện tại và ngày hiện tại trong MySQL