|
@@ -1,321 +1,315 @@
|
|
-# 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/
|
|
|
|
-
|
|
|
|
-```
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+# sqler
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+---------------------------------
|
|
|
|
+# 查看帮助
|
|
|
|
+
|
|
|
|
+``` 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/Data:/root/app/Data \
|
|
|
|
+-v $PWD/Logs:/root/app/Logs \
|
|
|
|
+serset/sqler
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+docker logs sqler
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+docker run --name=sqler --restart=always -d -p 4570:4570 serset/sqler
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+http://ip:4570
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+#---------------------------------------
|
|
|
|
+# 常用命令
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+docker exec -it sqler bash
|
|
|
|
+
|
|
|
|
+docker logs sqler
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+docker stop sqler
|
|
|
|
+
|
|
|
|
+docker start sqler
|
|
|
|
+
|
|
|
|
+docker restart sqler
|
|
|
|
+
|
|
|
|
+docker rm sqler -f
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+```
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|