lith 3 jaren geleden
bovenliggende
commit
34c117b34d
2 gewijzigde bestanden met toevoegingen van 322 en 2 verwijderingen
  1. 2 0
      Publish/UpgradeLog.md
  2. 320 2
      README.md

+ 2 - 0
Publish/UpgradeLog.md

@@ -0,0 +1,2 @@
+# 
+ Sql Server可导入导出 Geometry类型

+ 320 - 2
README.md

@@ -1,3 +1,321 @@
-# Sqler 2.1
+# sqler说明书-docker
+
+
+---------------------------------
+# 查看帮助
+
+``` bash
+#查看全部帮助信息
+docker run --rm -it serset/sqler dotnet Sqler.dll help
+
+#查看命令MySql.BackupSqler的帮助信息
+docker run --rm -it serset/sqler dotnet Sqler.dll help -c MySql.BackupSqler
+
+```
+
+``` txt
+
+开始执行命令 help ...
+---------------
+命令说明:
+---------------
+help
+命令说明:
+-c[--command] 要查询的命令。若不指定则返回所有命令的说明。如 help 
+示例: help -c help
+---------------
+
+
+```
+
+
+---------------------------------
+# mysql
+Sqler可以对MySql数据库进行 备份、还原、创建、删除。
+
+
+## 一.连接字符串说明
+
+### (x.1)避免问题Unable to convert MySQL date/time value to System.DateTime
+读取MySql时,如果存在字段类型为date/datetime时可能会出现以下问题,“Unable to convert MySQL date/time value to System.DateTime”  
+解决方法为 在链接MySQL的字符串中添加:Convert Zero Datetime=True;Allow Zero Datetime=True;  
+如: "Data Source=mysql;Port=3306;Database=wordpress;User Id=root;Password=123456;CharSet=utf8;Convert Zero Datetime=True;Allow Zero Datetime=True;"
+
+
+### (x.2)避免datetime类型默认值出现“Invalid default value for..."错误
+执行如下sql语句:
+
+``` sql
+-- 查看sql_mode
+show variables like '%sql_mode%';
+
+-- 修改sql_mode,去掉NO_ZERO_IN_DATE,NO_ZERO_DATE:
+set sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
+set global sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
+
+```
+
+
+## 二.备份数据库
+备份mysql数据库到指定文件,使用sqler备份方式
+> sqler备份步骤为:    
+> 1.构建建库脚本保存到文件(CreateDataBase.sql)    
+> 2.备份所有表数据到sqlite文件(Data.sqlite3)    
+> 3.压缩为zip文件    
+
+demo:
+``` bash
+docker run --rm -it \
+-v /root/data:/root/data  \
+serset/sqler  \
+dotnet Sqler.dll MySql.BackupSqler \
+--filePath "/root/data/wordpress.sqler.zip" \
+--ConnectionString "Data Source=mysql;Port=3306;Database=wordpress;User Id=root;Password=123456;CharSet=utf8;Convert Zero Datetime=True;Allow Zero Datetime=True;"
+```
+
+参数说明:
+``` txt
+MySql.BackupSqler
+远程备份数据库。参数说明:备份文件名称和路径指定其一即可,若均不指定则自动生成
+-fn[--fileName] (可选)备份文件名称,备份文件在当前管理的备份文件夹中。例如 "DbDev_2020-06-08_135203.zip"
+-fp[--filePath] (可选)备份文件路径,例如 "/root/docker/DbDev_2020-06-08_135203.zip"
+-c[--useMemoryCache] 若为false则不使用内存进行全量缓存,默认:true。缓存到内存可以加快备份速度。在数据源特别庞大时请禁用此功能(指定false)。
+-ConnStr[--ConnectionString] (可选)数据库连接字符串 例如 "Data Source=.;Database=Db_Dev;UID=sa;PWD=123456;"
+--DataPath (可选)Data文件夹的路径。可为相对或绝对路径,默认:"Data"
+示例: MySql.BackupSqler --useMemoryCache false -ConnStr "Data Source=.;Database=Db_Dev;UID=sa;PWD=123456;" --filePath "/root/docker/DbDev_2020-06-08_135203.zip"
+```
+
+
+## 三.还原数据库
+还原mysql备份文件到数据库
+
+demo:
+``` bash
+#强制还原数据库
+docker run --rm -it \
+-v /root/data:/root/data  \
+serset/sqler  \
+dotnet Sqler.dll MySql.Restore \
+--filePath "/root/data/wordpress.sqler.zip" \
+--ConnectionString "Data Source=mysql;Port=3306;Database=wordpress;User Id=root;Password=123456;CharSet=utf8;Convert Zero Datetime=True;Allow Zero Datetime=True;"
+```
+
+参数说明:
+``` txt
+MySql.Restore
+通过备份文件远程还原数据库。参数说明:备份文件名称和路径指定其一即可
+-f[--force] 强制还原数据库。若指定此参数,则在数据库已经存在时仍然还原数据库;否则仅在数据库尚未存在时还原数据库。
+-fn[--fileName] (可选)备份文件名称,备份文件在当前管理的备份文件夹中。例如 "DbDev_2020-06-08_135203.bak"
+-fp[--filePath] (可选)备份文件路径,例如 "/root/docker/DbDev_2020-06-08_135203.bak"
+-ConnStr[--ConnectionString] (可选)数据库连接字符串 例如 "Data Source=.;Database=Db_Dev;UID=sa;PWD=123456;"
+--DataPath (可选)Data文件夹的路径。可为相对或绝对路径,默认:"Data"
+示例: MySql.Restore -ConnStr "Data Source=.;Database=Db_Dev;UID=sa;PWD=123456;" --filePath "/root/docker/DbDev_2020-06-08_135203.bak"
+
+```
+
+
+
+# 四.创建数据库
+
+demo:
+``` bash
+docker run --rm -it \
+serset/sqler \
+dotnet Sqler.dll MySql.CreateDataBase \
+-ConnStr "Data Source=.;Database=Db_Dev;UID=sa;PWD=123456;"
+```
+
+参数说明:
+``` txt
+MySql.CreateDataBase
+若数据库不存在,则创建数据库。参数说明:
+-ConnStr[--ConnectionString] (可选)数据库连接字符串 例如 "Data Source=.;Database=Db_Dev;UID=sa;PWD=123456;"
+--DataPath (可选)Data文件夹的路径。可为相对或绝对路径,默认:"Data"
+示例: MySql.CreateDataBase -ConnStr "Data Source=.;Database=Db_Dev;UID=sa;PWD=123456;"
+```
+
+
+
+
+
+# 六.删除数据库
+demo:
+``` bash
+docker run --rm -it \
+serset/sqler \
+dotnet Sqler.dll MySql.DropDataBase \
+-ConnStr "Data Source=.;Database=Db_Dev;UID=sa;PWD=123456;"
+```
+
+参数说明:
+``` txt
+MySql.DropDataBase
+若数据库存在,则删除数据库。参数说明:
+-ConnStr[--ConnectionString] (可选)数据库连接字符串 例如 "Data Source=.;Database=Db_Dev;UID=sa;PWD=123456;"
+--DataPath (可选)Data文件夹的路径。可为相对或绝对路径,默认:"Data"
+示例: MySql.DropDataBase -ConnStr "Data Source=.;Database=Db_Dev;UID=sa;PWD=123456;" 
+
+```
+
+
+
+---------------------------------
+# mssql
+Sqler可以对msql(Sql Server)数据库进行 备份、还原、创建、删除。
+
+
+ 
+
+## 二.备份数据库
+备份mysql数据库到指定文件,使用sqler备份方式
+> sqler备份步骤为:    
+> 1.构建建库脚本保存到文件(CreateDataBase.sql)    
+> 2.备份所有表数据到sqlite文件(Data.sqlite3)    
+> 3.压缩为zip文件    
+
+demo:
+``` bash
+docker run --rm -it \
+-v /root/data:/root/data  \
+serset/sqler  \
+dotnet Sqler.dll SqlServer.BackupLocalBak \
+--filePath "/root/data/wordpress.sqler.zip" \
+--ConnectionString "Data Source=.;Database=Db_Dev;UID=sa;PWD=123456;"
+```
+
+参数说明:
+``` txt
+SqlServer.BackupLocalBak
+本地bak备份数据库。参数说明:备份文件名称和路径指定其一即可,若均不指定则自动生成
+-fn[--fileName] (可选)备份文件名称,备份文件在当前管理的备份文件夹中。例如 "DbDev_2020-06-08_135203.bak"
+-fp[--filePath] (可选)备份文件路径,例如 "/root/docker/DbDev_2020-06-08_135203.bak"
+-ConnStr[--ConnectionString] (可选)数据库连接字符串 例如 "Data Source=.;Database=Db_Dev;UID=sa;PWD=123456;"
+--DataPath (可选)Data文件夹的路径。可为相对或绝对路径,默认:"Data"
+示例: SqlServer.BackupLocalBak -ConnStr "Data Source=.;Database=Db_Dev;UID=sa;PWD=123456;" --filePath "/root/docker/DbDev_2020-06-08_135203.bak"
+```
+
+
+## 三.还原数据库
+还原mysql备份文件到数据库
+
+demo:
+``` bash
+#强制还原数据库
+docker run --rm -it \
+-v /root/data:/root/data  \
+serset/sqler  \
+dotnet Sqler.dll MySql.Restore \
+--filePath "/root/data/wordpress.sqler.zip" \
+--ConnectionString "Data Source=mysql;Port=3306;Database=wordpress;User Id=root;Password=123456;CharSet=utf8;Convert Zero Datetime=True;Allow Zero Datetime=True;"
+```
+
+参数说明:
+``` txt
+MySql.Restore
+通过备份文件远程还原数据库。参数说明:备份文件名称和路径指定其一即可
+-f[--force] 强制还原数据库。若指定此参数,则在数据库已经存在时仍然还原数据库;否则仅在数据库尚未存在时还原数据库。
+-fn[--fileName] (可选)备份文件名称,备份文件在当前管理的备份文件夹中。例如 "DbDev_2020-06-08_135203.bak"
+-fp[--filePath] (可选)备份文件路径,例如 "/root/docker/DbDev_2020-06-08_135203.bak"
+-ConnStr[--ConnectionString] (可选)数据库连接字符串 例如 "Data Source=.;Database=Db_Dev;UID=sa;PWD=123456;"
+--DataPath (可选)Data文件夹的路径。可为相对或绝对路径,默认:"Data"
+示例: MySql.Restore -ConnStr "Data Source=.;Database=Db_Dev;UID=sa;PWD=123456;" --filePath "/root/docker/DbDev_2020-06-08_135203.bak"
+
+```
+
+
+
+# 四.创建数据库
+
+demo:
+``` bash
+docker run --rm -it \
+serset/sqler \
+dotnet Sqler.dll MySql.CreateDataBase \
+-ConnStr "Data Source=.;Database=Db_Dev;UID=sa;PWD=123456;"
+```
+
+参数说明:
+``` txt
+MySql.CreateDataBase
+若数据库不存在,则创建数据库。参数说明:
+-ConnStr[--ConnectionString] (可选)数据库连接字符串 例如 "Data Source=.;Database=Db_Dev;UID=sa;PWD=123456;"
+--DataPath (可选)Data文件夹的路径。可为相对或绝对路径,默认:"Data"
+示例: MySql.CreateDataBase -ConnStr "Data Source=.;Database=Db_Dev;UID=sa;PWD=123456;"
+```
+
+
+
+
+---------------------------------
+# 六.常驻后台服务
+
+## (x.1)配置文件
+	  (x.x.1)把本文件所在目录中的Data拷贝到宿主机
+	  (x.x.2)修改配置文件 appsettings.json
+ 
+
+## (x.2)创建容器并运行
+(--name 容器名称,可自定义)
+(--restart=always 自动重启)
+(-v /etc/localtime:/etc/localtime)挂载宿主机localtime文件解决容器时间与主机时区不一致的问题
+(-v $PWD/data:/data 将主机中当前目录下的data挂载到容器的/data)
+(--net=host 网络直接使用宿主机网络)(-p 6022:6022 端口映射)
+
+``` bash
+cd /root/docker/sqler
+docker run --name=sqler --restart=always -d \
+-p 4570:4570 \
+-v /etc/localtime:/etc/localtime \
+-v $PWD/appsettings.json:/root/app/sqler/appsettings.json \
+-v $PWD/Data:/root/app/sqler/Data  \
+-v $PWD/Logs:/root/app/sqler/Logs  \
+serset/sqler
+
+
+#精简
+docker run --name=sqler --restart=always -d -p 4570:4570 serset/sqler
+
+
+#应用已经运行
+#访问地址为 http://ip:4570 
+
+
+
+#---------------------------------------
+#常用命令
+
+#查看容器logs
+docker logs sqler
+
+#在容器内执行命令行
+docker  exec -it sqler bash
+
+#停止容器
+docker stop sqler
+
+#打开容器
+docker start sqler
+
+#重启容器
+docker restart sqler
+
+#删除容器
+docker rm sqler -f
+
+
+#--------------------------------------
+#文件复制
+
+#1、从容器拷贝文件到宿主机
+docker cp sqler:/root/app/SqlerData/ SqlerData
+
+#2、从宿主机拷贝文件到容器
+docker cp SqlerData sqler:/root/app/SqlerData/
+
+```
+
+
+
+
+
 
- Sql Server可导入导出 Geometry类型