sourcecode

InvalidRequestError: VARCHAR에는 방언 mysql의 길이가 필요합니다.

copyscript 2023. 10. 1. 21:51
반응형

InvalidRequestError: VARCHAR에는 방언 mysql의 길이가 필요합니다.

12.04를 실행하는 Ubuntu 머신에서 mysql을 사용하여 원격 데이터베이스를 생성하려고 합니다.

원격 로그인이 사용 가능하고 암호가 없는 루트 사용자가 있습니다.서버를 시작했습니다.

산출량

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 스크립트를 사용하여 sqalchemy를 사용하여 원격 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 tables
Base.metadata.create_all(engine)

마지막줄

Base.metadata.create_all(engine)

오류를 반환합니다.

 File "/usr/lib/python2.7/dist-packages/sqlalchemy/sql/compiler.py", line 1699, in visit_string
    return self.visit_VARCHAR(type_)
  File "/usr/lib/python2.7/dist-packages/sqlalchemy/dialects/mysql/base.py", line 1654, in visit_VARCHAR
    self.dialect.name)
InvalidRequestError: VARCHAR requires a length on dialect mysql

이것은 무엇을 의미합니까?mysql에서 VARCHAR 길이를 설정하려면 어떻게 해야 합니까?나는 sqalchemy와 mysql을 매우 처음 접합니다.

길이를 추가String열:

src_address = Column(String(16), index=True)

언급URL : https://stackoverflow.com/questions/16472725/invalidrequesterror-varchar-requires-a-length-on-dialect-mysql

반응형