GardenHamster / GenshinPray

一个.net core编写的模拟原神抽卡的api,根据米哈游公布的概率模拟生成十连或单抽结果图,并返回图片地址
MIT License
146 stars 22 forks source link

自动建表失败 #23

Closed Sunosay closed 2 years ago

Sunosay commented 2 years ago
[zyw@VM-16-4-centos GenshinPray]$ sudo dotnet GenshinPray.dll --launch-profile Production --urls http://0.0.0.0:8099
2022-09-30 14:25:27,002 [1] INFO  ConsoleLog - 日志配置完毕...
2022-09-30 14:25:27,012 [1] INFO  ConsoleLog - 读取配置文件...
2022-09-30 14:25:27,013 [1] INFO  ConsoleLog - 初始化数据库...
2022-09-30 14:25:27,920 [1] INFO  ConsoleLog - 自动建表失败...
2022-09-30 14:25:27,923 [1] ERROR ConsoleLog - The given key '29793' was not present in the dictionary.
System.Collections.Generic.KeyNotFoundException: The given key '29793' was not present in the dictionary.
   at SqlSugar.AdoProvider.GetDataReader(String sql, SugarParameter[] parameters)
   at SqlSugar.AdoProvider.SqlQuery[T,T2,T3,T4,T5,T6,T7](String sql, Object parameters)
   at SqlSugar.AdoProvider.SqlQuery[T](String sql, SugarParameter[] parameters)
   at SqlSugar.AdoProvider.SqlQuery[T](String sql, Object parameters)
   at SqlSugar.DbMaintenanceProvider.GetDataBaseList(SqlSugarClient db)
   at SqlSugar.MySqlDbMaintenance.CreateDatabase(String databaseName, String databaseDirectory)
   at SqlSugar.DbMaintenanceProvider.CreateDatabase(String databaseDirectory)
   at GenshinPray.Dao.DBClient.CreateDB() in D:\project\GenshinPray\GenshinPray\Dao\DBClient.cs:line 22
2022-09-30 14:25:27,923 [1] INFO  ConsoleLog - 数据库初始化完毕...
2022-09-30 14:25:27,938 [1] INFO  ConsoleLog - 正在初始化定时任务...
2022-09-30 14:25:28,044 [1] INFO  ConsoleLog - 正在初始化定时清理任务...
crit: Microsoft.AspNetCore.Hosting.Diagnostics[6]
      Application startup exception
      MySql.Data.MySqlClient.MySqlException (0x80004005): Table 'genshinpray.goods' doesn't exist
         at SqlSugar.AdoProvider.GetDataReader(String sql, SugarParameter[] parameters)
         at SqlSugar.QueryableProvider`1.GetData[TResult](KeyValuePair`2 sqlObj)
         at SqlSugar.QueryableProvider`1._ToList[TResult]()
         at SqlSugar.QueryableProvider`1.ToList()
         at GenshinPray.Dao.GoodsDao.getPermGoods(YSGoodsType goodsType, YSRareType rareType) in D:\project\GenshinPray\GenshinPray\Dao\GoodsDao.cs:line 55
         at GenshinPray.Service.GoodsService.LoadYSPrayItem() in D:\project\GenshinPray\GenshinPray\Service\GoodsService.cs:line 63
         at GenshinPray.Startup.Configure(IApplicationBuilder app, IWebHostEnvironment env) in D:\project\GenshinPray\GenshinPray\Startup.cs:line 112
         at System.RuntimeMethodHandle.InvokeMethod(Object target, Span`1& arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
         at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
         at Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(Object instance, IApplicationBuilder builder)
         at Microsoft.AspNetCore.Hosting.ConfigureBuilder.<>c__DisplayClass4_0.<Build>b__0(IApplicationBuilder builder)
         at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.<>c__DisplayClass15_0.<UseStartup>b__1(IApplicationBuilder app)
         at Microsoft.AspNetCore.Mvc.Filters.MiddlewareFilterBuilderStartupFilter.<>c__DisplayClass0_0.<Configure>g__MiddlewareFilterBuilder|0(IApplicationBuilder builder)
         at Microsoft.AspNetCore.HostFilteringStartupFilter.<>c__DisplayClass0_0.<Configure>b__0(IApplicationBuilder app)
         at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken)
Unhandled exception. MySql.Data.MySqlClient.MySqlException (0x80004005): Table 'genshinpray.goods' doesn't exist
   at SqlSugar.AdoProvider.GetDataReader(String sql, SugarParameter[] parameters)
   at SqlSugar.QueryableProvider`1.GetData[TResult](KeyValuePair`2 sqlObj)
   at SqlSugar.QueryableProvider`1._ToList[TResult]()
   at SqlSugar.QueryableProvider`1.ToList()
   at GenshinPray.Dao.GoodsDao.getPermGoods(YSGoodsType goodsType, YSRareType rareType) in D:\project\GenshinPray\GenshinPray\Dao\GoodsDao.cs:line 55
   at GenshinPray.Service.GoodsService.LoadYSPrayItem() in D:\project\GenshinPray\GenshinPray\Service\GoodsService.cs:line 63
   at GenshinPray.Startup.Configure(IApplicationBuilder app, IWebHostEnvironment env) in D:\project\GenshinPray\GenshinPray\Startup.cs:line 112
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Span`1& arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(Object instance, IApplicationBuilder builder)
   at Microsoft.AspNetCore.Hosting.ConfigureBuilder.<>c__DisplayClass4_0.<Build>b__0(IApplicationBuilder builder)
   at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.<>c__DisplayClass15_0.<UseStartup>b__1(IApplicationBuilder app)
   at Microsoft.AspNetCore.Mvc.Filters.MiddlewareFilterBuilderStartupFilter.<>c__DisplayClass0_0.<Configure>g__MiddlewareFilterBuilder|0(IApplicationBuilder builder)
   at Microsoft.AspNetCore.HostFilteringStartupFilter.<>c__DisplayClass0_0.<Configure>b__0(IApplicationBuilder app)
   at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host)
   at GenshinPray.Program.Main(String[] args) in D:\project\GenshinPray\GenshinPray\Program.cs:line 16
已放弃

mysql版本是8.0.30 自己试图创建了goods表,authorize表,后半截没有报错,但是authorize表中并无数据

日志为

2022-09-30 14:14:03,982 [1] INFO  ConsoleLog - 日志配置完毕...
2022-09-30 14:14:03,985 [1] INFO  ConsoleLog - 读取配置文件...
2022-09-30 14:14:03,985 [1] INFO  ConsoleLog - 初始化数据库...
2022-09-30 14:14:05,011 [1] INFO  ConsoleLog - 自动建表失败...
2022-09-30 14:14:05,014 [1] ERROR ConsoleLog - The given key '29793' was not present in the dictionary.
System.Collections.Generic.KeyNotFoundException: The given key '29793' was not present in the dictionary.
   at SqlSugar.AdoProvider.GetDataReader(String sql, SugarParameter[] parameters)
   at SqlSugar.AdoProvider.SqlQuery[T,T2,T3,T4,T5,T6,T7](String sql, Object parameters)
   at SqlSugar.AdoProvider.SqlQuery[T](String sql, SugarParameter[] parameters)
   at SqlSugar.AdoProvider.SqlQuery[T](String sql, Object parameters)
   at SqlSugar.DbMaintenanceProvider.GetDataBaseList(SqlSugarClient db)
   at SqlSugar.MySqlDbMaintenance.CreateDatabase(String databaseName, String databaseDirectory)
   at SqlSugar.DbMaintenanceProvider.CreateDatabase(String databaseDirectory)
   at GenshinPray.Dao.DBClient.CreateDB() in D:\project\GenshinPray\GenshinPray\Dao\DBClient.cs:line 22
2022-09-30 14:14:05,014 [1] INFO  ConsoleLog - 数据库初始化完毕...
2022-09-30 14:14:05,037 [1] INFO  ConsoleLog - 正在初始化定时任务...
2022-09-30 14:14:05,107 [1] INFO  ConsoleLog - 正在初始化定时清理任务...
info: Microsoft.Hosting.Lifetime[14]
      Now listening on: http://0.0.0.0:8099
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Production
info: Microsoft.Hosting.Lifetime[0]
      Content root path: /data/GenshinPray
GardenHamster commented 2 years ago

数据库链接字符串后面加一下SslMode=None;

GardenHamster commented 2 years ago

Data Source=127.0.0.1;port=3306;Initial Catalog=genshinpray;uid=root;pwd=123456;CharSet=utf8mb4;SslMode=None;

Sunosay commented 2 years ago

数据库链接字符串后面加一下SslMode=None; 加了,没什么用 (:з」∠)

"ConnectionString": "Data Source=127.0.0.1;port=3306;Initial Catalog=genshinpray;uid=root;pwd=123456;CharSet=utf8mb4;SslMode=None;",

GardenHamster commented 2 years ago

先确认一下改的是不是appsettings.Production.json这个文件

Sunosay commented 2 years ago

先确认一下改的是不是appsettings.Production.json这个文件

确定是这个。我密码中实际上是带了特殊符号 . 这个会影响字符串的判断吗

另外因为sudo yum install aspnetcore-runtime-6.0 我服务器上是报找不到,所以我直接是用aspnetcore-runtime-6.0.0-x64.rpm 进行安装,除此之外想不到还有哪里可能存在的变数了(:з」∠)

GardenHamster commented 2 years ago

你拉一下v0.6.2分支的然后发布试试,可能是包的问题

Sunosay commented 2 years ago

你拉一下v0.6.2分支的然后发布试试,可能是包的问题

好的感谢 我等会试试

Sunosay commented 2 years ago

你拉一下v0.6.2分支的然后发布试试,可能是包的问题

成功了 然后我才发现authorize表中数据是自己建立的(早知道瞎子也可以上github) 感谢大佬 祝你国庆假期快乐(^∀^●)