с использованием PYTHON> = 3,6; здесь это работает следующим образом:
OBS .: здесь я использую 2 типа баз данных ORACLE 12g и MYSQL 5.6; и главный сервер - ORACLE, mysql используется только некоторыми частями программного обеспечения ... тогда ... код моего класса соединения:
здесь идет код из шеллскрипта ... тогда я просто привожу строку, чтобы показать здесь ...
myp3 = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ПАРОЛЬ MYSQL XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
import cx_Oracle
import MySQLdb
import MySQLdb.cursors
class oracle(object):
def __init__(self, serverORACLE=3, MYSQL='N', serverMYSQL=3):
## ORACLE connection!
try:
if serverORACLE == 1:
self.db = cx_Oracle.connect('sys/[xxxxPASSWORDxxxxx]@[xxxxxIP/HOSTxxxxxx]:1521/DATABASE_X')
print('ORACLE [ system/[xxxxPASSWORDxxxxx]@[xxxxxIP/HOSTxxxxxx]:1521 ] ===> CONNECTED')
if serverORACLE == 2:
self.db = cx_Oracle.connect('system/[xxxxPASSWORDxxxxx]@[xxxxxIP/HOSTxxxxxx]:1521/DATABASE_X')
print('ORACLE [ system/[xxxxPASSWORDxxxxx]@[xxxxxIP/HOSTxxxxxx]:1521 ] ===> CONNECTED')
if serverORACLE == 3:
self.db = cx_Oracle.connect('userLEVEL1/[xxxxPASSWORDxxxxx]@[xxxxxIP/HOSTxxxxxx]:1521/DATABASE_X')
print('ORACLE [ userLEVEL1/[xxxxPASSWORDxxxxx]@[xxxxxIP/HOSTxxxxxx]:1521 ] ===> CONNECTED')
if serverORACLE == 4:
self.db = cx_Oracle.connect('userLEVEL2/[xxxxPASSWORDxxxxx]@[xxxxxIP/HOSTxxxxxx]:1521/DATABASE_X')
print('ORACLE [ userLEVEL2/[xxxxPASSWORDxxxxx]@[xxxxxIP/HOSTxxxxxx]:1521 ] ===> CONNECTED')
self.cursor = self.db.cursor()
except Exception as e:
count = 0
S1 = ''
for W in str(e):
S1+=W
count+=1
if count >= 40:
S1+=' \n'
count = 0
print('\n\n ORACLE DATABASE ===> CONECTION FAILED!',
'\n error - module: ', S1)
##conexao MYSQL
if MYSQL=='S':
try:
if serverMYSQL == 1:
self.dbMySQL = MySQLdb.connect(user='root', host='XXXXXX HOST XXXXX', use_unicode=True, cursorclass=MySQLdb.cursors.DictCursor,
charset='utf8', port=3306, passwd=myp3, db='XXXX')
print('MySQL [ root / XXXXXX HOST XXXXX:3306 ] ===> CONNECTED')
if serverMYSQL == 2:
self.dbMySQL = MySQLdb.connect(user='XXXX USER XXXXX', host='XXXXXX HOST XXXXX', use_unicode=True, cursorclass=MySQLdb.cursors.DictCursor,
charset='utf8', port=3306, passwd=myp3, db='XXXX')
print('MySQL [ XXXX USER XXXXX / XXXXXX HOST XXXXX:3306 ] ===> CONNECTED')
self.cursorMYSQL = self.dbMySQL.cursor()
except Exception as e:
count = 0
S1 = ''
for W in str(e):
S1+=W
count+=1
if count >= 40:
S1+=' \n'
count = 0
print('\n\n MYSQL DATABASE ===> CONECTION FAILED!',
'\n error - module: ', S1)
"" "