2015-07-07 2 views
0

Я успешно установил xampp на оба компьютера. Когда я пытаюсь подключиться к локальному ПК ПК 1, когда я нахожусь на ПК 1 через python, все работает нормально. Но когда я пытаюсь подключиться к ПК 2 xampp sql, я не могу получить соединение. Я сопоставил xampp, чтобы принимать подключения с других устройств в LAN, и я могу получить доступ к нему совершенно через мой веб-браузер, но не из моей программы python.Подключиться к базе данных lan с помощью python

Это мой код:

def GetResults(self): 
     try: 
      cnx = mysql.connector.connect(user='test', password= '123456', host='paraliass-pc', port='3306', database='test') 
      cursor = cnx.cursor() 
     except mysql.connector.Error as err: 
      if err.errno == errorcode.ER_ACCESS_DENIED_ERROR: 
       print("Something is wrong with your username or password") 
       self.statusBar().showMessage("Wrong Username or Password") 
      elif err.errno == errorcode.ER_BAD_DB_ERROR: 
       print("Database does not exist") 
       self.statusBar().showMessage("Database does not exist") 

     if cnx :    
      print("Connected") 
      self.statusBar().showMessage("Connected") 

     cursor = cnx.cursor() 
     cursor.execute("SELECT * FROM STAFF WHERE NAME LIKE '" + self.textEdit.text() + "%' OR SURNAME LIKE '" + self.textEdit.text() + "%'" + "OR RANK LIKE '" + self.textEdit.text() + "%'") 

Я получаю эту ошибку, которая не отображается, когда я подключаю к тому же компьютере я бегу программу на

UnboundLocalError: local variable 'cnx' referenced before assignment 

Кстати, если я изменяю имя пользователя или пароль на localhost, чтобы быть неправым, я получаю ту же ошибку.

+0

Потому что cnx определяется только в том случае, если соединение действительно выполняется. Вероятно, вы должны вернуться из метода после регистрации ошибки. –

ответ

0

Вы должны рассмотреть возможность предоставления привилегий для удаленного подключения к MySQL и привязки MySQL к использованию IP-адреса и порта по вашему выбору. По умолчанию MySQL будет только слушать подключения через localhost/socket.

+0

@dmarvelous Как мне это сделать? с веб-страницы phpmyadmin? Я отредактировал файл конфигурации и добавил «Разрешить от всех», но все равно ничего –

+0

К сожалению, это не вопрос, связанный с программированием, и его следует задать на сервере. Однако с этим взгляните на меняющийся адрес привязки mysql в my.cnf – drmarvelous

+0

@dmarvelous Я chnaged ip к: 192.168.1.6 и раскоментировал раздел, но все равно ничего. Я не могу понять, в чем проблема ... –

Смежные вопросы