SQLAlchemy 创建 MySQL 表时遇到问题 sqlalchemy.exc.InternalError

0 投票
1 回答
1255 浏览
提问于 2025-04-18 08:09

我正在学习SQL Alchemy的教程,但在创建表的时候遇到了麻烦。我收到了这个错误(完整的错误信息可以在这里查看)

sqlalchemy.exc.InternalError: (InternalError) (1, "无法创建/写入文件 '/mysqltmp/#sql_a5f_0.MYI' (错误代码: 13)") 'DESCRIBE ``users`` ()

当我尝试运行以下代码时

from sqlalchemy import create_engine, MetaData
from ers_config import database_connect_string
from sqlalchemy.orm import sessionmaker
from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    name = Column(String)
    fullname = Column(String)
    password = Column(String)

    def __repr__(self):
       return "<User(name='%s', fullname='%s', password='%s')>" % (
                            self.name, self.fullname, self.password)

ed_user = User(name='ed', fullname='Ed Jones', password='edspassword')
my_engine = create_engine(database_connect_string)
Session = sessionmaker(bind=my_engine)
my_session = Session()
Base.metadata.create_all(my_engine)

无论我是否在虚拟环境中,这个错误都会出现。

1 个回答

0

这个问题是因为我最近移动了My SQL的临时文件夹。我的/tmp文件夹很快就被其他操作填满了,所以我把它移动到了/etc/my.cnf文件里指定的一个文件夹。

我在文件底部加了一行,内容是:tmpdir=/home/arguably/tmp/mysqltmp

然后,出现错误是因为那个文件的权限设置不对。

我使用了chmod 1777 /home/arguably/tmp/mysqltmp命令,问题就解决了。

这些信息是我在网上查找资料时得到的,我还是不太明白1777命令中第一个1是用来干嘛的。

撰写回答