appsmith安装手记:4.Sql server数据库容器安装

appsmith安装好,那就可以看是练练手。
数据当然是来自数据库,那就连接局域网中现成的一台数据库服务器试试,但是连接数据库的时候一直错误。

找到/home/appsmith/backend 目录下的日志,看到了错误:
[root@localhost backend]# ls
backend-29a34aa6233c.log  starting_page_init.log

Failed to initialize pool: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]". ClientConnectionId:f04af734-f327-4959-93af-3f6f051284c2
Exception occurred while creating connection pool. One or more arguments in the datasource configuration may be invalid. Please check your datasource configuration.
一阵查询,在微软文档上找到了这个错误描述。
在 encrypt 属性为 true 且 trustServerCertificate 属性为 false 的情况下,如果连接字符串中的服务器名称与 TLS 证书中的服务器名称不符,则会出现以下错误:The driver couldn't establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "java.security.cert.CertificateException: Failed to validate the server name in a certificate during Secure Sockets Layer (SSL) initialization." 。 在版本 7.2 及以上版本中,驱动程序在 TLS 证书的服务器名称最左边的标签中支持通配符模式匹配。

很显然这个回答方向不对,一堆废话,appsmith不至于如此菜!
回头去看appsmith的文档,原来如此!appsmith根本不支持这样的数据库连接方式。本地部署时它连接数据有三种方式
**********************************
Connect to Local Datasource
This page describes how to connect a database or API that is hosted locally on the same machine as your Appsmith instance.

Datasource on localhost: There are two methods:
1.ngrok(Recommended): To connect to a local datasource on a self-hosted or an Appsmith cloud instance, expose the datasource via ngrok. For directions, see ngrok.
2.host.docker.internal: This method is only for self-hosted users for connecting from the Docker container to a datasource on localhost. This is for development purposes and does not work in a production environment outside of Docker Desktop. For directions, see host.docker.internal.
3.Datasource in Docker container: This guide is only for self-hosted users for connecting to a datasource in a Docker container. For directions, see Datasource in Docker
**********************************
ngrok不喜欢,host.docker.internal我也不喜欢,幸好还有第三种方式,连接另外一个容器中的数据源。

那就开始安装sql server容器。
步骤一.创建数据存储目录,希望创建的数据库文件不要因为删除容器而被失误删除
[root@localhost home]# mkdir /home/sql_db_files

步骤二:下载镜像
[root@localhost home]# docker pull mcr.microsoft.com/mssql/server:2022-latest

步骤三:创建容器
[root@localhost home]# docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=2024@Passw0rd" \
   -v  /home/sql_db_files:/var/opt/mssql \
   -p 1433:1433 --name mssql --hostname mssql2022 \
   -e "MSSQL_PID=Express" \
   -e "MSSQL_COLLATION=Chinese_PRC_BIN" \
   -e "TZ=Asia/Shanghai" \
   -d \
   mcr.microsoft.com/mssql/server:2022-latest

参数说明:
ACCEPT_EULA confirms your acceptance of the End-User Licensing Agreement.
MSSQL_SA_PASSWORD is the database system administrator (userid = 'sa') password used to connect to SQL Server once the container is running.   这个SA密码必须要符合复杂度要求
MSSQL_PID is the Product ID (PID) or Edition that the container will run with. Acceptable values:
Developer : This will run the container using the Developer Edition (this is the default if no MSSQL_PID environment variable is supplied)
Express : This will run the container using the Express Edition
Standard : This will run the container using the Standard Edition
Enterprise : This will run the container using the Enterprise Edition
EnterpriseCore : This will run the container using the Enterprise Edition Core

步骤四:查看容器安装结果
[root@localhost home]# docker ps -a
CONTAINER ID   IMAGE                                        COMMAND                  CREATED          STATUS                      PORTS                                                                      NAMES
19472a5fbb97   mcr.microsoft.com/mssql/server:2022-latest   "/opt/mssql/bin/perm…"   45 seconds ago   Exited (1) 44 seconds ago                                                                              mssql
29a34aa6233c   appsmith/appsmith-ce                         "/opt/appsmith/entry…"   7 days ago       Up 7 days (healthy)         0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   appsmith
ba7d6e626f06   hello-world                                  "/hello"                 2 weeks ago      Exited (0) 2 weeks ago                                                                                 practical_hofstadter
2948ab27c7ce   hello-world                                  "/hello"                 2 weeks ago      Exited (0) 2 weeks ago                                                                                 cool_ritchie
[root@localhost home]# 
看起来不对劲,看看日志,原来处在目录权限上。
[root@localhost docker]# docker logs -f --until=60s mssql
SQL Server 2022 will run as non-root by default.
This container is running as user mssql.
To learn more visit https://go.microsoft.com/fwlink/?linkid=2099216.
/opt/mssql/bin/sqlservr: Error: The system directory [/.system] could not be created. File: LinuxDirectory.cpp:420 [Status: 0xC0000022 Access Denied errno = 0xD(13) Permission denied]

修改存放数据目录的权限设置:
[root@localhost docker]# chmod 777 /home/sql_db_files

步骤五: 重新安装容器
[root@localhost docker]# [root@localhost home]# docker run -d --name mssql --hostname  mssql\
-v  /home/sql_db_files:/var/opt/mssql \
-p 1433:1433  \
-e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=2024@Passw0rd" \
-e "TZ=Asia/Shanghai" \
-e "MSSQL_PID=Express" \
-e "MSSQL_COLLATION=Chinese_PRC_BIN" \
mcr.microsoft.com/mssql/server:2022-latest


docker: Error response from daemon: Conflict. The container name "/mssql" is already in use by container "19472a5fbb977a9b707b6f4b5895d989370b61007f7a9f19f96265ad48c1e2a2". You have to remove (or rename) that container to be able to reuse that name.
See 'docker run --help'.
刚才没有安装成功导致,那就删除
[root@localhost docker]# docker rm -f mssql

重新再安装后没出错,再查看,终于成功了
不可否认,这Docker安装速度快的要死,比起在操作系统上安装sql server 不知道要快多少倍。

[root@localhost docker]# docker ps -a
CONTAINER ID   IMAGE                                        COMMAND                  CREATED          STATUS                   PORTS                                                                      NAMES
b5b29ae870fd   mcr.microsoft.com/mssql/server:2022-latest   "/opt/mssql/bin/perm…"   25 seconds ago   Up 24 seconds            0.0.0.0:1433->1433/tcp, :::1433->1433/tcp                                  mssql
29a34aa6233c   appsmith/appsmith-ce                         "/opt/appsmith/entry…"   7 days ago       Up 7 days (healthy)      0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   appsmith
ba7d6e626f06   hello-world                                  "/hello"                 2 weeks ago      Exited (0) 2 weeks ago                                                                              practical_hofstadter
2948ab27c7ce   hello-world                                  "/hello"                 2 weeks ago      Exited (0) 2 weeks ago                                                                              cool_ritchie

步骤六:连接数据库,修改sa密码
[root@localhost docker]# docker exec -it mssql "bash"
mssql@mssql2022:/$ /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P 2024@Passw0rd
1> alter login sa with password 2025@Passw0rd
2> ;
3> quit

mssql@mssql2022:/$ exit
exit

可以使用sql server 管理控制台成功连接容器中的数据库了,但是在appsmith中连接时没有反应,错误日志为:连接错误
[2024-01-30 00:25:52,186] userEmail=tt@app.com, sessionId=b99a2476-5c35-4a71-9e8e-25c9c3292cfa, thread=boundedElastic-38, requestId=ea262c1d-722b-4176-aac7-4b062d7066b6 - Operator called default onErrorDropped
com.appsmith.external.exceptions.pluginExceptions.AppsmithPluginException: Exception occurred while creating connection pool. One or more arguments in the datasource configuration may be invalid. Please check your datasource configuration.
看不出所以然, 真是路漫漫啊!
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/360313.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【HarmonyOS应用开发】ArkUI 开发框架-基础篇-第二部分(八)

八、Column&Row组件的使用 概述 一个丰富的页面需要很多组件组成,那么,我们如何才能让这些组件有条不紊地在页面上布局呢?这就需要借助容器组件来实现。 容器组件是一种比较特殊的组件,它可以包含其他的组件,而…

Qt 调用系统键盘

Wow64DisableWow64FsRedirection(&pvoid) 函数用于禁用 32 位 Windows 程序对文件系统重定向的支持。它将禁用文件系统重定向,以便在运行 32 位应用程序时,可以访问 64 位系统目录。pvoid 是一个指向先前启用的文件系统重定向状态的指针。 构建了要…

《动手学深度学习(PyTorch版)》笔记4.8

注:书中对代码的讲解并不详细,本文对很多细节做了详细注释。另外,书上的源代码是在Jupyter Notebook上运行的,较为分散,本文将代码集中起来,并加以完善,全部用vscode在python 3.9.18下测试通过。…

文本三剑客之grep

目录 一、正则表达式 1、什么是正则表达式 2、元字符 3、扩展正则表达式元字符 二、grep 一、正则表达式 1、什么是正则表达式 REGEXP: Regular Expressions,由一类特殊字符及文本字符所编写的模式,其中有些字符(元字符&#…

DevOps落地笔记-04|看板方法:成员工作内容清楚明白方法

上一讲主要介绍了用户故事以及如何通过讲好用户故事解决团队沟通的问题,争取达成共识。当团队都理解了用户需求之后,就进入到后续的产品设计、代码开发、功能测试、直到生产部署等环节了。作为软件从业人员都知道,后续的步骤不太可能一帆风顺…

初探分布式链路追踪

本篇文章,主要介绍应用如何正确使用日志系统,帮助用户从依赖、输出、清理、问题排查、报警等各方面全面掌握。 可观测性 可观察性不单是一套理论框架,而且并不强制具体的技术规格。其核心在于鼓励团队内化可观察性的理念,并确保由…

Python 报错 ERROR: No matching distribution found for xxx

文章目录 1. 报错2. 可能的解决方法3. 参考 1. 报错 例如在安装 Python 包的时候,有时会出现这种情况: ERROR: Could not find a version that satisfies the requirement bokeh (from versions: none) ERROR: No matching distribution found for bok…

人工视觉仍然需要图像采集卡

最初,图像采集卡被用作模拟视频数字转换器和图像缓冲器,但如今它们能够执行复杂的任务,例如图像处理。图像采集卡的设计不断发展,旨在提高系统性能并减少计算机处理需求。 除了图像采集之外,图像采集卡还执行机器视觉…

【正点原子STM32】IWDG 独立看门狗(简介、工作原理、IWDG寄存器配置操作步骤、IWDG溢出时间计算、IWDG配置步骤、独立看门狗流程)

一、IWDG简介 IWDG有什么作用? 二、IWDG工作原理 三、IWDG框图 四、IWDG寄存器 键寄存器(IWDG_KR)预分频器寄存器 (IWDG_PR)重装载寄存器(IWDG_RLR) 状态寄存器(IWDG_SR) 寄存器配置操作步骤 五、IWDG溢出时间计算 IWDG溢出时间计算公式…

幻兽帕鲁服务器Palworld游戏怎么更新?

自建幻兽帕鲁服务器进入Palworld游戏提示“您正尝试加入的比赛正在运行不兼容的游戏版本,请尝试升级游戏版本”什么原因?这是由于你的客户端和幻兽帕鲁服务器版本不匹配,如何解决?更新幻兽帕鲁服务器即可解决。阿里云百科aliyunba…

【Android】高仿京东三级类型列表Demo

本demo基于二级分类双列表联动Demo进行了改进,高仿实现了京东的三级类型列表。 京东的如图: 本demo的: 改进之处 实现了三级列表联动,二三级列表之间的滑动监听优化了一下,将二级类型选中交予自身的点击事件&#…

prometheus和alertmanager inhibit_rules抑制的使用

172.16.10.21 prometheus 172.16.10.33 altermanager 172.16.10.59 mysql服务,node探针以及mysql的探针 [rootk8s-node02 ~]# docker ps -a CONTAINER ID IMAGE …

asp.net core通过读取配置文件来动态生成接口

如果希望接口是每次通过配置文件生成的,这样设计一些低代码的方式来获得接口。 系统目录结构: 启动配置代码: using Microsoft.AspNetCore.Hosting; using System.Configuration; using System.Data.Entity; using Swashbuckle.AspNetCore.SwaggerGen; using System.Refle…

第94讲:MySQL主从复制过滤复制的概念以及使用

文章目录 1.主从复制过滤复制的概念2.通过从库层面实现过滤复制2.1.从库过滤复制的参数2.2.配置过滤复制2.3.验证复制的准确性 1.主从复制过滤复制的概念 在MySQL主从复制集群中,既可以对全库进行主从复制,也可以对数据库实例中的某个数据库进行主从复制…

ShardingSphere 相关实践

实现水平分表 同一个数据库,多个表,把数据分到多个表里面环境:spring boot 2.3.2.RELEASE create database course_db;use course_db;create table course_1 (cid bigint(20) primary key ,cname varchar(50) not null,user_id bigint(20) …

机器学习---可能近似正确(PAC)、出错界限框架

1. 计算学习理论概述 从理论上刻画了若干类型的机器学习问题中的困难和若干类型的机器学习算法的能力 这个理论要回答的问题是: 在什么样的条件下成功的学习是可能的? 在什么条件下某个特定的学习算法可保证成功运行? 这里考虑两种框架&…

Java后端须知的前端知识

Java后端须知的前端知识 HTML &#xff08;超文本标记语言&#xff09; W3C标准 结构&#xff1a;HTML表现&#xff1a;CSS行为&#xff1a;JavaScript 快速入门 <html><head><title></title></head><body><font color"red&q…

无人机除冰保障电网稳定运行

无人机除冰保障电网稳定运行 近日&#xff0c;受低温雨雪冰冻天气影响&#xff0c;福鼎市多条输配电线路出现不同程度覆冰。 为保障福鼎电网安全可靠运行&#xff0c;供电所员工运用无人机飞行技术&#xff0c;通过在无人机下方悬挂器具&#xff0c;将无人机飞到10千伏青坑线…

代码随想录算法训练营第二十二天 |235. 二叉搜索树的最近公共祖先,701.二叉搜索树中的插入操作,450.删除二叉搜索树中的节点(待补充)

235.二叉搜索树的最近公共祖先 1、题目链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 2、文章讲解&#xff1a;代码随想录 3、题目&#xff1a; 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公…

序列化流 ObjectInputStream 和 ObjectOutputStream 的基本使用【 File类+IO流知识回顾④】

序列化流 ObjectInputStream 和 ObjectOutputStream 的基本使用【 File类IO流知识回顾④】 序列化流序列化和反序列化如何实现序列化ObjectOutputStreamObjectInputStream 序列化流 什么是序列化&#xff1f;如何实现序列化&#xff1f;什么是反序列化&#xff1f;需要了解的类…