linux环境下sqlite数据库无法创建并连接 返回

SqlSugar 处理完成
23 1954

参考的是.NET操作 Sqlite - SqlSugar 5x - .NET果糖网 (donet5.com)中的例子,在windows环境下没问题,但发布为.net6 linux包,总是报错。

ConsoleApp1.zip

image.png

热忱回答23

  • fate sta fate sta VIP0
    2023/11/30

    字符串改成

    //相对路径
    //ORM建库功能说明:建议不要加目录ORM没办法创建文件夹,如果加目录需要手动建文件夹
    
    public static string ConnectionString= @"DataSource=SqlSugar4xTest.sqlite";


    0 回复
  • fate sta fate sta VIP0
    2023/11/30

    不要用物理路径改成相对路径

    0 回复
  • 包子 包子 VIP0
    2023/11/30

    @fate sta:还是不行。

    image.png


    image.png

    0 回复
  • fate sta fate sta VIP0
    2023/11/30

    image.png

    这个是驱动版本错误,是不是安装有问题 

    0 回复
  • fate sta fate sta VIP0
    2023/11/30

    独立安装 Microsoft.Data.Sqlite 最新版本 然后在试一下

    0 回复
  • 包子 包子 VIP0
    2023/11/30

    @fate sta:这样?不行呢image.png

    0 回复
  • fate sta fate sta VIP0
    2023/11/30

    SqliteTest.rar

    用我写的试一下

    0 回复
  • 包子 包子 VIP0
    2023/11/30

    @fate sta:一样哦image.png

    0 回复
  • fate sta fate sta VIP0
    2023/11/30

    image.png

    0 回复
  • fate sta fate sta VIP0
    2023/11/30

    用原生Open看能不能跑

    0 回复
  • fate sta fate sta VIP0
    2023/11/30

    在我的DEMO上改

    0 回复
  • 包子 包子 VIP0
    2023/11/30

    @fate sta:用指令dotnet publish --configuration Release  --runtime linux-x64 --self-contained true发布的,没这个文件。要自己编译?

    image.png

    0 回复
  • teenty teenty VIP0
    2023/12/1

    同样的问题 

      Data Source=/data/resource_db.db;Mode=ReadWriteCreate;

      Data Source=resource_db;Mode=ReadWriteCreate;

    都不行


    给的建议 //ORM建库功能说明:建议不要加目录ORM没办法创建文件夹,如果加目录需要手动建文件夹

    是只若创建db文件会有问题,若是连接读取已存在的db应该是没问题的,起码win中一直可以


    猜测是linux独有的bug


    0 回复
  • 包子 包子 VIP0
    2023/12/1

    感谢指点。要自己下载sqlite源码,手动编译此文件并放到工程目录才行。


    image.png


    image.png

    0 回复
  • 0 回复
  • 0 回复
  • fate sta fate sta VIP0
    2024/4/30

    centos7.9 用户解决方案


    反馈结果:

    上周五那个centos7.9上sqlite环境问题我找到解决办法了,直接使用源码安装最新版sqlite3后,就能正常使用了,我是参照的这个教程

    https://www.cnblogs.com/huaxiayuyi/p/16770739.html


    //只要原生这个能跑,SqlSugar就能跑
    new Microsoft.Data.Sqlite
    .SqliteConnection("datasource=xxx.db")
    .Open();


    0 回复
  • Freedom Freedom VIP0
    2024/4/30

    @包子:我遇到了跟你类似的问题,有空帮我看一下吗

    0 回复
  • @Freedom

    https://www.cnblogs.com/huaxiayuyi/p/16770739.html

    看一下这个用户按这操作解决了

    0 回复
  • ffsquare ffsquare VIP0
    2024/6/25

    问题主要是缺少链接库,使用的e_sqlite3.so。

    参考下面链接下载最新的sqlite库

    https://www.cnblogs.com/huaxiayuyi/p/16770739.html

    上面的操作都做完后,在你的运行程序的根目录创建软链接

    ln -s /usr/local/sqlite3/lib/libsqlite3.so [YouProgramRoot]/e_sqlite3.so

    这样就可以正常连接数据库了。


    0 回复
  • fate sta fate sta VIP0
    2024/8/29

    OS 7.9 又一个用户解决方案

    https://blog.csdn.net/qq_40817472/article/details/141648765

    0 回复
  • fate sta fate sta VIP0
    2024/9/20

    OS 7.6 又一个用户解决方案

    直接用.NET 8什么不用安装成功了,之前.NET6

    0 回复
  • 疋疋 疋疋 VIP0
    2024/9/25

    遇到同样的问题,服务器镜像是内置的无法更改,服务器环境没法预置安装其他环境只有使用e_sqlite3.so这个文件的方案了,但这个文件要怎么弄出来啊

    0 回复