OperationalError: (OperationalError) (2003, «Не удается подключиться к серверу MySQL на« 192.168.129.139 »(111)») Нет Нет

python mysql sql sqlalchemy

33749 просмотра

1 ответ

Я пытаюсь создать удаленную базу данных, используя mysql на машине с Ubuntu, работающей 12.04.

У него есть пользователь root с включенным удаленным входом и без пароля. Я запустил сервер.

вывод

sudo netstat -tap | grep mysql

шоу

tcp        0      0 localhost:mysql         *:*                     LISTEN      13246/mysqld

Я создал базу данных под названием nwtopology, используя (как уже упоминалось, у пользователя root еще нет пароля).

 create database nwtopology
 grant all privileges on *.* to root@192.168.129.221
 FLUSH PRIVILEGES;

С клиентского компьютера, на котором также работает Ubuntu 12.04, я использую скрипт python для подключения к удаленной базе данных mysql с помощью sqlalchemy.

from pox.core import core
import pox.openflow.libopenflow_01 as of
import re
import datetime
import time
from sqlalchemy import create_engine, ForeignKey
from sqlalchemy import Column, Date, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship, backref
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.sql.expression import exists

log = core.getLogger()
engine = create_engine('mysql://root@192.168.129.139/nwtopology', echo=False)
Base = declarative_base()
Session = sessionmaker(bind=engine)
session = Session()

class SourcetoPort(Base):
    """"""
    __tablename__ = 'source_to_port'
    id = Column(Integer, primary_key=True)
    port_no        = Column(Integer)
    src_address    = Column(String,index=True)

    #-----------------------------------------
    def __init__(self, src_address,port_no):
        """"""
        self.src_address = src_address
        self.port_no     = port_no

Вызов create_engine () завершается ошибкой со следующей ошибкой.

POX 0.1.0 (betta) / Copyright 2011-2013 James McCauley, et al.
Traceback (most recent call last):
  File "/home/karthik/ms_thesis/pox/pox/boot.py", line 89, in do_import2
    __import__(name, globals(), locals())
  File "/home/karthik/ms_thesis/pox/custom/tutorial.py", line 39, in <module>
    Base.metadata.create_all(engine)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/schema.py", line 2515, in create_all
    tables=tables)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 2230, in _run_visitor
    conn = self.contextual_connect(close_with_result=False)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 2340, in contextual_connect
    self.pool.connect(),
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/pool.py", line 210, in connect
    return _ConnectionFairy(self).checkout()
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/pool.py", line 371, in __init__
    rec = self._connection_record = pool._do_get()
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/pool.py", line 697, in _do_get
    con = self._create_connection()
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/pool.py", line 174, in _create_connection
    return _ConnectionRecord(self)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/pool.py", line 256, in __init__
    self.connection = self.__connect()
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/pool.py", line 316, in __connect
    connection = self.__pool._creator()
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/strategies.py", line 80, in connect
    return dialect.connect(*cargs, **cparams)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/engine/default.py", line 280, in connect
    return self.dbapi.connect(*cargs, **cparams)
  File "/usr/lib/python2.7/dist-packages/MySQLdb/__init__.py", line 81, in Connect
    return Connection(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 187, in __init__
    super(Connection, self).__init__(*args, **kwargs2)
OperationalError: (OperationalError) (2003, "Can't connect to MySQL server on '192.168.129.139' (111)") None None

Я не могу понять, почему это происходит? Любая помощь очень ценится?

Автор: liv2hak Источник Размещён: 13.11.2019 11:46

Ответы (1)


13 плюса

Решение

Похоже, mysql настроен на прослушивание только на локальном хосте.

Вы можете проверить это, запустив telnet 192.168.129.139 3306с вашего клиентского компьютера.

Наиболее вероятная причина - mysqld настроен для этого.

Пожалуйста, попробуйте выполнить шаг настройки, описанный здесь :

Отредактируйте /etc/mysql/my.cnfфайл, чтобы настроить MySQL для прослушивания соединений от сетевых узлов, измените директиву bind-address на IP-адрес сервера. Например, замените 192.168.0.5 на соответствующий адрес. Если такой записи нет - раскомментируйте ее или создайте новую строку.

bind-address            = 192.168.0.5

Затем перезапустите mysqld

sudo service mysql restart

Затем проверьте с помощью telnet или запустите приложение еще раз. Также netstat будет иметь вторую запись для mysqld.

Автор: vvladymyrov Размещён: 09.05.2013 11:24
Вопросы из категории :
32x32