MySQL соединение с базой данных_Java соединение с базой данных Oracle
MySQL соединение с базой данных_Java соединение с базой данных Oracle

Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.

принцип:

Oracle Data Gateway похож на мост, соединяющий базу данных Oracle и базу данных, не относящуюся к Oracle. В процессе настройки мы часто говорим о трёх важных файлах: первый — tnsnames.ora; второй — lisener.ora; третий — init.ora; Как они работают?

Например, для запроса на подключение к базе данных выберите * from "tablename"@linkdbname; Oracle сначала начинает с linkdbname и использует таблицу dba_db_links для поиска tnsname, которому она принадлежала при создании таблицы, а затем находит sid; соответствующий tnsname в tnsnames.ora;

Затем в lisener.ora найти приложение PROGRAM, соответствующее SID (например: PROGRAM=dg4msql или PROGRAM=dg4odbc), а где найти эту программу, необходимо указать oracle_home (ORACLE_HOME=/opt/oracle/product/gw ); оказаться

После программы Oracle найдет файл init.ora в подкаталоге admin каталога, где находится программа, прочитает внутри него информацию о соединении, а затем свяжется с базой данных, отличной от Oracle, через информацию о соединении; Потому что только поняв этот принцип, следующая конфигурация будет намного проще.

Процесс подключения: oracle - dg4odbc - odbc - mysql, теперь отслеживается oracle - dg4odbc, odbc - mysql также проходит успешно, то текущая проблема скорее всего возникает в dg4odbc - odbc, и на самом деле, сообщенная ошибка верна.

Он находится в init.ora (это файл dg4odbc — посредник odbc)

create database link mysql connect to “demo” identified by “demo” using ‘mytest’;

select “col3” from “demo”@mysql;

Подробное объяснение процесса установки:

1. Установите клиент MySQL или мой сервер. После завершения установки подтвердите, что вы можете подключиться к базе данных MySQL.

rpm –ivh MySQL-shared-community-5.1.38-0.rhel5.x86_64.rpm

rpm –ivh MySQL-devel-community-5.1.38-0.rhel5.x86_64.rpm

rpm –ivh MySQL-client-community-5.1.38-0.rhel5.x86_64.rpm

Подтвердите: mysql -h 123.196.125.7 –uroot –pqcmysql dem

mysql -udem -p -h 123.196.125.7 dem

2. Установите unxiodbc

gunzip unixODBC-2.2.14-p1.tar.gz

tar –xvf unixODBC-2.2.14-p1.tar

cd unixODBC-2.2.14-p1

export CFLAGS=”-DBUILD_REAL_64_BIT_MODE”

# ./configure –enable-gui=no (поскольку пакет qt не установлен, вам необходимо добавить параметр –enable-gui=no)

make

make install

3. Скомпилируйте mysql-connector-odbc????????????????????????????????????????????? ??Настроить ням

yum install mysql-connector-odbc Ver:3.51.26

4. Отредактируйте odbc.ini.

В каталоге установки unixodbc (по умолчанию /usr/local) введите etc/ и отредактируйте файл odbc.ini.

vi /usr/local/etc/odbc.ini

[ODBC Data Sources]

mysql = MySQL ODBC Driver 2.2.14

[mysql]

DRIVER = /usr/lib64/libodbc.so

DATABASE = dem

DESCRIPTION = MySQL ODBC 5.1.5 Connector Sample

PORT = 3306

SERVER = 123.196.125.7

#UID = root

#PWD = qcmysql

CHARSET = lattin1

TRACEFILE = /tmp/odbc-demodsn.trc

TRACE = debug

##Создаем исходный код odbc. Например: имя источника odbc — myodbc3.

vi /home/oracle/.odbc.ini

[ODBC Data Sources]

#mysql = MySQL ODBC Driver 5.1

mysql = MySQL ODBC Driver 2.2.14

[mysql] ——-&gt> mysql для дсн

ДРАЙВЕР = /usr/lib64/libmyodbc5.so 11g использует libmyodbc5.so

DATABASE = dem

DESCRIPTION = MySQL ODBC 5.1.5 Connector

PORT = 3306

SERVER = 123.196.125.7

UID = dem

PWD = dem

#UID = root

#PWD = qcmysql

CHARSET = latin1

TRACEFILE = /tmp/odbc-demodsn.trc

TRACE = off

###CHARSET = gbk

Убедившись, что linux odbc подключен к базе данных mysql, тестовый оператор имеет следующий вид: isql Например: oracle@qc002 admin]$ isql -v mysql

+—————————————+

| Connected! |

| |

| sql-statement |

| help [tablename] |

| quit |

| |

+————————————–

5. Настройте ХС

$ORACLE_HOME/hs/admin/initmysql.ora mysql дляORACLE_SID=mysql

Создайте файл initmysql.ora со следующим содержимым:

HS_FDS_CONNECT_INFO=mysql

HS_FDS_TRACE_LEVEL = debug Когда это «отладка», он используется для проверки отчетов об ошибках, в $ORACLE_HOME/hs/log/ лучше всего отключить его после успеха;

HS_FDS_TRACE_LEVEL=255

HS_FDS_SHAREABLE_NAME =”libodbc.so”

set LD_LIBRARY_PATH=/usr/local/lib:/usr/lib64:/u01/app/oracle/product/11.1.0.6 Указывает, что oracle библиотеки lib должен иметь права доступа;

HS_FDS_QUOTE_IDENTIFIER="`" сообщает odbc игнорировать '

HS_LANGUAGE=AMERICAN_AMERICA.WE8ISO8859P15

set DBCINI=/home/oracle/.odbc.ini

set ORACLE_HOME=/u01/app/oracle/product/11.1.0.6

set HOME=/home/oracle

6. Добавьте в Listener.ora

(SID_DESC =

(ORACLE_HOME = /u01/app/oracle/product/11.1.0.6)

(SID_NAME = mysql)

(PROGRAM = dg4odbc)

(ENVS = LD_LIBRARY_PATH=/usr/local/lib:/usr/lib64:/u01/app/oracle/product/11.1.0.6)

7. Добавьте /u01/app/oracle/product/11.1.0.6/network/admin/tnsname.ora.

Добавить в tnsnames.ora

mysql =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 123.196.125.7)(PORT = 1521))

)

(CONNECT_DATA =

(SID = mysql)

)

(HS = OK)

)

8.

СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ «dem»@’123.196.125.7%’, ИДЕНТИФИЦИРОВАННОГО «dem»; mysql определяет, что пользователь проверен, добавив имя пользователя и адрес хоста;

create database dem character set latin1;

grant all privileges on dem.* to ‘dem’@’123.196.125.7’identified by ‘dem’ with grant option;

flush privileges;

создать ссылку на общедоступную базу данных mysql, подключиться к «dem», идентифицируемому «dem», используя «mysql»; Файл tnsname.ora или mysql

select “col3” from “dem”@mysql;

Чтобы объяснить, моя проблема в том, что Oracle необходимо использовать двойные кавычки в качестве идентификаторов имен полей и таблиц в ссылке на базу данных, но в MySQL это не разрешено (это действительно ошибка). В результате возникает проблема при запросе.

Если вы не верите, вы можете заключить имя поля или таблицы в двойные кавычки в MySQL, чтобы увидеть, есть ли какое-либо сообщение об ошибке.

Войдите в MySQL как пользователь root.,mysql>SET GLOBAL sql_mode = ‘REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE’;

или

vi /etc/rc.d/init.d/mysqld

/usr/bin/mysqld_safe –sql-mode=”REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE” –datadir=”datadir” –socket=”socketfile” \

или непосредственно в Oracle выполните следующий оператор:

SQL>

DECLARE

ret integer;

c integer;

BEGIN

c := DBMS_HS_PASSTHROUGH.OPEN_CURSOR@mysql;

DBMS_HS_PASSTHROUGH.PARSE@mysql(c, ‘SET SESSION SQL_MODE=”ANSI_QUOTES”;’);

ret := DBMS_HS_PASSTHROUGH.EXECUTE_NON_QUERY@mysql(c);

dbms_output.put_line(ret ||’ passthrough output’);

DBMS_HS_PASSTHROUGH.CLOSE_CURSOR@mysql(c);

END;

/

может решить эту проблему;

Заявление об авторских правах: Содержание этой статьи добровольно предоставлено пользователями Интернета, а мнения, выраженные в этой статье, представляют собой только точку зрения автора. Данный сайт лишь предоставляет услуги по хранению информации, не имеет никаких прав собственности и не несет соответствующей юридической ответственности. Если вы обнаружите на этом сайте какое-либо подозрительное нарушение авторских прав/незаконный контент, отправьте электронное письмо, чтобы сообщить. После проверки этот сайт будет немедленно удален.

boy illustration
Как вставить элемент перед указанным ключом в ассоциативный массив в PHP
boy illustration
swagger2 экспортирует API как текстовый документ (реализация Java) [легко понять]
boy illustration
Выбор фреймворка nodejs Express koa egg MidwayJS сравнение NestJS
boy illustration
Руководство по загрузке, установке и использованию SVN «Рекомендуемая коллекция»
boy illustration
Интерфейс PHPforwarding_php отправляет запрос на получение
boy illustration
Создавайте и защищайте связь в реальном времени с помощью SignalR и Azure Active Directory.
boy illustration
ВичатПубличная платформаразвивать(три)——ВичатQR-кодгенерировать&Сканировать кодсосредоточиться на
boy illustration
[Углубленное понимание Java IO] Используйте InputStreamReader для чтения содержимого файла и легкого выполнения задач преобразования текста.
boy illustration
сравнение строк PHP
boy illustration
9 сценариев асинхронного сбоя @Async
boy illustration
Эффективная обработка запланированных задач: углубленное изучение секретов библиотеки APScheduler на Python
boy illustration
Рекомендации по облегченному артефакту развязки внутренних компонентов Spring Event (событие Spring)
boy illustration
Go: Лесоруб-лесоруб на колесах Введение
boy illustration
Основы серверной разработки: технология кэширования, которую должен освоить каждый программист
boy illustration
Java Advanced Collections TreeSet: что это такое и зачем его использовать?
boy illustration
Оказывается, у команды go build столько знаний
boy illustration
Node.js
boy illustration
Анализ исходного кода, связанный с запланированными задачами версии ruoyi-vue (7), то есть анализ модуля ruoyi-quartz.
boy illustration
Вход в систему с помощью скан-кода WeChat (1) — объяснение процесса входа в систему со скан-кодом, получение авторизованного QR-кода для входа.
boy illustration
HikariPool-1 — обнаружено отсутствие потока или скачок тактовой частоты, а также конфигурация источника данных Hikari.
boy illustration
Сравнение высокопроизводительной библиотеки JSON Go
boy illustration
Простое руководство по извлечению аудио с помощью FFmpeg
boy illustration
Подсчитайте количество строк кода в проекте
boy illustration
Spring Boot элегантно реализует многопользовательскую архитектуру: концепции и практика
boy illustration
Как интегрировать функцию оповещения корпоративного WeChat в систему планирования xxl-job
boy illustration
SpringBoot интегрирует отправку сообщений через веб-сокет в режиме реального времени
boy illustration
Краткий анализ основных библиотек журналов в Go: узнайте, как интегрировать функции вращения и резки бревен на уровне проектирования.
boy illustration
Реализация API-шлюза с нуля-Golang
boy illustration
[Разговорный сайт] Как Springboot получает значения свойств из файлов конфигурации yml или свойств
boy illustration
Spring Boot — синхронные события приложения против асинхронных событий публикации и подписки. Практический бой