Chương này thảo luận về trình điều khiển thư viện máy khách MySQL cho cơ sở dữ liệu Oracle và việc sử dụng nó trong các ứng dụng di chuyển từ MySQL sang Oracle.
Chương này bao gồm những chủ đề sau:
Giới thiệu về Trình điều khiển thư viện máy khách MySQL cho Oracle
Tổng quan về di chuyển với trình điều khiển thư viện máy khách MySQL cho Oracle
Sử dụng trình điều khiển thư viện máy khách MySQL cho Oracle
Giới thiệu về Trình điều khiển thư viện máy khách MySQL cho Oracle
Tổng quan về di chuyển với trình điều khiển thư viện máy khách MySQL cho Oraclec Release 1, liboramysql
, is a drop-in replacement for MySQL Commercial Connector/C 6.0 client library. The
liboramysql
driver implements a similar API, enabling C-based applications and tools developed for MySQL to connect to Oracle Database. The driver may be used to migrate applications from MySQL to Oracle Database with minimal changes to the application code.
Sử dụng trình điều khiển thư viện máy khách MySQL cho Oracle
Trình điều khiển thư viện máy khách MySQL cho cơ sở dữ liệu Oracle 12C Phát hành 1, liboramysql
, là một sự thay thế thả vào cho Thư viện máy khách đầu nối thương mại MySQL/C 6.0. Trình điều khiển liboramysql
thực hiện API tương tự, cho phép các ứng dụng và công cụ dựa trên C được phát triển để MySQL kết nối với cơ sở dữ liệu Oracle. Trình điều khiển có thể được sử dụng để di chuyển các ứng dụng từ cơ sở dữ liệu MySQL sang Oracle với các thay đổi tối thiểu đến mã ứng dụng.
Trình điều khiển liboramysql
sử dụng giao diện Oracle Call [OCI] để kết nối với cơ sở dữ liệu Oracle.
c = mysql_init[NULL]; mysql_real_connect[c, "myhost", "myun", "mypw", "mydb", 0, NULL, 0]; mysql_query[c, "insert into mytable values [1,2]"]; mysql_close[c];
Đoạn mã C trong ví dụ 6-1 trình bày cách kết nối với MySQL và cách chèn một hàng vào bảng. Sau khi cập nhật thông tin đăng nhập kết nối, mã này có thể chạy không thay đổi đối với cơ sở dữ liệu của Oracle khi thực thi được liên kết bằng thư viện liboramysql
, thay vì thư viện ____10.
Ví dụ 6-1 Kết nối với MySQL và chèn một hàng mới
Mặc dù lược đồ và dữ liệu cơ sở dữ liệu phải được di chuyển thành Oracle một cách riêng biệt và mặc dù thư viện liboramysql
không dịch các câu lệnh SQL, lượng nỗ lực đáng kể được bảo tồn khi chuyển sang cơ sở dữ liệu Oracle vì không có thay đổi nào được thực hiện đối với mã ứng dụng.
Các ứng dụng C tùy chỉnh có thể sử dụng thư viện liboramysql
để dễ dàng chuyển sang cơ sở dữ liệu Oracle.
Cài đặt và sử dụng đầu tiên của Trình điều khiển thư viện máy khách MySQL cho Oracle
Trình điều khiển thư viện máy khách MySQL cho Oracle được cung cấp dưới dạng tệp trong thư viện chia sẻ
$ ldd yourprogram ... libmysqlclient.so.16 => /usr/lib/libmysqlclient.so.16 [0x00007f9004e7f000] ...3 cho Linux và là Thư viện liên kết động
$ ldd yourprogram ... libmysqlclient.so.16 => /usr/lib/libmysqlclient.so.16 [0x00007f9004e7f000] ...4 [DLL] cho Windows. Trình điều khiển cũng được đóng gói như một phần của các gói
$ ldd yourprogram ... libmysqlclient.so.16 => /usr/lib/libmysqlclient.so.16 [0x00007f9004e7f000] ...5 và
$ ldd yourprogram ... libmysqlclient.so.16 => /usr/lib/libmysqlclient.so.16 [0x00007f9004e7f000] ...6 của Oracle để tải xuống từ OTN. Xem
$ ldd yourprogram ... libmysqlclient.so.16 => /usr/lib/libmysqlclient.so.16 [0x00007f9004e7f000] ...7 và
$ ldd yourprogram ... libmysqlclient.so.16 => /usr/lib/libmysqlclient.so.16 [0x00007f9004e7f000] ...8.
Tổng quan về di chuyển với trình điều khiển thư viện máy khách MySQL cho Oracle
Sử dụng trình điều khiển thư viện máy khách MySQL cho Oracle
Trình điều khiển thư viện máy khách MySQL cho cơ sở dữ liệu Oracle 12C Phát hành 1,
liboramysql
, là một sự thay thế thả vào cho Thư viện máy khách đầu nối thương mại MySQL/C 6.0. Trình điều khiểnliboramysql
thực hiện API tương tự, cho phép các ứng dụng và công cụ dựa trên C được phát triển để MySQL kết nối với cơ sở dữ liệu Oracle. Trình điều khiển có thể được sử dụng để di chuyển các ứng dụng từ cơ sở dữ liệu MySQL sang Oracle với các thay đổi tối thiểu đến mã ứng dụng.Trình điều khiển
liboramysql
sử dụng giao diện Oracle Call [OCI] để kết nối với cơ sở dữ liệu Oracle.Đoạn mã C trong ví dụ 6-1 trình bày cách kết nối với MySQL và cách chèn một hàng vào bảng. Sau khi cập nhật thông tin đăng nhập kết nối, mã này có thể chạy không thay đổi đối với cơ sở dữ liệu của Oracle khi thực thi được liên kết bằng thư viện
liboramysql
, thay vì thư viện ____10.$ ln -s $ORACLE_HOME/lib/liboramysql12.so $ORACLE_HOME/lib/libmysqlclient.so.16
9 library with the$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
0 library.Ví dụ 6-1 Kết nối với MySQL và chèn một hàng mới
Mặc dù lược đồ và dữ liệu cơ sở dữ liệu phải được di chuyển thành Oracle một cách riêng biệt và mặc dù thư viện
liboramysql
không dịch các câu lệnh SQL, lượng nỗ lực đáng kể được bảo tồn khi chuyển sang cơ sở dữ liệu Oracle vì không có thay đổi nào được thực hiện đối với mã ứng dụng.Các ứng dụng C tùy chỉnh có thể sử dụng thư viện
liboramysql
để dễ dàng chuyển sang cơ sở dữ liệu Oracle.Cài đặt và sử dụng đầu tiên của Trình điều khiển thư viện máy khách MySQL cho OracleOracle SQL Developer User's Guide for further details.
Trình điều khiển thư viện máy khách MySQL cho Oracle được cung cấp dưới dạng tệp trong thư viện chia sẻ
$ ldd yourprogram ... libmysqlclient.so.16 => /usr/lib/libmysqlclient.so.16 [0x00007f9004e7f000] ...
3 cho Linux và là Thư viện liên kết động$ ldd yourprogram ... libmysqlclient.so.16 => /usr/lib/libmysqlclient.so.16 [0x00007f9004e7f000] ...
4 [DLL] cho Windows. Trình điều khiển cũng được đóng gói như một phần của các gói$ ldd yourprogram ... libmysqlclient.so.16 => /usr/lib/libmysqlclient.so.16 [0x00007f9004e7f000] ...
5 và$ ldd yourprogram ... libmysqlclient.so.16 => /usr/lib/libmysqlclient.so.16 [0x00007f9004e7f000] ...
6 của Oracle để tải xuống từ OTN. Xem$ ldd yourprogram ... libmysqlclient.so.16 => /usr/lib/libmysqlclient.so.16 [0x00007f9004e7f000] ...
7 và$ ldd yourprogram ... libmysqlclient.so.16 => /usr/lib/libmysqlclient.so.16 [0x00007f9004e7f000] ...
8.Trình điều khiển phải được cài đặt trong cùng thư mục với thư viện chia sẻ ứng dụng khách Oracle, nghĩa là
$ ldd yourprogram ... libmysqlclient.so.16 => /usr/lib/libmysqlclient.so.16 [0x00007f9004e7f000] ...
9 cho Linux và$ ln -s $ORACLE_HOME/lib/liboramysql12.so $ORACLE_HOME/lib/libmysqlclient.so.16
0 cho Windows. Thông thường, bạn phải đặt biến môi trường hệ điều hành [$ ln -s $ORACLE_HOME/lib/liboramysql12.so $ORACLE_HOME/lib/libmysqlclient.so.16
1 trên Linux hoặc$ ln -s $ORACLE_HOME/lib/liboramysql12.so $ORACLE_HOME/lib/libmysqlclient.so.16
2 trên Windows] để bao gồm thư mục cài đặt này.Đối với cài đặt
$ ln -s $ORACLE_HOME/lib/liboramysql12.so $ORACLE_HOME/lib/libmysqlclient.so.16
3, thư viện trình điều khiển được cài đặt trong thư mục$ ln -s $ORACLE_HOME/lib/liboramysql12.so $ORACLE_HOME/lib/libmysqlclient.so.16
4 cho Linux và thư mục$ ln -s $ORACLE_HOME/lib/liboramysql12.so $ORACLE_HOME/lib/libmysqlclient.so.16
5 cho Windows. Đối với các tệp zip máy khách tức thì, thư viện nằm trong thư mục$ ln -s $ORACLE_HOME/lib/liboramysql12.so $ORACLE_HOME/lib/libmysqlclient.so.16
6. Đối với cài đặt RPM của máy khách tức thì, thư viện nằm trong thư mục$ ln -s $ORACLE_HOME/lib/liboramysql12.so $ORACLE_HOME/lib/libmysqlclient.so.16
7 hoặc$ ln -s $ORACLE_HOME/lib/liboramysql12.so $ORACLE_HOME/lib/libmysqlclient.so.16
8 trên các nền tảng Linux 32 bit và 64 bit, tương ứng.Di chuyển ứng dụng MySQL dựa trên C sang cơ sở dữ liệu Oracle liên quan đến các bước sau:
Xác nhận rằng ứng dụng chạy chống lại cơ sở dữ liệu MySQL.
Điều này đảm bảo rằng quá trình di chuyển bắt đầu tại một cơ sở chức năng đã biết.
Thay thế thư viện
$ ln -s $ORACLE_HOME/lib/liboramysql12.so $ORACLE_HOME/lib/libmysqlclient.so.16
9 bằng thư viện$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
0.
Sử dụng trình điều khiển thư viện máy khách MySQL cho Oracle
Trình điều khiển thư viện máy khách MySQL cho cơ sở dữ liệu Oracle 12C Phát hành 1, liboramysql
, là một sự thay thế thả vào cho Thư viện máy khách đầu nối thương mại MySQL/C 6.0. Trình điều khiển liboramysql
thực hiện API tương tự, cho phép các ứng dụng và công cụ dựa trên C được phát triển để MySQL kết nối với cơ sở dữ liệu Oracle. Trình điều khiển có thể được sử dụng để di chuyển các ứng dụng từ cơ sở dữ liệu MySQL sang Oracle với các thay đổi tối thiểu đến mã ứng dụng.
Trình điều khiển liboramysql
sử dụng giao diện Oracle Call [OCI] để kết nối với cơ sở dữ liệu Oracle.
Xem Chương 7, "Tài liệu tham khảo API cho Trình điều khiển thư viện máy khách Oracle MySQL" để biết chi tiết về ánh xạ kiểu dữ liệu và khả năng tương thích API. Thông tin bổ sung cũng có thể được tìm thấy trong Hướng dẫn sử dụng nhà phát triển Oracle SQL.Oracle SQL Developer User's Guide.
Trình điều khiển liboramysql
không dịch các câu lệnh SQL. Bạn phải viết lại các câu lệnh không hợp lệ cho cơ sở dữ liệu Oracle. Bạn có thể làm điều này trực tiếp trong ứng dụng hoặc bằng cách sử dụng Trình dịch SQL. Lược đồ ứng dụng và dữ liệu cũng phải được di chuyển riêng. Nhà phát triển Oracle SQL tự động hóa quá trình này.
Bất cứ khi nào kết nối OCI phiên bản chéo tồn tại cho các phiên bản cũ hơn của cơ sở dữ liệu Oracle, bạn có thể sử dụng trình điều khiển liboramysql
để kết nối với các phiên bản cũ hơn này.
Các phần sau đây thảo luận về các chủ đề này:
Liên kết lại ứng dụng với trình điều khiển liboramysql
Kết nối với cơ sở dữ liệu Oracle
Nền tảng được hỗ trợ
Xử lý lỗi
Toàn cầu hóa
Sự khác biệt mong đợi
Liên kết lại ứng dụng với trình điều khiển liboramysql
Kết nối với cơ sở dữ liệu Oracle
Nền tảng được hỗ trợ
Xử lý lỗi
Toàn cầu hóa
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
0 library.Sự khác biệt mong đợi
Bước cơ bản của việc sử dụng thư viện
liboramysql
là để liên kết lại ứng dụng để sử dụng thư viện mới. Thư việnliboramysql
tương thích với thư viện# mv /usr/lib64/libmysqlclient.so.16 /usr/lib64/libmysqlclient.so.16.backup # ln -s $ORACLE_HOME/lib/liboramysql12.so /usr/lib64/libmysqlclient.so.16
2 từ gói đầu nối thương mại MySQL/C 6.0.2, do đó bạn phải xây dựng và xác minh các ứng dụng nhạy cảm với phiên bản với Trình kết nối thương mại MySQL/C 6.0.2 trước khi chuyển sang cơ sở dữ liệu Oracle.$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
0 library to emulate a MySQL Commercial Connector/C directoryCác tập lệnh cài đặt của phần mềm công cộng được tổng hợp từ mã nguồn thường mong đợi các thành phần MySQL tuân theo cấu trúc thư mục hệ thống được xác định trước. Bạn có thể sử dụng tập lệnh
# mv /usr/lib64/libmysqlclient.so.16 /usr/lib64/libmysqlclient.so.16.backup # ln -s $ORACLE_HOME/lib/liboramysql12.so /usr/lib64/libmysqlclient.so.16
3 trong thư mục# mv /usr/lib64/libmysqlclient.so.16 /usr/lib64/libmysqlclient.so.16.backup # ln -s $ORACLE_HOME/lib/liboramysql12.so /usr/lib64/libmysqlclient.so.16
4 của SDK khách hàng tức thời để đạt được điều này.Tùy thuộc vào ứng dụng, bạn có thể sử dụng một hoặc nhiều cách sau để liên kết lại ứng dụng với thư viện
liboramysql
:mysql_real_connect[c, "localhost/pdborcl", "myun", "mypw", NULL, 0, NULL, 0];
0 environment variable.Xây dựng trực tiếp với thư viện
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
0.Bạn có thể cập nhật các tập lệnh xây dựng của mình để sử dụng thư viện
liboramysql
và xây dựng các ứng dụng tùy chỉnh trực tiếp với thư viện Oracle này.$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
0 library.Sử dụng thư viện
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
0 để mô phỏng thư mục CUNCER/C thương mại MySQLThư viện
# mv /usr/lib64/libmysqlclient.so.16 /usr/lib64/libmysqlclient.so.16.backup # ln -s $ORACLE_HOME/lib/liboramysql12.so /usr/lib64/libmysqlclient.so.16
3 trong SDK máy khách tức thì cho thấy cấu trúc thư mục mô phỏng cài đặt đầu nối thương mại/c của MySQL có thể được tạo. Bạn có thể xây dựng các ứng dụng bằng thư mục mô phỏng này.$ ldd yourprogram ... libmysqlclient.so.16 => /usr/lib/libmysqlclient.so.16 [0x00007f9004e7f000] ...
Sử dụng biến môi trường
mysql_real_connect[c, "localhost/pdborcl", "myun", "mypw", NULL, 0, NULL, 0];
0.$ ln -s $ORACLE_HOME/lib/liboramysql12.so $ORACLE_HOME/lib/libmysqlclient.so.16
Các chương trình được cấu hình sẵn có thể sử dụng biến môi trường
mysql_real_connect[c, "localhost/pdborcl", "myun", "mypw", NULL, 0, NULL, 0];
1 để liên kết với thư việnliboramysql
. Tuy nhiên, việc thay đổi giá trị của biến môi trường này có thể không hoạt động nếu chương trình sử dụng phương thứcmysql_real_connect[c, "localhost/pdborcl", "myun", "mypw", NULL, 0, NULL, 0];
3.$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
Sao chép thư viện
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
0.Thực hiện các bước sau để đổi tên thư viện
liboramysql
thành tên thư viện máy khách MySQL được sử dụng bởi ứng dụng:# mv /usr/lib64/libmysqlclient.so.16 /usr/lib64/libmysqlclient.so.16.backup # ln -s $ORACLE_HOME/lib/liboramysql12.so /usr/lib64/libmysqlclient.so.16
Sử dụng lệnh
mysql_real_connect[c, "localhost/pdborcl", "myun", "mypw", NULL, 0, NULL, 0];6 để xác định thư viện MySQL mà ứng dụng được liên kết:
Kết nối với cơ sở dữ liệu Oracle
Nền tảng được hỗ trợ
mysql_real_connect[c, "localhost/pdborcl", "myun", "mypw", NULL, 0, NULL, 0];
Nền tảng được hỗ trợ
Xử lý lỗi
Toàn cầu hóa
Xử lý lỗi
Toàn cầu hóa
Toàn cầu hóa
Sự khác biệt mong đợi
Sự khác biệt mong đợi
Bước cơ bản của việc sử dụng thư viện liboramysql
là để liên kết lại ứng dụng để sử dụng thư viện mới. Thư viện liboramysql
tương thích với thư viện
# mv /usr/lib64/libmysqlclient.so.16 /usr/lib64/libmysqlclient.so.16.backup # ln -s $ORACLE_HOME/lib/liboramysql12.so /usr/lib64/libmysqlclient.so.162 từ gói đầu nối thương mại MySQL/C 6.0.2, do đó bạn phải xây dựng và xác minh các ứng dụng nhạy cảm với phiên bản với Trình kết nối thương mại MySQL/C 6.0.2 trước khi chuyển sang cơ sở dữ liệu Oracle.