gpt4 book ai didi

python - 无效请求错误 : VARCHAR requires a length on dialect mysql

转载 作者:IT老高 更新时间:2023-10-28 21:10:14 29 4
gpt4 key购买 nike

我正在尝试在运行 12.04 的 Ubuntu 机器上使用 mysql 创建一个远程数据库。

它有一个启用远程登录且没有密码的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 脚本使用 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 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 长度?我对 sqlalchemy 和 mysql 很陌生。

最佳答案

将长度添加到您的 String 列:

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

关于python - 无效请求错误 : VARCHAR requires a length on dialect mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16472725/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com