Всего Python newb здесь.Получение «TypeError: целое число требуется» при попытке подключения к MySQL
Я следую руководству от this page. Но когда я запускаю свой код, я получаю следующую ошибку в консоли.
Traceback (most recent call last):
File "/Users/tejenshrestha/Documents/ProjectAccess/access/trunk/analysis/src/json_xml/Database.py", line 37, in <module>
con = MySQLdb.connect(socket, dbhost, dbuser, dbpass, dbname);
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/MySQLdb/__init__.py", line 81, in Connect
return Connection(*args, **kwargs)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/MySQLdb/connections.py", line 187, in __init__
super(Connection, self).__init__(*args, **kwargs2)
TypeError: an integer is required
Поиск какие-то решения, которые я нашел, что требуется путь UNIX_SOCKET быть включают в себя, что я сделал, как вы можете видеть.
Я также использую XAMPP и путь сокета, который я использую, указан в файле my.cnf XAMPP. У меня MySQL работает, а порт - 3306.
Пожалуйста, помогите с этим noob.
код Питон:
import MySQLdb
import sys
con = None
dbhost = "localhost"
port = "3306"
dbuser = "root"
dbpass = "password"
dbname = "name"
socket = "/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock"
try:
con = MySQLdb.connect(socket, dbhost, dbuser, dbpass, dbname);
cur = con.cursor()
cur.execute("SELECT VERSION()")
data = cur.fetchone()
print "Database version : %s " % data
except MySQLdb.Error, e:
print "Error %d: %s" % (e.args[0],e.args[1])
sys.exit(1)
finally:
if con:
con.close()
я попробовал, что ранее GOT и ошибки, как: 'аргумент 3 должен иметь тип String'. Я попытался переупорядочить порядок параметров, так что сокет и порт (порт, являющийся числом) являются последними параметрами и по-прежнему получают ту же ошибку. Не уверен, правильно ли я упорядочиваю аргументы. –
Хм. Вы не должны изменять порядок аргументов, если вы не помечаете их, поэтому ваш вызов функции будет выглядеть как «MysqlDB.connect (port = 3306, ...)». Поэтому попробуйте пометить аргументы вашей функции своими именами. – BenDundee
Спасибо! Маркировка их сделала это сработало. –