VeighNa量化社区
你的开源社区量化交易平台 | vn.py | vnpy
Member
avatar
加入于:
帖子: 8
声望: 0

我把bars的数据导入mysql,返回时true,但是实际数据库没有数据,这是为什么?代码如下:
bars = []
for index, row in df.iterrows():
dt = row['date']

if isinstance(dt, pd.Timestamp) or hasattr(dt, 'to_pydatetime'):
    dt = dt.to_pydatetime()
# 如果 dt 是 naive datetime(无时区信息),使用 replace 添加时区
if dt.tzinfo is None:
    dt_aware = dt.replace(tzinfo=DB_TZ)
else:
    dt_aware = dt.astimezone(DB_TZ)
bar = BarData(
    symbol = '300036招商银行',
    exchange = Exchange.SZSE,
    datetime = dt_aware,
    interval = Interval.DAILY,
    open_price = row['open'],
    high_price = row['high'],
    low_price = row['low'],
    close_price = row['close'],
    volume = row['volume'],
    open_interest = 0.0,
    gateway_name = "DB"
)
bars.append(bar)

存入数据库

database_manager.save_bar_data(bars)

Member
avatar
加入于:
帖子: 5774
声望: 352

确定配置的是mysql数据库吗

Member
avatar
加入于:
帖子: 8
声望: 0

xiaohe wrote:

确定配置的是mysql数据库吗
是的,完全按视频操作的。不知道为什么,单独用peewee连接是成功的,但是当用程序尝试导入数据的时候,返回True,实际数据没有。

Member
avatar
加入于:
帖子: 8
声望: 0

我上面的尝试的数据,在MySQL里面没有看到,但是在vnpy里面看到了,这是为什么?是说明这个数据在MySQL还是在sqlite?

Member
avatar
加入于:
帖子: 5774
声望: 352

可以贴一下全局配置的截图

Member
avatar
加入于:
帖子: 8
声望: 0

description
请帮忙看看这个配置,应该没错吧

Member
avatar
加入于:
帖子: 5774
声望: 352

database.name是填的sqlite
https://www.vnpy.com/docs/cn/community/info/database.html

Member
avatar
加入于:
帖子: 5
声望: 0

我下载的是社区版,在启动目录的.vntrader里的vn_settingl里增加关于使用数据库的配置:"database.name": "mysql",
"database.database": "vnpy_data",
"database.host": "localhost",
"database.port": 3306,
"database.user": "root",
"database.password": "自己的密码",或者在进入的页面里上方有个配置在那个界面也可以填入这个信息

Member
avatar
加入于:
帖子: 8
声望: 0

from vnpy.trader.setting import SETTINGS

SETTINGS["database.timezone"] = "Asia/Shanghai"
SETTINGS["database.driver"] = "mysql"
SETTINGS["database.name"] = "sqlite"
SETTINGS["database.database"] = "vnpy"
SETTINGS["database.host"] = "127.0.0.1"#"localhost"
SETTINGS["database.port"] = 3306
SETTINGS["database.user"] = "root"

SETTINGS["database.password"] = "xxxxxx"

我现在只有这样配置才不会报错,如果database.name=‘mysql',就会报错为:
OperationalError: (1045, "Access denied for user 'qbsyd'@'localhost' (using password: NO)")
之前还是可以连接的,现在怎么出现权限问题了

Member
avatar
加入于:
帖子: 8
声望: 0

先空着b19312ed5be146fb wrote:

我下载的是社区版,在启动目录的.vntrader里的vn_settingl里增加关于使用数据库的配置:"database.name": "mysql",
"database.database": "vnpy_data",
"database.host": "localhost",
"database.port": 3306,
"database.user": "root",
"database.password": "自己的密码",或者在进入的页面里上方有个配置在那个界面也可以填入这个信息
你这个database:'vnpy_data',是因为数据的schemas建立的时候命名为这个‘vnpy_data'吧?这个我觉得和数据库名字一样就行了,问题还是出在database.name上面了
我也没搞懂,是不是我安装mysql的时候出错了

Member
avatar
加入于:
帖子: 8
声望: 0

补充一下,我用下面方法连接服务器是可以的,说明服务器是存在的。

import peewee

db = peewee.MySQLDatabase("vnpy", user = "root", password = "自己的密码", host = "127.0.0.1", port = 3306)

db.connect()

Member
avatar
加入于:
帖子: 5774
声望: 352

你配置里没填database.password吧

Member
avatar
加入于:
帖子: 8
声望: 0

填了,我只是在这里贴出来的时候取消了

Member
avatar
加入于:
帖子: 5774
声望: 352

确认database.name填的是mysql的话,可以去mysql_database里创建ReconnectMySQLDatabase实例的地方打印入参看看

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】