我在OS X 10.9上运行mariadb数据库,并尝试通过python连接到它。
如果我尝试此代码,它运行良好
import mysql.connector as mariadb
if __name__ == "__main__":
mariadb_connection = mariadb.connect(user='root', database='account_balances')
cursor = mariadb_connection.cursor()
我可以事件插入一些记录
但是如果我尝试以下操作
class account(object):
_logging_to_db_enabled = False
_database_object = None
_database_cursor = None
def __init__(self):
pass
def enable_logging_to_db(self):
try:
self._database_object = mariadb.connect(mariadb.connect(user='root', database='account_balances'))
self._logging_to_db_enabled = True
except self._database_object.Error as error:
print ("Opening DB error: {}".format(error))
self._database_cursor = self._database_object.cursor()
if __name__ == "__main__":
testobject = account()
testobject.enable_logging_to_db()
我收到此错误
File "....", line 22, in enable_logging_to_db
self._database_cursor = self._database_object.cursor()
File "<pathname_deleted>", line 1372, in cursor
raise errors.OperationalError("MySQL Connection not available.")
mysql.connector.errors.OperationalError: MySQL Connection not available.
有人知道为什么这在主要对象中工作而不是在对象中工作吗?
因为您有一个拼写错误/复制和粘贴错误:
self._database_object = mariadb.connect(mariadb.connect(user='root', database='account_balances'))
它应该是:
self._database_object = mariadb.connect(user='root', database='account_balances')