[PYTHON] OperationalError : (OperationalError) (2003, " '192.168.129.139'(111) '의 MySQL 서버에 연결할 수 없음) 없음 없음
PYTHONOperationalError : (OperationalError) (2003, " '192.168.129.139'(111) '의 MySQL 서버에 연결할 수 없음) 없음 없음
12.04를 실행하는 우분투 컴퓨터에서 mysql을 사용하여 원격 데이터베이스를 만들려고합니다.
원격 로그인이 가능하고 암호가없는 root 사용자가 있습니다. 서버를 시작했습니다.
~의 출력
sudo netstat -tap | grep mysql
쇼
tcp 0 0 localhost:mysql *:* LISTEN 13246/mysqld
nwtopology라는 데이터베이스를 만들었습니다 (루트가 아직 암호를 가지고 있지 않음).
create database nwtopology
grant all privileges on *.* to root@192.168.129.221
FLUSH PRIVILEGES;
Ubuntu 12.04를 실행하는 클라이언트 시스템에서 파이썬 스크립트를 사용하여 sqlalchemy를 사용하여 원격 mysql 데이터베이스에 연결합니다.
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
왜 이런 일이 일어나는지 알 수 없습니까? 어떤 도움을 주시면 감사하겠습니다.
해결법
-
==============================
1.mysql이 localhost에서만 수신하도록 구성된 것처럼 보입니다.
mysql이 localhost에서만 수신하도록 구성된 것처럼 보입니다.
클라이언트 시스템에서 telnet 192.168.129.139 3306을 실행하여이를 테스트 할 수 있습니다.
가장 가능성있는 이유 - mysqld가 그렇게하도록 구성되어있다.
여기에 설명 된 구성 단계를 따르십시오.
/etc/mysql/my.cnf 파일을 편집하여 네트워크 호스트의 연결을 대기하도록 MySQL을 구성하고 바인드 주소 지시문을 서버의 IP 주소로 변경하십시오. 예를 들어 192.168.0.5를 적절한 주소로 바꾸십시오. 해당 항목이 없으면 주석 처리를 제거하거나 새 줄을 만듭니다.
bind-address = 192.168.0.5
그런 다음 mysqld를 재시작하십시오.
sudo service mysql restart
그런 다음 텔넷을 사용하여 테스트하거나 응용 프로그램을 다시 실행하십시오. 또한 netstat는 mysqld에 대한 두 번째 항목을 갖는다.
from https://stackoverflow.com/questions/16472175/operationalerror-operationalerror-2003-cant-connect-to-mysql-server-on-1 by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 팬더 데이터 프레임의 음수를 0으로 대체하는 방법 (0) | 2018.11.26 |
---|---|
[PYTHON] SciPy를 사용한 베 지어 커브 피팅 (0) | 2018.11.26 |
[PYTHON] 셀레늄 python find_element_by_class_name () v 2.2에서 작동을 중지 2.21 - '복합 클래스 이름'을 사용할 수 없습니다. (0) | 2018.11.26 |
[PYTHON] Windows의 Python 3에서 "로케일 기본 인코딩"변경 (0) | 2018.11.26 |
[PYTHON] sklearn : TFIDF Transformer : 문서에서 주어진 단어의 tf-idf 값을 얻는 법 (0) | 2018.11.26 |