diff --git a/WebMVC/DIWebApi/Controllers/TestController.cs b/WebMVC/DIWebApi/Controllers/TestController.cs index e0b00fc..d07c25b 100644 --- a/WebMVC/DIWebApi/Controllers/TestController.cs +++ b/WebMVC/DIWebApi/Controllers/TestController.cs @@ -24,5 +24,15 @@ namespace DIWebApi.Controllers { return calculate.Count; } + /// + /// 写入文件 + /// + /// 文件路径 + /// 文件内容 + [HttpGet("build")] + public void buildCount() + { + System.IO.File.WriteAllText("", ""); + } } } diff --git a/WebMVC/WebMVCApi/Controllers/DBController.cs b/WebMVC/WebMVCApi/Controllers/DBController.cs new file mode 100644 index 0000000..6b6611e --- /dev/null +++ b/WebMVC/WebMVCApi/Controllers/DBController.cs @@ -0,0 +1,82 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using System.Collections; +using System.Collections.Generic; +using System.Data.Common; +using WebMVCApi.config; + +namespace WebMVCApi.Controllers +{ + [Route("halo/")] + [ApiController] + public class DBController : ControllerBase + { + [HttpGet("GetHaloContent")] + public IActionResult GetHaloContent() + { + var list = new ArrayList(); + var dbx = new HaloDbContext(); + var conn = dbx.Database.GetDbConnection(); + if(conn.State != System.Data.ConnectionState.Open) + { + conn.Open(); + } + using (var cmd = conn.CreateCommand()) + { + // cmd.CommandText = "SELECT\r\n\tt1.id,\r\n\tIFNULL(GROUP_CONCAT( t5.NAME ) , '')AS cates ,\r\n\tIFNULL(GROUP_CONCAT( t6.NAME ) , '')AS tags ,\r\n\tt2.original_content,\r\n\tt1.title\r\nFROM\r\n contents t2 \r\n\tLEFT JOIN posts t1\r\n\tON t1.id = t2.post_id\r\n\t\r\n LEFT JOIN post_categories t3 \r\n\tON t1.id = t3.post_id\r\n\t\r\n\tLEFT JOIN post_tags t4 \r\n\tON t1.id = t4.post_id\r\n\t\r\n\tLEFT JOIN categories t5\r\n\tON t3.category_id = t5.id\r\n\t\r\n\tLEFT JOIN tags t6\r\n\tON t4.tag_id = t6.id\r\nGROUP BY\r\n\tt2.post_id"; + cmd.CommandText = "SELECT\r\n\tt1.id,\r\n\tIFNULL(GROUP_CONCAT( t5.NAME ) , '')AS cates ,\r\n\tIFNULL(GROUP_CONCAT( t6.NAME ) , '')AS tags ,\r\n\tt2.original_content,\r\n\tt1.title,\r\n\tt1.create_time\r\nFROM\r\n contents t2 \r\n\tLEFT JOIN posts t1\r\n\tON t1.id = t2.post_id\r\n\t\r\n LEFT JOIN post_categories t3 \r\n\tON t1.id = t3.post_id\r\n\t\r\n\tLEFT JOIN post_tags t4 \r\n\tON t1.id = t4.post_id\r\n\t\r\n\tLEFT JOIN categories t5\r\n\tON t3.category_id = t5.id\r\n\t\r\n\tLEFT JOIN tags t6\r\n\tON t4.tag_id = t6.id\r\nGROUP BY\r\n\tt2.post_id"; + var read = cmd.ExecuteReader(); + while (read.Read()) { + var id = read.GetInt32(0); + var cates = read.GetString(1); + var tags = read.GetString(2); + var content = read.GetString(3); + var title = read.GetString(4); + var createTime = read.GetDateTime(5); + var setCates = cates.Split(',').ToHashSet(); + var setTags = tags.Split(',').ToHashSet(); + string head = + $"---\r\n" + + $"icon: edit\r\n" + + $"date: {createTime.ToString("yyyy-MM-dd")}\r\n"; + + if (setCates.First()!="") + { + head += $"category:\r\n"; + } + + foreach (var cate in setCates) + { + if (!cate.Equals("")) { + head += $" - {cate}\r\n"; + } + } + if (setTags.First() != "") + { + head += $"tag:\r\n"; + } + + foreach (var tag in setTags) + { + if (!tag.Equals("")) { + head += $" - {tag}\r\n"; + } + } + head += + "headerDepth: 5\r\n" + + "---\r\n\n\n" + + $"# {title}\r\n"; + title = title.Replace("/", ""); + System.IO.File.WriteAllText($"./md/{title}.md", head+ content); + Console.WriteLine(id); + list.Add(content); + } + } + return Ok(list); + } + + } + + +} diff --git a/WebMVC/WebMVCApi/Program.cs b/WebMVC/WebMVCApi/Program.cs index 48863a6..5d430ee 100644 --- a/WebMVC/WebMVCApi/Program.cs +++ b/WebMVC/WebMVCApi/Program.cs @@ -19,7 +19,7 @@ if (app.Environment.IsDevelopment()) app.UseHttpsRedirection(); app.UseAuthorization(); - +app.UseResponseCaching(); app.MapControllers(); app.Run(); diff --git a/WebMVC/WebMVCApi/WebMVCApi.csproj b/WebMVC/WebMVCApi/WebMVCApi.csproj index 60bf9ea..87ec459 100644 --- a/WebMVC/WebMVCApi/WebMVCApi.csproj +++ b/WebMVC/WebMVCApi/WebMVCApi.csproj @@ -7,6 +7,14 @@ + + + + + + + + diff --git a/WebMVC/WebMVCApi/config/HaloDbContext.cs b/WebMVC/WebMVCApi/config/HaloDbContext.cs new file mode 100644 index 0000000..75c398e --- /dev/null +++ b/WebMVC/WebMVCApi/config/HaloDbContext.cs @@ -0,0 +1,19 @@ +using Microsoft.EntityFrameworkCore; + +namespace WebMVCApi.config +{ + public class HaloDbContext : DbContext + { + + protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { + optionsBuilder.UseMySql("server=local.wuanwanghao.top;port=3307;user=root;password=ks125930.;database=blog-db", + new MySqlServerVersion(new Version(5, 7, 35))); + + } + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + base.OnModelCreating(modelBuilder); + modelBuilder.ApplyConfigurationsFromAssembly(this.GetType().Assembly); + } + } +} diff --git a/WebMVC/WebMVCApi/md/Arch 关于pacman的常用指令.md b/WebMVC/WebMVCApi/md/Arch 关于pacman的常用指令.md new file mode 100644 index 0000000..1c6426d --- /dev/null +++ b/WebMVC/WebMVCApi/md/Arch 关于pacman的常用指令.md @@ -0,0 +1,42 @@ +--- +icon: edit +date: 2023-04-13 +category: + - Linux +tag: + - pacman + - Arch + - ArchLinux +headerDepth: 5 +--- + + +# Arch 关于pacman的常用指令 +## 关于pacman的常用指令: +### 5.1 pacman -S 指令:安装 +```bash +sudo pacman -S #安装软件 +sudo pacman -Sy #获取最新打软件情况,如果已经是最新了,直接会提示已经更新到最新了。 +sudo pacman -Syy #强行更新你的应用的软件库(源) +sudo pacman -Su #更新所有软件 +sudo pacman -Syu #更新软件源并更新你的软件 +sudo pacman -Syyu #强行更新一遍,再更新软件 +sudo pacman -Ss #查询所有软件名里面带有相关的软件。 +sudo pacman -Sc #删除软件/var目录下的缓存 +``` +### 5.2 pacman -R 指令:删除 + +```bash +sudo pacman -R #删除软件 +sudo pacman -Rs #删除软件,并删除所有的依赖包 +sudo pacman -Rns #删除软件,并删除所有的依赖,并删掉的全局配置文件。 推荐!! +``` +### 5.3 pacman -Q 指令:查询 +```bash +sudo pacman -Q #显示出所有软件 sudo pacman -Q | wc -l 查询数量 +sudo pacman -Qe #查询所有自己安装的软件 +sudo pacman -Qeq #查询所有自己安装的软件,只显示包名,不显示版本号等 +sudo pacman -Qs #查询本地安装的所有带的软件 +sudo pacman -Qdt #查询所有孤儿软件,不再被需要的。 +sudo pacman -Qdtq #查询所有不再被依赖的包名 +``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/ArchLinux 安装nvm nodejs并配置安装pm2 pm2-logrotate.md b/WebMVC/WebMVCApi/md/ArchLinux 安装nvm nodejs并配置安装pm2 pm2-logrotate.md new file mode 100644 index 0000000..d29ef8f --- /dev/null +++ b/WebMVC/WebMVCApi/md/ArchLinux 安装nvm nodejs并配置安装pm2 pm2-logrotate.md @@ -0,0 +1,161 @@ +--- +icon: edit +date: 2022-11-12 +category: + - 系统配置 + - Linux + - nodejs +tag: + - Arch + - ArchLinux + - nodejs + - nvm + - pm2 + - pm2-logrotate +headerDepth: 5 +--- + + +# ArchLinux 安装nvm nodejs并配置安装pm2 pm2-logrotate +### 安装nvm +#### 下载安装脚本 +nvm 官网地址 [https://github.com/nvm-sh/nvm](https://github.com/nvm-sh/nvm) +安装前提服务器配置好```git``` ```curl``` 或者 ```wget``` +网络好的同学可以使用官网的例子 +``` +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash +``` +或 +``` +wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash +``` +网络不好的同学可以使用我配置好的脚本 +``` +curl -o- https://local.wuanwanghao.top:9000/test/nvm_install.sh | bash +``` +或 +``` +wget -qO- https://local.wuanwanghao.top:9000/test/nvm_install.sh | bash +``` +#### 配置环境变量 +一般centos 和 ubuntu 环境安装的同学就已经可以使用 nvm 了 但是Arch linux 同学还不能使用,我们要配置下环境变量 +``` +vim ~/.profile +``` +##### 写入配置 +``` +export NVM_DIR="$HOME/.nvm" +[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm +[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion +export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node/ +export NVM_IOJS_ORG_MIRROR=http://npm.taobao.org/mirrors/iojs +``` +##### 应用配置 +``` +source ~/.profile +``` + +#### nvm 常用命令 +```shell +nvm install stable ## 安装最新稳定版 node +nvm install ## 安装指定版本 +nvm uninstall ## 删除已安装的指定版本 +nvm use ## 切换使用指定的版本node +nvm ls ## 列出所有安装的版本 +nvm ls-remote ## 列出所有远程服务器的版本 +nvm current ## 显示当前的版本 +nvm alias ## 给不同的版本号添加别名 +nvm unalias ## 删除已定义的别名 +nvm reinstall-packages ## 在当前版本 node 环境下,重新全局安装指定版本号的 npm 包 +nvm alias default [node版本号] ##设置默认版本 +``` +### 安装nodejs +nvm 安装 最新发行版 +```shell +nvm install stable +``` +#### 配置npm 源 +```shell +npm config set registry https://registry.npmjs.org +``` +#### 安装yarn +```shell +npm install -g yarn +``` +#### 配置yarn源 +```shell +yarn config set registry https://registry.npm.taobao.org +``` + +### 安装pm2 进程管理工具 +``` +npm install -g pm2 +``` +#### pm2 常用命令 +```txt +pm2 start app.js --name="fx67ll" 启动并命名为fx67ll,没有命名的话后续可以用id替代name +pm2 start app.js --watch 当文件变化时自动重启应用 +pm2 start script.sh 启动bash脚本 +pm2 list 查看所有启动的应用列表 +pm2 monit 显示每个应用程序的CPU和内存占用情况 +pm2 show [app-id/app-name] 显示指定应用程序的所有信息 +pm2 log 显示应用程序的日志信息 +pm2 log [app-id/app-name] 显示指定应用程序的日志信息 +pm2 flush 清空所有日志文件 +pm2 stop all 停止所有应用程序 +pm2 stop [app-id/app-name] 停止指定应用程序 +pm2 restart all 重启所有应用程序 +pm2 restart [app-id/app-name] 重启指定应用程序 +pm2 delete all 关闭并删除所有应用程序 +pm2 delete [app-id/app-name] 删除指定的应用程序 +pm2 reset [app-id/app-name] 重置重启数量 +pm2 startup 创建开机自启动命令 +pm2 save 保存当前应用列表 +pm2 resurrect 重新加载保存的应用列表 +pm2 update 保存进程,杀死并重启进程,一般用于更新pm2版本 +pm2 ecosystem 生成一个示例json配置文件 +``` +#### 启动应用 +``` +pm2 start mayfly +``` +#### 查看应用 +``` +pm2 list +``` +![image-1668258326917](https://local.wuanwanghao.top:9000/test/test/image-1668258326917.png) +#### 设置开机启动 +``` +pm2 startup +pm2 save +``` +```运行pm2 startup 在/etc/init.d/目录下生成pm2-root的启动脚本,且自动将pm2-root设为服务。``` +#### pm2 查看日志 +``` +pm2 logs mayfly +``` +![image-1668258487288](https://local.wuanwanghao.top:9000/test/test/image-1668258487288.png) +**同时我们也可以使用 tail -f 查看指定的文件的日志** +``` +tail -200f /root/.pm2/logs/main.out.log +``` +```但是pm2自带的日志功能是不支持自动分割的,这就会导致随之时间的推移,我们的日志文件会越来越大,不但会影响性能,在后期排查问题的时候也会很麻烦,这时我们就可以使用pm2-logrotate插件来解决上面的问题。安装也是非常简单``` +#### 安装pm2-logrotate +``` +pm2 install pm2-logrotate +``` +通过 pm2 conf pm2-logratate 可以查看详细的配置 +![image-1668258663216](https://local.wuanwanghao.top:9000/test/test/image-1668258663216.png) +![image-1668258687030](https://local.wuanwanghao.top:9000/test/test/image-1668258687030.png) +比如我们可以设置日志文件大小为1KB +``` +pm2 set pm2-logrotate:max_size 1k +``` +修改完不要忘记重启服务 +``` +pm2 restart all +``` +当大小达到1KB就会自动分割,格式如:main-out__2022-07-29_11-00-32.log 的文件。 + +pm2日志文件储存在 /root/.pm2/logs 文件夹下。 +![image-1668258827133](https://local.wuanwanghao.top:9000/test/test/image-1668258827133.png) diff --git a/WebMVC/WebMVCApi/md/ArchLinux 安装指南.md b/WebMVC/WebMVCApi/md/ArchLinux 安装指南.md new file mode 100644 index 0000000..2f4b8f0 --- /dev/null +++ b/WebMVC/WebMVCApi/md/ArchLinux 安装指南.md @@ -0,0 +1,182 @@ +--- +icon: edit +date: 2022-11-12 +category: + - 系统配置 + - Linux +tag: + - linux + - Arch + - ArchLinux +headerDepth: 5 +--- + + +# ArchLinux 安装指南 +### 准备工作 +在开始安装 Arch Linux 之前,需要先下载安装映像文件并创建好虚拟机环境。 +#### 下载安装镜像 +下面是 Arch Linux 官方的安装文件下载地址: + +[Arch Linux - Downloads](https://archlinux.org/download/) Arch Linux 安装映像下载地址。 + +点击并打开这个页面后,可以看到目前 Arch Linux 最新的版本和下载包的文件信息。往下翻页,在页面下方有各个国家可用的下载加速镜像。 + +选择距离自己所在位置最近的加速镜像可以有效提升安装包的下载速度,我们找到 "China",然后选择其中一个任意可用的加速镜像地址,比如 163.com。 +![image-1668233139961](https://local.wuanwanghao.top:9000/test/test/image-1668233139961.png) +点击镜像链接后,就会打开一个类似文件列表的页面,我们选择 iso 后缀的那个文件,直接点击文件名称进行下载操作。 +![image-1668233216068](https://local.wuanwanghao.top:9000/test/test/image-1668233216068.png) + 创建虚拟机 + +VMWARE是一个开源免费的虚拟机软件。下载后安装,创建一个新的虚拟机,并把上面下载的 ISO 文件加载到启动光盘。 + +### 安装 Arch Linux +启动虚拟机,一切操作正常的话,开机后会看到如下画面 +![image-1668233316725](https://local.wuanwanghao.top:9000/test/test/image-1668233316725.png) +通过上下方向键可以自由选择相关的菜单。选择第一项“Arch Linux Install medium (x86_64, BIOS)“,按回车键确认,进入 Arch Linux 的安装环境。 +![image-1668233418977](https://local.wuanwanghao.top:9000/test/test/image-1668233418977.png) +#### 磁盘分区 +开始正式安装系统前,需要先对硬盘做分区操作。这需要指定可操作的硬盘,可以通过以下命令来确定当前系统有哪些可用的硬盘设备: +```shell +fdisk -l +``` +命令会返回类似如下的输出结果: +![image-1668233499398](https://local.wuanwanghao.top:9000/test/test/image-1668233499398.png) +其中 /dev/sda 就是一个可用的硬盘设备。记下这个名称,等下分区时会用的上。在正式开始分区前,需要先确定好分区规划。 + +对于正式使用的场景,我会建议你多参考一些 Linux 分区方案,可以使日后在磁盘的利用方面更加妥当。不过对于本文仅做体验的场景,我自己的方案如下: + +1. 一个交换分区,大小为 1 GiB。 +2. 最后所有的空间都留给根分区。 +有了分区方案,输入以下命令开始分区操作: +```shell +fdisk /dev/sda +``` +命令执行后,会进入如下界面: +![image-1668233910191](https://local.wuanwanghao.top:9000/test/test/image-1668233910191.png) +这就是 fdisk 提供的分区操作界面了,通过如下操作来创建一个 1 GiB 的交换分区: + +1. 输入 n 新建分区。 +2. 输入 p 新建主分区。 +3. 分区编号输入 1。 +4. 开始扇区不用输入,直接回车键进入下一项。 +5. 结束扇区输入 +1G。 +然后用同样的流程完成主分区的创建。这一步的分区号为 2,后面的扇区输入都保持空,然后直接回车键就可以了,程序会自动分配剩余的所有空间。 + +以上操作完成后,输入 w 写入分区信息。然后再次输入 fdisk -l 命令,会发现输出信息中多了如下内容: +![image-1668233994293](https://local.wuanwanghao.top:9000/test/test/image-1668233994293.png) + + + 这说明分区操作成功了。 + +#### 格式化分区 +硬盘分区后,还需要做格式化操作。Linux 针对不同的分区类型,提供了有不同的格式化命令。首先来格式化交换分区: +```shell +mkswap /dev/sda1 +``` +主分区使用 ext4 格式的分区: +```shell +mkfs.ext4 /dev/sda2 +``` + +#### 挂载分区 +完成分区格式化后,接下来需要挂载分区。首先挂载根分区: +```shell +mount /dev/sda2 /mnt +``` +然后启用交换分区: +```shell +swapon /dev/sda1 +``` + +#### 安装系统 +完成了以上磁盘操作步骤,就可以正式开始安装 Arch Linux 系统了。不过开始之前,为了提升安装包的下载速度,可以通过以下命令自动更新并保存 5 个速度最快的软件包镜像加速地址: +```shell +reflector \ + --save /etc/pacman.d/mirrorlist \ + --country China \ + --protocol https \ + --latest 5 +``` +然后安装基础软件包,Linux 内核,常见硬件的固件和常用软件工具: +```shell +pacstrap /mnt base linux linux-firmware dhcpcd openssh xfsprogs man net-tools vim sudo networkmanager +``` +等待安装完成。 + +结束后,生成新的自动挂载文件,并写入到新安装的系统: +``` shell +genfstab -U /mnt >> /mnt/etc/fstab +``` +然后进入到新安装的系统: +```shell +arch-chroot /mnt +``` +接下来,将开始对新系统做配置操作。 + +### 配置 Arch Linux +#### 配置网络 +启用相关服务: +```shell +systemctl enable dhcpcd +systemctl enable NetworkManager +``` +#### 配置时区 +Arch Linux 默认为 UTC 时区,调整为国内时区使用下面的命令: +```shell +ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime +``` +配置本地字符编码 +- 编辑 /etc/locale.gen 文件,取消 en_US.UTF-8 UTF-8 这一行前的注释信息。 +- 执行 locale-gen 命令生成本地字符集信息。 +- 创建 /etc/locale.conf 文件,内容为:LANG=en_US.UTF-8。 + +```使用 en_US.UTF-8 而不使用中文字符编码的原因是为了避免系统输出无法显示的中文信息,以方便排查问题。``` + +#### 配置用户 +设置 root 账号密码: +```shell +passwd +``` +添加新的普通用户,并加入到 wheel 用户组,以方便使用 sudo 命令来执行一些需要超级用户权限的操作: +```shell +useradd -m -G wheel -s /bin/bash zzxworld +``` +```最后面的 zzxworld 是新用户名称,需要自己定义。``` + +#### 配置系统引导程序 +安装 GRUB 启动加载器: +```shell +pacman -S grub +``` +安装 GRUB 引导信息至指定的硬盘: +```shell +grub-install --recheck /dev/sda +``` +生成并写入 GRUB 配置信息: +```shell +grub-mkconfig -o /boot/grub/grub.cfg +``` + + +#### 登录新系统 +完成以上步骤后,Arch Linux 的基础安装工作就完成了,可以尝试退出安装环境并进入新系统。 + +首先输入以下命令退出 chroot 环境: +```shell +exit +``` +然后卸载之前挂载的分区: +```shell +umount -R /mnt +``` +重新启动系统。 +```shell +reboot +``` +正常的话,应该会看到新的启动选项选择界面: + +![image-1668234594711](https://local.wuanwanghao.top:9000/test/test/image-1668234594711.png) + 直接按回车键,就可以进入新安装的 Arch Linux 系统了。 + + diff --git a/WebMVC/WebMVCApi/md/C# .Net Standard 类库版本 对应。.NetCore 和 .Net Framework 支持.md b/WebMVC/WebMVCApi/md/C# .Net Standard 类库版本 对应。.NetCore 和 .Net Framework 支持.md new file mode 100644 index 0000000..236c10c --- /dev/null +++ b/WebMVC/WebMVCApi/md/C# .Net Standard 类库版本 对应。.NetCore 和 .Net Framework 支持.md @@ -0,0 +1,19 @@ +--- +icon: edit +date: 2023-02-09 +category: + - .Net +headerDepth: 5 +--- + + +# C# .Net Standard 类库版本 对应。.NetCore 和 .Net Framework 支持 +![image-1675923628386](https://local.wuanwanghao.top:9000/test/test/image-1675923628386.png) + + + .Net Standard 是一种规范 + .Net Core 的出现是微软为了在 .Net 复杂概念中一种解决方法。并且实现了跨平台的功能 .Net Core 可以看做是一种新类型的规范 ,当然也有相应的实现。 + 当然 .Net Core 也支持 .Net Standard 规范。 + ![image-1675924247126](https://local.wuanwanghao.top:9000/test/test/image-1675924247126.png) + + diff --git a/WebMVC/WebMVCApi/md/C# 修改NuGet 包的安装路径.md b/WebMVC/WebMVCApi/md/C# 修改NuGet 包的安装路径.md new file mode 100644 index 0000000..5a8a075 --- /dev/null +++ b/WebMVC/WebMVCApi/md/C# 修改NuGet 包的安装路径.md @@ -0,0 +1,25 @@ +--- +icon: edit +date: 2023-02-09 +category: + - .Net +headerDepth: 5 +--- + + +# C# 修改NuGet 包的安装路径 +NuGet 是 .NET 平台下的一个免费、开源的包管理开发工具。 + +修改全局包管理目录 +通过 NuGet 安装包时,NuGet 先将包下载至一个统一的目录,默认路径是:C:\Users\用户名\.nuget\packages + +下载的包多了以后,会导致 C 盘空间被大量占用。我们可以通过修改配置将其指定到自定义的目录下。 + +搜索 NuGet.Config 文件,默认位置是:C:\Users\用户名\AppData\Roaming\NuGet,在根节点下添加如下配置: +``` xml + + + +``` +其中添加 value 修改为要保存的位置 如果不生效可以修改下在电脑的 C:\Program Files (x86)\NuGet\Config 下有一个 ```Microsoft.VisualStudio.Offline.config``` 文件 添加同样的配置 + diff --git a/WebMVC/WebMVCApi/md/C# 链接 docker 中 sqlserver 的一下问题解决.md b/WebMVC/WebMVCApi/md/C# 链接 docker 中 sqlserver 的一下问题解决.md new file mode 100644 index 0000000..b85c791 --- /dev/null +++ b/WebMVC/WebMVCApi/md/C# 链接 docker 中 sqlserver 的一下问题解决.md @@ -0,0 +1,23 @@ +--- +icon: edit +date: 2023-03-02 +category: + - .Net +headerDepth: 5 +--- + + +# C# 链接 docker 中 sqlserver 的一下问题解决 + +System.ComponentModel.Win32Exception (0x80090325): 证书链是由不受信任的颁发机构颁发的 这是远程链接的数据库中有不信任的证书。 +windows 下出行此问题 在链接字符串中添加 +``` +Encrypt=True;TrustServerCertificate=True; +``` + +The login is from an untrusted domain and cannot be used with Int +egrated authentication. +出现此问题就是 使用的windows 身份认证登录和 sqlserver 认证登录同时使用了,确定一个把windows 身份认证登录 删掉 +``` +Trusted_Connection=True; +``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/C++ 字符串比较的一下方法.md b/WebMVC/WebMVCApi/md/C++ 字符串比较的一下方法.md new file mode 100644 index 0000000..9215046 --- /dev/null +++ b/WebMVC/WebMVCApi/md/C++ 字符串比较的一下方法.md @@ -0,0 +1,44 @@ +--- +icon: edit +date: 2023-01-31 +category: + - cpp +headerDepth: 5 +--- + + +# C++ 字符串比较的一下方法 +字符串比较是否包含 +``` + bool canConstruct(std::string ransomNote, std::string magazine) + { //字符串等长情况 + int magazineLength =magazine.length(); + int ransomNoteLength =ransomNote.length(); + if(magazineLength == ransomNoteLength){ + for (size_t i = 0; i < ransomNoteLength; i++) + { + if(magazine[i]!=ransomNote[i]){ + return false; + } + } + return true; + } + + if (magazineLength > ransomNoteLength) + { + int temp= 0; + for (size_t i = 0; i < magazineLength; i++) + { + if(magazine[i]==ransomNote[temp]){ + temp++; + }else{ + temp = 0; + } + if(temp==ransomNoteLength){ + return true; + } + } + } + return false; + } +``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/C++实现AES加解密算法.md b/WebMVC/WebMVCApi/md/C++实现AES加解密算法.md new file mode 100644 index 0000000..f477ea0 --- /dev/null +++ b/WebMVC/WebMVCApi/md/C++实现AES加解密算法.md @@ -0,0 +1,601 @@ +--- +icon: edit +date: 2022-10-14 +category: + - cpp +headerDepth: 5 +--- + + +# C++实现AES加解密算法 +# AES 头文件 +## CAES.h +```Cpp +#pragma once + +class CAES +{ +public: + CAES(const char* key); + virtual ~CAES(); + + /** + * 加密 + * @param in 输入加密数据 + * @param inlen 输入加密数据长度 + * @param outlen 输出加密后数据长度 + * @param fill 如果不是16的整数倍,是否用0值补全。 true:用0值补全, false:用xor加密多余的数据 + * @return 返回加密后数据 + */ + void* Encrypt(void* in, int inlen, int& outlen, bool fill = false); + + /** + * 解密 + * @param in 输入解密数据 + * @param inlen 输入解密数据长度 + * @param outlen 输出解密后数据长度 + * @return 返回解密后数据 + */ + void* Decrypt(void* in, int inlen, int& outlen); + +private: + // S 盒变换 + unsigned char Sbox[256]; + // 逆 S 盒变换 + unsigned char InvSbox[256]; + // 密钥 + unsigned char w[11][4][4]; + +private: + /** + * 密钥扩展函数 - 对128位密钥进行扩展得到 w[11][4][4] + * @param key 16位密钥 + */ + void KeyExpansion(const char* key); + + /** + * 异或加解密 + * @param in 加解密输入数据 + * @param len 加解密输入数据长度 + */ + void Xor(unsigned char* in, int len); + + /** + * 加密,传入的数组大小必须是16字节 + * @param data 加密数据 + */ + void Encrypt(unsigned char* data); + + /** + * 解密,传入的数组也必须是16字节 + * @param data 解密数据 + */ + void Decrypt(unsigned char* data); + + /** + * S 盒变换 + * @param state 变换数据 + */ + void SubBytes(unsigned char state[][4]); + + /** + * 行变换 + * @param state 变换数据 + */ + void ShiftRows(unsigned char state[][4]); + + /** + * 列变换 + * @param state 变换数据 + */ + void MixColumns(unsigned char state[][4]); + + /** + * 与扩展密钥的异或 + * @param state 变换数据 + */ + void AddRoundKey(unsigned char state[][4], unsigned char k[][4]); + + /** + * 逆 S 盒变换 + * @param state 变换数据 + */ + void InvSubBytes(unsigned char state[][4]); + + /** + * 逆行变换 + * @param state 变换数据 + */ + void InvShiftRows(unsigned char state[][4]); + + /** + * 逆列变换 + * @param state 变换数据 + */ + void InvMixColumns(unsigned char state[][4]); +}; + +``` +# AES 实现文件 +## CAES.cpp +```Cpp +#include "CAES.h" +#include +#include + +unsigned char Mul_01[256] = { + 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f, + 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f, + 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f, + 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f, + 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f, + 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f, + 0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f, + 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f, + 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f, + 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f, + 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf, + 0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf, + 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf, + 0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf, + 0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef, + 0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff, +}; + +unsigned char Mul_02[256] = { + 0x00,0x02,0x04,0x06,0x08,0x0a,0x0c,0x0e,0x10,0x12,0x14,0x16,0x18,0x1a,0x1c,0x1e, + 0x20,0x22,0x24,0x26,0x28,0x2a,0x2c,0x2e,0x30,0x32,0x34,0x36,0x38,0x3a,0x3c,0x3e, + 0x40,0x42,0x44,0x46,0x48,0x4a,0x4c,0x4e,0x50,0x52,0x54,0x56,0x58,0x5a,0x5c,0x5e, + 0x60,0x62,0x64,0x66,0x68,0x6a,0x6c,0x6e,0x70,0x72,0x74,0x76,0x78,0x7a,0x7c,0x7e, + 0x80,0x82,0x84,0x86,0x88,0x8a,0x8c,0x8e,0x90,0x92,0x94,0x96,0x98,0x9a,0x9c,0x9e, + 0xa0,0xa2,0xa4,0xa6,0xa8,0xaa,0xac,0xae,0xb0,0xb2,0xb4,0xb6,0xb8,0xba,0xbc,0xbe, + 0xc0,0xc2,0xc4,0xc6,0xc8,0xca,0xcc,0xce,0xd0,0xd2,0xd4,0xd6,0xd8,0xda,0xdc,0xde, + 0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xee,0xf0,0xf2,0xf4,0xf6,0xf8,0xfa,0xfc,0xfe, + 0x1b,0x19,0x1f,0x1d,0x13,0x11,0x17,0x15,0x0b,0x09,0x0f,0x0d,0x03,0x01,0x07,0x05, + 0x3b,0x39,0x3f,0x3d,0x33,0x31,0x37,0x35,0x2b,0x29,0x2f,0x2d,0x23,0x21,0x27,0x25, + 0x5b,0x59,0x5f,0x5d,0x53,0x51,0x57,0x55,0x4b,0x49,0x4f,0x4d,0x43,0x41,0x47,0x45, + 0x7b,0x79,0x7f,0x7d,0x73,0x71,0x77,0x75,0x6b,0x69,0x6f,0x6d,0x63,0x61,0x67,0x65, + 0x9b,0x99,0x9f,0x9d,0x93,0x91,0x97,0x95,0x8b,0x89,0x8f,0x8d,0x83,0x81,0x87,0x85, + 0xbb,0xb9,0xbf,0xbd,0xb3,0xb1,0xb7,0xb5,0xab,0xa9,0xaf,0xad,0xa3,0xa1,0xa7,0xa5, + 0xdb,0xd9,0xdf,0xdd,0xd3,0xd1,0xd7,0xd5,0xcb,0xc9,0xcf,0xcd,0xc3,0xc1,0xc7,0xc5, + 0xfb,0xf9,0xff,0xfd,0xf3,0xf1,0xf7,0xf5,0xeb,0xe9,0xef,0xed,0xe3,0xe1,0xe7,0xe5 +}; + +unsigned char Mul_03[256] = { + 0x00,0x03,0x06,0x05,0x0c,0x0f,0x0a,0x09,0x18,0x1b,0x1e,0x1d,0x14,0x17,0x12,0x11, + 0x30,0x33,0x36,0x35,0x3c,0x3f,0x3a,0x39,0x28,0x2b,0x2e,0x2d,0x24,0x27,0x22,0x21, + 0x60,0x63,0x66,0x65,0x6c,0x6f,0x6a,0x69,0x78,0x7b,0x7e,0x7d,0x74,0x77,0x72,0x71, + 0x50,0x53,0x56,0x55,0x5c,0x5f,0x5a,0x59,0x48,0x4b,0x4e,0x4d,0x44,0x47,0x42,0x41, + 0xc0,0xc3,0xc6,0xc5,0xcc,0xcf,0xca,0xc9,0xd8,0xdb,0xde,0xdd,0xd4,0xd7,0xd2,0xd1, + 0xf0,0xf3,0xf6,0xf5,0xfc,0xff,0xfa,0xf9,0xe8,0xeb,0xee,0xed,0xe4,0xe7,0xe2,0xe1, + 0xa0,0xa3,0xa6,0xa5,0xac,0xaf,0xaa,0xa9,0xb8,0xbb,0xbe,0xbd,0xb4,0xb7,0xb2,0xb1, + 0x90,0x93,0x96,0x95,0x9c,0x9f,0x9a,0x99,0x88,0x8b,0x8e,0x8d,0x84,0x87,0x82,0x81, + 0x9b,0x98,0x9d,0x9e,0x97,0x94,0x91,0x92,0x83,0x80,0x85,0x86,0x8f,0x8c,0x89,0x8a, + 0xab,0xa8,0xad,0xae,0xa7,0xa4,0xa1,0xa2,0xb3,0xb0,0xb5,0xb6,0xbf,0xbc,0xb9,0xba, + 0xfb,0xf8,0xfd,0xfe,0xf7,0xf4,0xf1,0xf2,0xe3,0xe0,0xe5,0xe6,0xef,0xec,0xe9,0xea, + 0xcb,0xc8,0xcd,0xce,0xc7,0xc4,0xc1,0xc2,0xd3,0xd0,0xd5,0xd6,0xdf,0xdc,0xd9,0xda, + 0x5b,0x58,0x5d,0x5e,0x57,0x54,0x51,0x52,0x43,0x40,0x45,0x46,0x4f,0x4c,0x49,0x4a, + 0x6b,0x68,0x6d,0x6e,0x67,0x64,0x61,0x62,0x73,0x70,0x75,0x76,0x7f,0x7c,0x79,0x7a, + 0x3b,0x38,0x3d,0x3e,0x37,0x34,0x31,0x32,0x23,0x20,0x25,0x26,0x2f,0x2c,0x29,0x2a, + 0x0b,0x08,0x0d,0x0e,0x07,0x04,0x01,0x02,0x13,0x10,0x15,0x16,0x1f,0x1c,0x19,0x1a +}; + +unsigned char Mul_09[256] = { + 0x00,0x09,0x12,0x1b,0x24,0x2d,0x36,0x3f,0x48,0x41,0x5a,0x53,0x6c,0x65,0x7e,0x77, + 0x90,0x99,0x82,0x8b,0xb4,0xbd,0xa6,0xaf,0xd8,0xd1,0xca,0xc3,0xfc,0xf5,0xee,0xe7, + 0x3b,0x32,0x29,0x20,0x1f,0x16,0x0d,0x04,0x73,0x7a,0x61,0x68,0x57,0x5e,0x45,0x4c, + 0xab,0xa2,0xb9,0xb0,0x8f,0x86,0x9d,0x94,0xe3,0xea,0xf1,0xf8,0xc7,0xce,0xd5,0xdc, + 0x76,0x7f,0x64,0x6d,0x52,0x5b,0x40,0x49,0x3e,0x37,0x2c,0x25,0x1a,0x13,0x08,0x01, + 0xe6,0xef,0xf4,0xfd,0xc2,0xcb,0xd0,0xd9,0xae,0xa7,0xbc,0xb5,0x8a,0x83,0x98,0x91, + 0x4d,0x44,0x5f,0x56,0x69,0x60,0x7b,0x72,0x05,0x0c,0x17,0x1e,0x21,0x28,0x33,0x3a, + 0xdd,0xd4,0xcf,0xc6,0xf9,0xf0,0xeb,0xe2,0x95,0x9c,0x87,0x8e,0xb1,0xb8,0xa3,0xaa, + 0xec,0xe5,0xfe,0xf7,0xc8,0xc1,0xda,0xd3,0xa4,0xad,0xb6,0xbf,0x80,0x89,0x92,0x9b, + 0x7c,0x75,0x6e,0x67,0x58,0x51,0x4a,0x43,0x34,0x3d,0x26,0x2f,0x10,0x19,0x02,0x0b, + 0xd7,0xde,0xc5,0xcc,0xf3,0xfa,0xe1,0xe8,0x9f,0x96,0x8d,0x84,0xbb,0xb2,0xa9,0xa0, + 0x47,0x4e,0x55,0x5c,0x63,0x6a,0x71,0x78,0x0f,0x06,0x1d,0x14,0x2b,0x22,0x39,0x30, + 0x9a,0x93,0x88,0x81,0xbe,0xb7,0xac,0xa5,0xd2,0xdb,0xc0,0xc9,0xf6,0xff,0xe4,0xed, + 0x0a,0x03,0x18,0x11,0x2e,0x27,0x3c,0x35,0x42,0x4b,0x50,0x59,0x66,0x6f,0x74,0x7d, + 0xa1,0xa8,0xb3,0xba,0x85,0x8c,0x97,0x9e,0xe9,0xe0,0xfb,0xf2,0xcd,0xc4,0xdf,0xd6, + 0x31,0x38,0x23,0x2a,0x15,0x1c,0x07,0x0e,0x79,0x70,0x6b,0x62,0x5d,0x54,0x4f,0x46 +}; + +unsigned char Mul_0b[256] = { + 0x00,0x0b,0x16,0x1d,0x2c,0x27,0x3a,0x31,0x58,0x53,0x4e,0x45,0x74,0x7f,0x62,0x69, + 0xb0,0xbb,0xa6,0xad,0x9c,0x97,0x8a,0x81,0xe8,0xe3,0xfe,0xf5,0xc4,0xcf,0xd2,0xd9, + 0x7b,0x70,0x6d,0x66,0x57,0x5c,0x41,0x4a,0x23,0x28,0x35,0x3e,0x0f,0x04,0x19,0x12, + 0xcb,0xc0,0xdd,0xd6,0xe7,0xec,0xf1,0xfa,0x93,0x98,0x85,0x8e,0xbf,0xb4,0xa9,0xa2, + 0xf6,0xfd,0xe0,0xeb,0xda,0xd1,0xcc,0xc7,0xae,0xa5,0xb8,0xb3,0x82,0x89,0x94,0x9f, + 0x46,0x4d,0x50,0x5b,0x6a,0x61,0x7c,0x77,0x1e,0x15,0x08,0x03,0x32,0x39,0x24,0x2f, + 0x8d,0x86,0x9b,0x90,0xa1,0xaa,0xb7,0xbc,0xd5,0xde,0xc3,0xc8,0xf9,0xf2,0xef,0xe4, + 0x3d,0x36,0x2b,0x20,0x11,0x1a,0x07,0x0c,0x65,0x6e,0x73,0x78,0x49,0x42,0x5f,0x54, + 0xf7,0xfc,0xe1,0xea,0xdb,0xd0,0xcd,0xc6,0xaf,0xa4,0xb9,0xb2,0x83,0x88,0x95,0x9e, + 0x47,0x4c,0x51,0x5a,0x6b,0x60,0x7d,0x76,0x1f,0x14,0x09,0x02,0x33,0x38,0x25,0x2e, + 0x8c,0x87,0x9a,0x91,0xa0,0xab,0xb6,0xbd,0xd4,0xdf,0xc2,0xc9,0xf8,0xf3,0xee,0xe5, + 0x3c,0x37,0x2a,0x21,0x10,0x1b,0x06,0x0d,0x64,0x6f,0x72,0x79,0x48,0x43,0x5e,0x55, + 0x01,0x0a,0x17,0x1c,0x2d,0x26,0x3b,0x30,0x59,0x52,0x4f,0x44,0x75,0x7e,0x63,0x68, + 0xb1,0xba,0xa7,0xac,0x9d,0x96,0x8b,0x80,0xe9,0xe2,0xff,0xf4,0xc5,0xce,0xd3,0xd8, + 0x7a,0x71,0x6c,0x67,0x56,0x5d,0x40,0x4b,0x22,0x29,0x34,0x3f,0x0e,0x05,0x18,0x13, + 0xca,0xc1,0xdc,0xd7,0xe6,0xed,0xf0,0xfb,0x92,0x99,0x84,0x8f,0xbe,0xb5,0xa8,0xa3 +}; + +unsigned char Mul_0d[256] = { + 0x00,0x0d,0x1a,0x17,0x34,0x39,0x2e,0x23,0x68,0x65,0x72,0x7f,0x5c,0x51,0x46,0x4b, + 0xd0,0xdd,0xca,0xc7,0xe4,0xe9,0xfe,0xf3,0xb8,0xb5,0xa2,0xaf,0x8c,0x81,0x96,0x9b, + 0xbb,0xb6,0xa1,0xac,0x8f,0x82,0x95,0x98,0xd3,0xde,0xc9,0xc4,0xe7,0xea,0xfd,0xf0, + 0x6b,0x66,0x71,0x7c,0x5f,0x52,0x45,0x48,0x03,0x0e,0x19,0x14,0x37,0x3a,0x2d,0x20, + 0x6d,0x60,0x77,0x7a,0x59,0x54,0x43,0x4e,0x05,0x08,0x1f,0x12,0x31,0x3c,0x2b,0x26, + 0xbd,0xb0,0xa7,0xaa,0x89,0x84,0x93,0x9e,0xd5,0xd8,0xcf,0xc2,0xe1,0xec,0xfb,0xf6, + 0xd6,0xdb,0xcc,0xc1,0xe2,0xef,0xf8,0xf5,0xbe,0xb3,0xa4,0xa9,0x8a,0x87,0x90,0x9d, + 0x06,0x0b,0x1c,0x11,0x32,0x3f,0x28,0x25,0x6e,0x63,0x74,0x79,0x5a,0x57,0x40,0x4d, + 0xda,0xd7,0xc0,0xcd,0xee,0xe3,0xf4,0xf9,0xb2,0xbf,0xa8,0xa5,0x86,0x8b,0x9c,0x91, + 0x0a,0x07,0x10,0x1d,0x3e,0x33,0x24,0x29,0x62,0x6f,0x78,0x75,0x56,0x5b,0x4c,0x41, + 0x61,0x6c,0x7b,0x76,0x55,0x58,0x4f,0x42,0x09,0x04,0x13,0x1e,0x3d,0x30,0x27,0x2a, + 0xb1,0xbc,0xab,0xa6,0x85,0x88,0x9f,0x92,0xd9,0xd4,0xc3,0xce,0xed,0xe0,0xf7,0xfa, + 0xb7,0xba,0xad,0xa0,0x83,0x8e,0x99,0x94,0xdf,0xd2,0xc5,0xc8,0xeb,0xe6,0xf1,0xfc, + 0x67,0x6a,0x7d,0x70,0x53,0x5e,0x49,0x44,0x0f,0x02,0x15,0x18,0x3b,0x36,0x21,0x2c, + 0x0c,0x01,0x16,0x1b,0x38,0x35,0x22,0x2f,0x64,0x69,0x7e,0x73,0x50,0x5d,0x4a,0x47, + 0xdc,0xd1,0xc6,0xcb,0xe8,0xe5,0xf2,0xff,0xb4,0xb9,0xae,0xa3,0x80,0x8d,0x9a,0x97 +}; + +unsigned char Mul_0e[256] = { + 0x00,0x0e,0x1c,0x12,0x38,0x36,0x24,0x2a,0x70,0x7e,0x6c,0x62,0x48,0x46,0x54,0x5a, + 0xe0,0xee,0xfc,0xf2,0xd8,0xd6,0xc4,0xca,0x90,0x9e,0x8c,0x82,0xa8,0xa6,0xb4,0xba, + 0xdb,0xd5,0xc7,0xc9,0xe3,0xed,0xff,0xf1,0xab,0xa5,0xb7,0xb9,0x93,0x9d,0x8f,0x81, + 0x3b,0x35,0x27,0x29,0x03,0x0d,0x1f,0x11,0x4b,0x45,0x57,0x59,0x73,0x7d,0x6f,0x61, + 0xad,0xa3,0xb1,0xbf,0x95,0x9b,0x89,0x87,0xdd,0xd3,0xc1,0xcf,0xe5,0xeb,0xf9,0xf7, + 0x4d,0x43,0x51,0x5f,0x75,0x7b,0x69,0x67,0x3d,0x33,0x21,0x2f,0x05,0x0b,0x19,0x17, + 0x76,0x78,0x6a,0x64,0x4e,0x40,0x52,0x5c,0x06,0x08,0x1a,0x14,0x3e,0x30,0x22,0x2c, + 0x96,0x98,0x8a,0x84,0xae,0xa0,0xb2,0xbc,0xe6,0xe8,0xfa,0xf4,0xde,0xd0,0xc2,0xcc, + 0x41,0x4f,0x5d,0x53,0x79,0x77,0x65,0x6b,0x31,0x3f,0x2d,0x23,0x09,0x07,0x15,0x1b, + 0xa1,0xaf,0xbd,0xb3,0x99,0x97,0x85,0x8b,0xd1,0xdf,0xcd,0xc3,0xe9,0xe7,0xf5,0xfb, + 0x9a,0x94,0x86,0x88,0xa2,0xac,0xbe,0xb0,0xea,0xe4,0xf6,0xf8,0xd2,0xdc,0xce,0xc0, + 0x7a,0x74,0x66,0x68,0x42,0x4c,0x5e,0x50,0x0a,0x04,0x16,0x18,0x32,0x3c,0x2e,0x20, + 0xec,0xe2,0xf0,0xfe,0xd4,0xda,0xc8,0xc6,0x9c,0x92,0x80,0x8e,0xa4,0xaa,0xb8,0xb6, + 0x0c,0x02,0x10,0x1e,0x34,0x3a,0x28,0x26,0x7c,0x72,0x60,0x6e,0x44,0x4a,0x58,0x56, + 0x37,0x39,0x2b,0x25,0x0f,0x01,0x13,0x1d,0x47,0x49,0x5b,0x55,0x7f,0x71,0x63,0x6d, + 0xd7,0xd9,0xcb,0xc5,0xef,0xe1,0xf3,0xfd,0xa7,0xa9,0xbb,0xb5,0x9f,0x91,0x83,0x8d +}; + +CAES::CAES(const char* key) +{ + unsigned char sBox[] = + { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5,0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76, /*0*/ + 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0,0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0, /*1*/ + 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc,0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15, /*2*/ + 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a,0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75, /*3*/ + 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0,0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84, /*4*/ + 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b,0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf, /*5*/ + 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85,0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8, /*6*/ + 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5,0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2, /*7*/ + 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17,0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73, /*8*/ + 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88,0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb, /*9*/ + 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c,0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79, /*a*/ + 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9,0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08, /*b*/ + 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6,0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a, /*c*/ + 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e,0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e, /*d*/ + 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94,0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf, /*e*/ + 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68,0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16 /*f*/ + }; + unsigned char invsBox[256] = + { /* 0 1 2 3 4 5 6 7 8 9 a b c d e f */ + 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38,0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb, /*0*/ + 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87,0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb, /*1*/ + 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d,0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e, /*2*/ + 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2,0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25, /*3*/ + 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16,0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92, /*4*/ + 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda,0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84, /*5*/ + 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a,0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06, /*6*/ + 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02,0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b, /*7*/ + 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea,0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73, /*8*/ + 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85,0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e, /*9*/ + 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89,0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b, /*a*/ + 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20,0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4, /*b*/ + 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31,0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f, /*c*/ + 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d,0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef, /*d*/ + 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0,0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61, /*e*/ + 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26,0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d /*f*/ + }; + memcpy(Sbox, sBox, 256); + memcpy(InvSbox, invsBox, 256); + KeyExpansion(key); +} + +CAES::~CAES() +{ + +} + +void CAES::Xor(unsigned char* in, int len) +{ + for (int i = 0; i < len; i++) + in[i] ^= w[i%11][0][0]; +} + +void CAES::Encrypt(unsigned char* data) +{ + unsigned char state[4][4]; + int i, r, c; + + for (r = 0; r < 4; r++) + { + for (c = 0; c < 4; c++) + { + state[r][c] = data[c * 4 + r]; + } + } + + AddRoundKey(state, w[0]); + + for (i = 1; i <= 10; i++) + { + SubBytes(state); + ShiftRows(state); + if (i != 10)MixColumns(state); + AddRoundKey(state, w[i]); + } + + for (r = 0; r < 4; r++) + { + for (c = 0; c < 4; c++) + { + data[c * 4 + r] = state[r][c]; + } + } +} + +void CAES::Decrypt(unsigned char* data) +{ + unsigned char state[4][4]; + int i, r, c; + + for (r = 0; r < 4; r++) + { + for (c = 0; c < 4; c++) + { + state[r][c] = data[c * 4 + r]; + } + } + + AddRoundKey(state, w[10]); + for (i = 9; i >= 0; i--) + { + InvShiftRows(state); + InvSubBytes(state); + AddRoundKey(state, w[i]); + if (i) + { + InvMixColumns(state); + } + } + + for (r = 0; r < 4; r++) + { + for (c = 0; c < 4; c++) + { + data[c * 4 + r] = state[r][c]; + } + } +} + +void* CAES::Encrypt(void* in, int inlen, int& outlen, bool fill) +{ + outlen = inlen; + if (fill && inlen % 16 > 0) + outlen += 16 - (inlen % 16); + + unsigned char* data = new unsigned char[outlen]; + memset(data, 0x0, outlen); + memcpy(data, in, inlen); + for (int i = 0; i < inlen; i += 16) + { + // 不足16位的用异或加密 + if (outlen - i < 16) + Xor(data + i, outlen - i); + else + Encrypt(data + i); + } + + return (void*)data; +} + +void* CAES::Decrypt(void* in, int inlen, int& outlen) +{ + outlen = inlen; + unsigned char* data = new unsigned char[outlen]; + memset(data, 0x0, outlen); + memcpy(data, in, inlen); + + for (int i = 0; i < outlen; i += 16) + { + if (outlen - i < 16) + Xor(data + i, outlen - i); + else + Decrypt(data + i); + } + + return (void*)data; +} + +void CAES::KeyExpansion(const char* key) +{ + int i, j, r, c; + unsigned char rc[] = { 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36 }; + for (r = 0; r < 4; r++) + { + for (c = 0; c < 4; c++) + { + w[0][r][c] = key[r + c * 4]; + } + } + for (i = 1; i <= 10; i++) + { + for (j = 0; j < 4; j++) + { + unsigned char t[4]; + for (r = 0; r < 4; r++) + { + t[r] = j ? w[i][r][j - 1] : w[i - 1][r][3]; + } + if (j == 0) + { + unsigned char temp = t[0]; + for (r = 0; r < 3; r++) + { + t[r] = Sbox[t[(r + 1) % 4]]; + } + t[3] = Sbox[temp]; + t[0] ^= rc[i - 1]; + } + for (r = 0; r < 4; r++) + { + w[i][r][j] = w[i - 1][r][j] ^ t[r]; + } + } + } +} + +void CAES::SubBytes(unsigned char state[][4]) +{ + int r, c; + for (r = 0; r < 4; r++) + { + for (c = 0; c < 4; c++) + { + state[r][c] = Sbox[state[r][c]]; + } + } +} + +void CAES::ShiftRows(unsigned char state[][4]) +{ + unsigned char t[4]; + int r, c; + for (r = 1; r < 4; r++) + { + for (c = 0; c < 4; c++) + { + t[c] = state[r][(c + r) % 4]; + } + for (c = 0; c < 4; c++) + { + state[r][c] = t[c]; + } + } +} + +void CAES::MixColumns(unsigned char state[][4]) +{ + unsigned char t[4]; + int r, c; + for (c = 0; c < 4; c++) + { + for (r = 0; r < 4; r++) + { + t[r] = state[r][c]; + } + for (r = 0; r < 4; r++) + { + state[r][c] = Mul_02[t[r]] + ^ Mul_03[t[(r + 1) % 4]] + ^ Mul_01[t[(r + 2) % 4]] + ^ Mul_01[t[(r + 3) % 4]]; + } + } +} + +void CAES::AddRoundKey(unsigned char state[][4], unsigned char k[][4]) +{ + int r, c; + for (c = 0; c < 4; c++) + { + for (r = 0; r < 4; r++) + { + state[r][c] ^= k[r][c]; + } + } +} + +void CAES::InvSubBytes(unsigned char state[][4]) +{ + int r, c; + for (r = 0; r < 4; r++) + { + for (c = 0; c < 4; c++) + { + state[r][c] = InvSbox[state[r][c]]; + } + } +} + +void CAES::InvShiftRows(unsigned char state[][4]) +{ + unsigned char t[4]; + int r, c; + for (r = 1; r < 4; r++) + { + for (c = 0; c < 4; c++) + { + t[c] = state[r][(c - r + 4) % 4]; + } + for (c = 0; c < 4; c++) + { + state[r][c] = t[c]; + } + } +} + +void CAES::InvMixColumns(unsigned char state[][4]) +{ + unsigned char t[4]; + int r, c; + for (c = 0; c < 4; c++) + { + for (r = 0; r < 4; r++) + { + t[r] = state[r][c]; + } + for (r = 0; r < 4; r++) + { + state[r][c] = Mul_0e[t[r]] + ^ Mul_0b[t[(r + 1) % 4]] + ^ Mul_0d[t[(r + 2) % 4]] + ^ Mul_09[t[(r + 3) % 4]]; + } + } +} +``` +# 测试 +## main.cpp +```Cpp +#include "CAES.h" +#include +#include + +void printf2char(const char* data, int len) { + for (int i = 0; i < len; i++) + { + std::cout << std::hex << static_cast(static_cast(data[i])) << ' '; + } + + std::cout << std::endl; +} + +int main(int argc, char **argv) +{ + CAES* aes = new CAES("1234567890abcdef"); + + char str[] = "guoke3915"; + printf2char(str, strlen(str) + 1); + + int encLen = 0; + char* enc = (char*)aes->Encrypt(str, strlen(str)+1, encLen, true); + printf2char(enc, encLen); + + int decLen = 0; + char* dec = (char*)aes->Decrypt(enc, encLen, decLen); + printf2char(dec, decLen); + + return 0; +} +``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/CMD 获取当前脚本各种路径.md b/WebMVC/WebMVCApi/md/CMD 获取当前脚本各种路径.md new file mode 100644 index 0000000..cbaaf00 --- /dev/null +++ b/WebMVC/WebMVCApi/md/CMD 获取当前脚本各种路径.md @@ -0,0 +1,28 @@ +--- +icon: edit +date: 2023-03-17 +category: + - 系统配置 +tag: + - cmd + - 路径 +headerDepth: 5 +--- + + +# CMD 获取当前脚本各种路径 +```cmd +@echo off +echo 当前盘符:%~d0 +echo 当前盘符和路径:%~dp0 +echo 当前批处理全路径:%~f0 +echo 当前盘符和路径的短文件名格式:%~sdp0 +echo 当前CMD默认目录:%cd% +echo 目录中有空格也可以加入""避免找不到路径 +echo 当前盘符:"%~d0" +echo 当前盘符和路径:"%~dp0" +echo 当前批处理全路径:"%~f0" +echo 当前盘符和路径的短文件名格式:"%~sdp0" +echo 当前CMD默认目录:"%cd%" +pause +``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/Centos7 防火墙.md b/WebMVC/WebMVCApi/md/Centos7 防火墙.md new file mode 100644 index 0000000..3bd75dd --- /dev/null +++ b/WebMVC/WebMVCApi/md/Centos7 防火墙.md @@ -0,0 +1,129 @@ +--- +icon: edit +date: 2022-10-25 +category: + - 系统配置 + - Linux +headerDepth: 5 +--- + + +# Centos7 防火墙 +#### 安装: +yum install firewalld + + +#### 1、firewalld的基本使用 +启动: systemctl start firewalld + +查看状态: systemctl status firewalld + +禁用,禁止开机启动: systemctl disable firewalld + +停止运行: systemctl stop firewalld + + +#### 2.配置firewalld-cmd +查看版本: firewall-cmd --version + +查看帮助: firewall-cmd --help + +显示状态: firewall-cmd --state + +查看所有打开的端口: firewall-cmd --zone=public --list-ports + +更新防火墙规则: firewall-cmd --reload + +更新防火墙规则,重启服务: firewall-cmd --completely-reload + +查看已激活的Zone信息: firewall-cmd --get-active-zones + +查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0 + +拒绝所有包:firewall-cmd --panic-on + +取消拒绝状态: firewall-cmd --panic-off + +查看是否拒绝: firewall-cmd --query-panic + + +#### 3.信任级别,通过Zone的值指定 +drop: 丢弃所有进入的包,而不给出任何响应 + +block: 拒绝所有外部发起的连接,允许内部发起的连接 + +public: 允许指定的进入连接 + +external: 同上,对伪装的进入连接,一般用于路由转发 + +dmz: 允许受限制的进入连接 + +work: 允许受信任的计算机被限制的进入连接,类似 workgroup + +home: 同上,类似 homegroup + +internal: 同上,范围针对所有互联网用户 + +trusted: 信任所有连接 + + +#### 4.firewall开启和关闭端口 +以下都是指在public的zone下的操作,不同的Zone只要改变Zone后面的值就可以 + +自媒体培训 + +添加: firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效) + +重新载入: firewall-cmd --reload + +查看: firewall-cmd --zone=public --query-port=80/tcp + +删除: firewall-cmd --zone=public --remove-port=80/tcp --permanent + + +#### 5.管理服务 +以smtp服务为例, 添加到work zone + +添加: firewall-cmd --zone=work --add-service=smtp + +查看: firewall-cmd --zone=work --query-service=smtp + +删除: firewall-cmd --zone=work --remove-service=smtp + + +#### 6.配置 IP 地址伪装 +查看: firewall-cmd --zone=external --query-masquerade + +打开: firewall-cmd --zone=external --add-masquerade + +关闭: firewall-cmd --zone=external --remove-masquerade + + +#### 7.端口转发 +打开端口转发,首先需要打开IP地址伪装 firewall-cmd --zone=external --add-masquerade + +转发 tcp 22 端口至 3753: firewall-cmd --zone=external --add-forward-port=22:porto=tcp:toport=3753 + +转发端口数据至另一个IP的相同端口: firewall-cmd --zone=external --add-forward-port=22:porto=tcp:toaddr=192.168.1.112 + +转发端口数据至另一个IP的 3753 端口: firewall-cmd --zone=external --add-forward-port=22:porto=tcp::toport=3753:toaddr=192.168.1.112 + + +#### 8.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。 +启动一个服务:systemctl start firewalld.service + +关闭一个服务:systemctl stop firewalld.service + +重启一个服务:systemctl restart firewalld.service + +显示一个服务的状态:systemctl status firewalld.service + +在开机时启用一个服务:systemctl enable firewalld.service + +在开机时禁用一个服务:systemctl disable firewalld.service + +查看服务是否开机启动:systemctl is-enabled firewalld.service + +查看已启动的服务列表:systemctl list-unit-files|grep enabled + +查看启动失败的服务列表:systemctl --failed \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/DDE 动态数据交换 相关技术文档.md b/WebMVC/WebMVCApi/md/DDE 动态数据交换 相关技术文档.md new file mode 100644 index 0000000..e919855 --- /dev/null +++ b/WebMVC/WebMVCApi/md/DDE 动态数据交换 相关技术文档.md @@ -0,0 +1,24 @@ +--- +icon: edit +date: 2023-03-17 +category: + - 系统配置 + - DDE +headerDepth: 5 +--- + + +# DDE 动态数据交换 相关技术文档 +DDE 相关技术文档 + +## 关于动态数据Exchange +Windows提供了几种在应用程序之间传输数据的方法。 一种方法是使用动态数据Exchange (DDE) 协议。 DDE 协议是一组消息和准则。 它在共享数据的应用程序之间发送消息,并使用共享内存在应用程序之间交换数据。 应用程序可以使用 DDE 协议进行一次性数据传输和连续交换,应用程序在新的数据可用时将更新发送到彼此。 + +Windows还支持动态数据Exchange管理库 (DDEML) 。 DDEML 是一个动态链接库, (DLL) 应用程序可用于共享数据。 DDEML 提供函数和消息,用于简化向应用程序添加 DDE 功能的任务。 应用程序使用 DDEML 函数来管理 DDE 对话,而不是直接发送、发布和处理 DDE 消息。 (DDE 对话是客户端和服务器应用程序之间的交互。) + +DDEML 还提供用于管理 DDE 应用程序共享的字符串和数据的工具。 DDE 应用程序创建和交换字符串句柄(标识字符串)和数据句柄,而不是使用原子和指向共享内存对象的指针。 DDEML 还使服务器应用程序能够注册它支持的服务名称。 这些名称将广播到系统中的其他应用程序,这些应用程序可以使用名称连接到服务器。 此外,DDEML 通过强制 DDE 应用程序以一致的方式实现 DDE 协议,确保 DDE 应用程序之间的兼容性。 + +使用基于消息的 DDE 协议的现有应用程序与使用 DDEML 的应用程序完全兼容。 也就是说,使用基于消息的 DDE 的应用程序可以建立对话,并与使用 DDEML 的应用程序执行事务。 由于 DDEML 的许多优点,新应用程序应使用它而不是 DDE 消息。 若要使用 DDEML 的 API 元素,必须在源文件中包含 DDEML 头文件、链接到 DDEML 库,并确保 DDEML 动态链接库位于系统的搜索路径中。 + +微软官方介绍文档 [关于动态数据Exchange](https://learn.microsoft.com/zh-cn/windows/win32/dataxchg/about-dynamic-data-exchange) +微软官方api文档 [动态数据交换](https://learn.microsoft.com/zh-cn/windows/win32/api/_dataxchg/) \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/DNS泛域名解析应用(nip.iosslip.io)直接通过nip.io域名拼接ip地址的方式直接解析到指定ip.md b/WebMVC/WebMVCApi/md/DNS泛域名解析应用(nip.iosslip.io)直接通过nip.io域名拼接ip地址的方式直接解析到指定ip.md new file mode 100644 index 0000000..47e86b4 --- /dev/null +++ b/WebMVC/WebMVCApi/md/DNS泛域名解析应用(nip.iosslip.io)直接通过nip.io域名拼接ip地址的方式直接解析到指定ip.md @@ -0,0 +1,27 @@ +--- +icon: edit +date: 2022-12-15 +category: + - 系统配置 + - Linux + - 网站搭建 +tag: + - nip.io + - 域名 +headerDepth: 5 +--- + + +# DNS泛域名解析应用(nip.io/sslip.io)直接通过nip.io域名拼接ip地址的方式直接解析到指定ip +使用 nip.io 作为k8s的入口 域名解析。 nip.io 是一个免费的域名解析服务,可以将符合下列格式的域名解析对应的ip,可用来作为应用路由的解析服务,省去配置本地 hosts 文件的步骤。 +格式 +``` +10.0.0.1.nip.io maps to 10.0.0.1 +app.10.0.0.1.nip.io maps to 10.0.0.1 +customer1.app.10.0.0.1.nip.io maps to 10.0.0.1 +customer2.app.10.0.0.1.nip.io maps to 10.0.0.1 +otherapp.10.0.0.1.nip.io maps to 10.0.0.1 +``` +例如,Ingress IP 地址为 139.198.121.154,在创建应用路由时,Hostname 一栏填写为 demo.139.198.121.154.nip.io,其它保持原来的设置。 + +sslip.io 也是一种类似域名解析服务,使SSL证书生成更加容易。 \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/Docker 安装 minio.md b/WebMVC/WebMVCApi/md/Docker 安装 minio.md new file mode 100644 index 0000000..5d10877 --- /dev/null +++ b/WebMVC/WebMVCApi/md/Docker 安装 minio.md @@ -0,0 +1,26 @@ +--- +icon: edit +date: 2022-10-17 +category: + - Docker +headerDepth: 5 +--- + + +# Docker 安装 minio +``` +docker run -d --name minio \ +-p 9000:9000 \ +-p 9001:9001 \ +--restart=always \ +-e MINIO_ACCESS_KEY=minio \ +-e MINIO_SECRET_KEY=minio123 \ +-e "MINIO_BROWSER_REDIRECT_URL=https://local.wuanwanghao.top:9001" \ +-e "MINIO_SERVER_URL=https://local.wuanwanghao.top:9000" \ +-v /home/wanghao/minio/config:/root/.minio \ +-v /home/wanghao/minio/data1:/data1 \ +-v /home/wanghao/minio/data2:/data2 \ +-v /home/wanghao/minio/data3:/data3 \ +-v /home/wanghao/minio/data4:/data4 \ +minio/minio server /data{1...4} --console-address ":9001" -address ":9000" +``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/Docker 安装mysql8.0.md b/WebMVC/WebMVCApi/md/Docker 安装mysql8.0.md new file mode 100644 index 0000000..533d108 --- /dev/null +++ b/WebMVC/WebMVCApi/md/Docker 安装mysql8.0.md @@ -0,0 +1,118 @@ +--- +icon: edit +date: 2021-09-15 +category: + - Docker +tag: + - Docker + - mysql +headerDepth: 5 +--- + + +# Docker 安装mysql8.0 +### 一、写在前面 +今天自己原本的mysql服务配置出了问题,刚好自己接触了容器技术,就想着自己使用docker重新部署一个mysql服务。 + +### 二、下载步骤 +首先要获取mysql镜像(可以通过官网下载或者从公司的仓库获取),下面演示从官网下载步骤 + +#### 2.1 docker search mysql,可以看到搜索的结果,这个结果是按照一定的星级评价规则排序的。 +![image.png](/upload/2021/09/image-6acf16e6457a48e49d80b7b1e6561073.png) +#### 2.2 docker pull mysql 拉取一个合适版本的mysql到本地服务器 + +### 三、启动镜像 +```txt +-p 3307:3306:将容器的3307端口映射到主机的3306端口; + +-v $PWD/mysql:/var/lib/mysql:将主机当前目录下的/mysql挂载到容器的/var/lib/mysql; + +-e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码; + +–name 给容器命名,test_mysql +-d 表示刚下载的镜像id +``` +命令行如下: +```shell +docker run \ +-p 3307:3306 \ +--name mysql_3307 \ +--privileged=true \ +-v /wanghao/mysql_3307/conf.d:/etc/mysql/conf.d \ +-v /wanghao/mysql_3307/logs:/logs \ +-v /wanghao/mysql_3307/data:/var/lib/mysql \ +-v /etc/localtime:/etc/localtime \ +-v /wanghao/mysql_3307/mysql-files:/var/lib/mysql-files \ +-e MYSQL_ROOT_PASSWORD=123456 \ +-d mysql +``` + +### 四、局域网无法访问数据库的方法 +```sql +create user 'wanghao'@'%' identified with mysql_native_password by 'Wh*123456'; +grant all privileges on *.* to 'wanghao'@'%'; +``` + + + +注意:这里platform可以任意命名,表示赋予这个账户的权限,这里是赋予所有的权限 +```sql +update user set host='%' where user='root'; +alter user 'root'@'%' identified with mysql_native_password by 'root'; +``` +刷新权限: +```sql +mysql> flush privileges; +Query OK, 0 rows affected (0.00 sec) +``` + +### 五、表名大小写问题 +![image.png](/upload/2021/10/image-c13812355983466f952a08f36c406b63.png) + +MySQL 上了 8 后,在 Linux 端,对于 lower_case_table_names 参数,只能在初始化的时候设置了,若初始化的时候没设置,那后面就傻愣愣了 + +示例: + +当前本地已有环境设置为 lower_case_table_names = 1 了,将 lower_case_table_names 修改为 0 会发生什么。 + +测试版本 +```shell +root [(none)]> select version(); ++-----------+ +| version() | ++-----------+ +| 8.0.18 | ++-----------+ +1 row in set (0.00 sec) +``` +lower_case_table_names不是动态参数,将my.cnf 中 lower_case_table_names 改为 0 + +重启 mysql + +查看错误日志 +```log +2020-09-22T17:16:49.781973+08:00 1 [ERROR] [MY-011087] [Server] Different lower_case_table_names settings for server ('0') and data dictionary ('1'). +2020-09-22T17:16:49.782401+08:00 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed. +2020-09-22T17:16:49.782620+08:00 0 [ERROR] [MY-010119] [Server] Aborting +``` +官方是这么说的 + +地址:https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html +![image.png](https://pic4.zhimg.com/v2-7f96160724c66388120bafc3ff3f6d1b_r.jpg) + +所以,除非你是安装在 windows上或者可以确保开发人员实行规范建表等操作,不然就在初始化配置my.cnf时候就将 lower_case_table_names = 1 配置上去吧 + +#### docker 部署要大小写忽略只能 运行容器命令的时候加上了 +```shell +docker run \ +-p 3307:3306 \ +--name mysql_3307 \ +--privileged=true \ +-v /wanghao/mysql_3307/conf.d:/etc/mysql/conf.d \ +-v /wanghao/mysql_3307/logs:/logs \ +-v /wanghao/mysql_3307/data:/var/lib/mysql \ +-v /etc/localtime:/etc/localtime \ +-v /wanghao/mysql_3307/mysql-files:/var/lib/mysql-files \ +-e MYSQL_ROOT_PASSWORD=123456 \ +-d mysql --lower-case-table-names=1 +``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/Docker给nginx添加端口映射.md b/WebMVC/WebMVCApi/md/Docker给nginx添加端口映射.md new file mode 100644 index 0000000..f62e6bd --- /dev/null +++ b/WebMVC/WebMVCApi/md/Docker给nginx添加端口映射.md @@ -0,0 +1,100 @@ +--- +icon: edit +date: 2021-09-16 +category: + - Docker +tag: + - Docker + - nginx +headerDepth: 5 +--- + + +# Docker给nginx添加端口映射 +## 场景: +>运行了nginx,一开始只映射了80端口,后面载部署项目的时候,需要用到其他端口,不想重新部署容器,所以通过修改配置文件的方式给容器添加其他端口 +>当然。添加端口的方法是通用的,除此以外的方法比如将容器打包成镜像,再运行一个容器,或者干脆放弃当前容器,重新运行一个容器是完全不在我考虑范围内的 + +## 1、查看容器ID +执行命令 +```shell +docker inspect nginx # 容器名 +``` +输出 + +```json +[ + { + "Id": "135254e3429d1e75aa68569137c753b789416256f2ced52b4c5a85ec3849db87", # hash_of_the_container + "Created": "2020-08-21T09:41:36.597993005Z", + "Path": "/docker-entrypoint.sh", + "Args": [ + "nginx", + "-g", + "daemon off;" + ], + "State": { +... +``` +## 2、修改之前一定要先停掉容器,否则自动还原 +```shell +docker stop nginx +``` +## 3、修改配置文件 +修改hostconfig.json + +```shell +cd /var/lib/docker/containers/135254e3429d1e75aa68569137c753b789416256f2ced52b4c5a85ec3849db87 # container id + +vim hostconfig.json +``` + +找到端口绑定,原本内容: + +![image.png](/upload/2021/09/image-b18afbfb43414f6da5550bae5f7566c0.png) + +照猫画虎,添加端口 + +```json +"PortBindings": { + "80/tcp": [ + { + "HostIp": "", + "HostPort": "80" + } + ], + "8080/tcp": [ + { + "HostIp": "", + "HostPort": "8080" + } + ], + "8189/tcp": [ + { + "HostIp": "", + "HostPort": "8189" + } + ] +}, +``` +修改config.v2.json + +同路径下打开config.v2.json,修改:ExposedPorts + +```json +"ExposedPorts": { + "80/tcp": {}, + "8080/tcp": {}, + "8189/tcp": {} +}, +... # 略 +``` + +### 注意 +很多文章中提到还要修改Ports,实际上是不需要的,只有在你没有stop容器时,Ports才会有值,如果关闭了容器,就是null。当然如果你修改了也无所谓,因为重启容器后,就会被刷新。 + +## 4、保存、退出、重启容器 +```shell +sudo systemctl restart docker.service # 重启docker服务 +docker start nginx # 容器名 # 启动容器 +``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/EF Core 工具 命令行工具-非包管理器的控制台工具(Entity Framework Core tools reference - .NET Core CLI).md b/WebMVC/WebMVCApi/md/EF Core 工具 命令行工具-非包管理器的控制台工具(Entity Framework Core tools reference - .NET Core CLI).md new file mode 100644 index 0000000..fa47e56 --- /dev/null +++ b/WebMVC/WebMVCApi/md/EF Core 工具 命令行工具-非包管理器的控制台工具(Entity Framework Core tools reference - .NET Core CLI).md @@ -0,0 +1,70 @@ +--- +icon: edit +date: 2023-03-31 +category: + - .Net +tag: + - EF Core + - dotnet-cli +headerDepth: 5 +--- + + +# EF Core 工具 命令行工具-非包管理器的控制台工具(Entity Framework Core tools reference - .NET Core CLI) +### 安装工具 + +```shell +dotnet tool install --global dotnet-ef +``` +若要将它用作本地工具,请使用工具清单文件恢复声明为工具依赖项的项目的依赖项。 + +使用下列命令更新工具: +```shell +dotnet tool update --global dotnet-ef +``` + +在将工具用于特定项目之前,需要将 Microsoft.EntityFrameworkCore.Design 添加到该项目中。 +```shell +dotnet add package Microsoft.EntityFrameworkCore.Design +``` + + +### 验证安装 +运行以下命令,验证是否已正确安装 EF Core CLI 工具: + +```shell +dotnet ef +``` + +命令的输出标识使用的工具版本: + +```shell + + _/\__ + ---==/ \\ + ___ ___ |. \|\ + | __|| __| | ) \\\ + | _| | _| \_/ | //|\\ + |___||_| / \\\/\\ + +Entity Framework Core .NET Command-line Tools 7.0.3 + +Usage: dotnet ef [options] [command] + +Options: + --version Show version information + -h|--help Show help information + -v|--verbose Show verbose output. + --no-color Don't colorize output. + --prefix-output Prefix output with level. + +Commands: + database Commands to manage the database. + dbcontext Commands to manage DbContext types. + migrations Commands to manage migrations. +``` + +更新工具 +使用 ```dotnet tool update --global dotnet-ef``` 将全局工具更新到最新的可用版本。 如果在项目中本地安装了这些工具,请使用 ```dotnet tool update dotnet-ef。``` 通过将 --version 追加到命令来安装特定版本。 有关更多详细信息,请参阅 dotnet 工具文档的更新部分。 + +更多用法参考官方文档 [Entity Framework Core 工具参考 - .NET Core CLI](https://learn.microsoft.com/zh-cn/ef/core/cli/dotnet) \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/FRP 简单入门安装配置教程 - 开源免费内网穿透工具,无公网 IP 远程访问.md b/WebMVC/WebMVCApi/md/FRP 简单入门安装配置教程 - 开源免费内网穿透工具,无公网 IP 远程访问.md new file mode 100644 index 0000000..6f1f35f --- /dev/null +++ b/WebMVC/WebMVCApi/md/FRP 简单入门安装配置教程 - 开源免费内网穿透工具,无公网 IP 远程访问.md @@ -0,0 +1,118 @@ +--- +icon: edit +date: 2021-09-17 +category: + - 内网穿透 +tag: + - frp +headerDepth: 5 +--- + + +# FRP 简单入门安装配置教程 - 开源免费内网穿透工具,无公网 IP 远程访问 +虽然现在宽带速度都很快,但对于电脑玩家来说,最大的问题是 **“没有公网 IP”!** 这使得想要在外访问家里的电脑、NAS、树莓派、摄像头等网络设备或远程控制等,都无法轻松实现。 + +这时你就需要一款**内网穿透工具**来让外网与你家内网建立起连接,实现无公网 IP 的远程访问了。 **「Frp」** 是一款流行的跨平台开源免费内网穿透工具,支持 Windows、macOS 与 Linux。你只需一台快速稳定的 VPS 服务器即可愉快地进行内网穿透,实现家中设备公网直接访问了…… + + +> ### 安装 FRP 需要准备的材料: + +很多地方宽带都已不再提供**公网 IP** 了,如果你想家里的设备如 NAS、电脑可在外网访问,那么只能通过内网穿透工具实现。考虑到安全和稳定性,最优方案是买一台 VPS 服务器用于内网穿透。现在正好赶上双11,其中「**阿里云双11活动**」非常给力!**腾讯云、Vultr** 也值得考虑。 + +在内网也需要一台机器用于运行 Frp 的客户端,可以是 Windows 电脑、Mac,或者是树莓派、NAS 等 Linux 设备。 + +市面上也有其他方案,比如花生壳相关软硬件产品,免费限制很多,付费价格贵,浪不起来。其他小公司的产品安全性又无法保证,那还不如自己买 VPS 建一个,有自己的服务器,日后各种建站的玩法还更多更实用,还能顺便学学 Linux 呢。 + +> ### 什么是 Frp? + +段落引用内网穿透工具有很多,其中 Frp (Fast Reverse Proxy) 是比较流行的一款。FRP 是一个免费开源的用于内网穿透的反向代理应用,它支持 TCP、UDP 协议, 也为 http 和 https 协议提供了额外的支持。你可以粗略理解它是一个中转站,帮你实现 ```公网 ←→ FRP(服务器) ←→ 家庭内网 的连接```,让内网里的设备也可以被公网访问到。 +![](https://img.iplaysoft.com/wp-content/uploads/2019/frp/frp_architecture.png!0x0.webp) +
官方提供的 Frp 架构原理示意图
+ +而目前 FRP 还推出了“点对点穿透”的试验性功能,连接成功后可以让公网设备直接跟内网设备“点对点”传输,数据流不再经过 VPS 中转,这样可以不受服务器带宽的限制,传输大文件会更快更稳定。当然,此功能并不能保证在你的网络环境 100% 可用,而且还要求访问端也得运行 FRP 客户端 (因此目前手机是无法实现的,只有电脑可以)。由于实现条件较多,所以有文件传输需求的朋友还是建议买带宽稍大一点的 VPS 会比较省心。 + +> ### 简单的 Frp 安装配置教程: +现在假设你已经有一台 VPS 服务器了,那么只需按照下面的步骤,一步一步来来即可搞定 FRP 的安装和配置。当然,这里涉及到一些 Linux 基础操作命令,如果完全未接触过的朋友,可以找一些「Linux 入门教程」先了解一下。 + +> ### 1、服务器端安装配置 Frp: +FRP 使用 Go 语言开发,可以支持 Windows、Linux、macOS、ARM 等多平台部署。FRP 安装非常容易,只需下载对应系统平台的软件包并解压就可用了。这里以 Linux 系统为例: +``` shell +export FRP_VERSION=0.29.1 +sudo mkdir -p /etc/frp +cd /etc/frp +sudo wget "https://github.com/fatedier/frp/releases/download/v${FRP_VERSION}/frp_${FRP_VERSION}_linux_amd64.tar.gz" +sudo tar xzvf frp_${FRP_VERSION}_linux_amd64.tar.gz +sudo mv frp_${FRP_VERSION}_linux_amd64/* /etc/frp +``` +其中,第一行等号后面的``` 0.29.1``` 是 frp 的版本号 (截稿为止最新版本)。你安装的时候可以到官网查看下有没更新的版本,只需将新版本的号码替换掉 ```0.29.1``` 即可。 +FRP 默认提供了 2 个服务端配置文件,一个是简化版的 ```frps.ini```,另一个是完整版的 ```frps_full.ini```。初学者只需用简版配置即可,在简版 ```frps.ini``` 配置文件里,默认设置了监听端口为 ```7000```,你可以按需修改它。 +>#### 防火墙和安全组开放指定的端口: +请一定要记住,你需要将服务器的系统防火土啬,以及阿里云、腾讯云后台里找到“安全组策略”的相关配置,设置 ```7000``` 或你修改过的对应端口的「允许入站和出站 」,否则会一直连接不上的哦!!!这个切记!! + +>#### 启动 FRP 服务端 + +``` shell +./frps -c ./frps.ini +``` + +如服务器使用 Win 系统,假设解压到 ```c:\frp``` 文件夹,那么只需这样启动: +``` shell +c:\frp\frps.exe -c c:\frp\frps.exe +``` +2、配置 Frp 客户端 (安装在内网的机器上) +设置好服务器上 Frp 服务端后,我们就需要在内网的机器上安装 Frp 的客户端了。 Frp 的客户端程序 frpc (frpc.exe) 与服务器端都在同一个压缩包里, 我们同样下载对应系统版本的软件包。 + +你可以将 Frp 客户端安装在内网的 Windows 电脑、Linux 设备 (比如树莓派) 或者 NAS,甚至部分路由器等设备上。Linux 客户端的安装和启动与服务器端没有太多区别,只是对应运行程序是 frpc 而不是 frps。 + +为了简单起见,我们这里以 Windows 电脑来安装 Frp 客户端,因为 Frp 是绿色程序,下载软件包回来解压后,启动 ```frpc.exe``` 即可。 + +但在启动前,我们需要先修改配置文件,我们以配置“Windows 远程桌面控制”以及“群晖 NAS 管理界面”为例。假设你的 FRP 服务端所在的 VPS 公网 IP 为 ```1.2.3.4```, 而客户端是 Win 电脑,我们来修改 ```frpc.ini``` 配置文件: + +``` ini +[common] +# server_addr 为 FRP 服务端 (VPS 服务器) 的公网 IP +server_addr = 1.2.3.4 +server_port = 7000 + +[DSM] +type = tcp +local_ip = 192.168.1.40 #群晖 NAS 在局域网中的内网 IP +local_port = 5000 +remote_port = 7001 + +[RDP] +type = tcp +local_ip = 192.168.1.30 #电脑在局域网中的内网 IP (如是本机,也可使用 127.0.0.1) +local_port = 3389 +remote_port = 7002 +``` + +这样就在本地上新增了“DSM”和“RDP”两个可供公网访问的服务了 (它们名称可以自己取),这里分别对应内网的群晖 NAS 的后台管理界面和 PC 远程桌面。如果你需要添加更多的设备和服务供外网访问,那么只需照样画葫芦,指定正确的 IP 地址和端口号即可。 + +>#### 注意放行端口 +每个服务的 remote_port 是远程访问时要用到的端口号,注意这些端口号也要在服务器的防火土啬和安全组里放行才能顺利访问的,如上面的 7001、7002。 + +>#### 启动 FRP 客户端: +假设你已将 Frp 的客户端解压缩到 ``` c:\frp ``` 目录中,那么启动 Frp 客户端的命令就是: +``` shell +c:\frp\frpc.exe -c c:\frp\frpc.ini +``` +Linux 启动 Frp 客户端命令: +``` shell +./frpc -c ./frpc.ini +``` +启动之后看到 “start proxy success”字样就表示启动成功了。 + +>### 3、进行远程访问: +前面搞了这么多,我们终于可以正式使用 Frp 内网穿透来进行远程访问内网里的设备了!按照上面的配置,我们想要访问群晖 NAS 的界面,只需打开浏览器,在地址栏输入 ```服务器公网IP:7001``` 即可访问到群晖后台管理界面。 + +而如果需要远程桌面连接到家里的 Windows 电脑,那么打开“微软远程桌面客户端”后,在地址栏里填入 ``` 服务器公网IP:7002 ``` 即可连接。 + +由此,借助 Frp,你就能轻松地为本地局域网内网的设备提供公网直接访问的能力了,你可以用 Frp 来转发包括但不限于 ssh、http、https、转发 Unix 域套接字等服务。 + +上面只是最基础的教程,Frp 还有很多很多高级功能,比如给 Web 增加密码保护、点对点内网穿透、设置端口白名单等等,Frp 官网上也提供了很详细的文档,感兴趣的朋友可以去研究一下。 + +>### 写在后面: +最后,有了 Frp,我们就能轻松解决没有公网 IP 的老难题了!无论家里的 NAS 、电脑还是其他网络设备,都能轻松在外访问,这可以说是无公网 IP 用户必备的工具了。 + +希望这篇简单 Frp 入门教程能对有远程访问需求的同学有所帮助吧。毕竟 Frp 带来的便利性是非常大的,特别是需要出差移动办公的用户,值得大家去研究和折腾一番。与 Frp 同类的软件还有 Ngrok、n2n、lanproxy 等,它们工作方式都大同小异,都需要一台服务器作为中转。 \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/Github Hosts.md b/WebMVC/WebMVCApi/md/Github Hosts.md new file mode 100644 index 0000000..059af1b --- /dev/null +++ b/WebMVC/WebMVCApi/md/Github Hosts.md @@ -0,0 +1,59 @@ +--- +icon: edit +date: 2021-09-15 +category: + - 系统配置 +tag: + - hosts +headerDepth: 5 +--- + + +# Github Hosts +# 时间:2021-09-17 +Github Hosts 修改,速度可能会好点 + +访问缓慢原因 +方法小结: +ping 下找到本机电脑访问速度比较快IP, +http://ping.chinaz.com/github.com + +综合其他的网友的IP +Windows hosts 路径 : + +C:\\Windows\\System32\\drivers\\etc + +``` hosts +# Host Start +185.199.108.154 github.githubassets.com +140.82.113.22 central.github.com +185.199.108.133 desktop.githubusercontent.com +185.199.108.153 assets-cdn.github.com +185.199.108.133 camo.githubusercontent.com +185.199.108.133 github.map.fastly.net +199.232.69.194 github.global.ssl.fastly.net +140.82.113.4 gist.github.com +185.199.108.153 github.io +140.82.112.3 github.com +140.82.113.6 api.github.com +185.199.108.133 raw.githubusercontent.com +185.199.108.133 user-images.githubusercontent.com +185.199.108.133 favicons.githubusercontent.com +185.199.108.133 avatars5.githubusercontent.com +185.199.108.133 avatars4.githubusercontent.com +185.199.108.133 avatars3.githubusercontent.com +185.199.108.133 avatars2.githubusercontent.com +185.199.108.133 avatars1.githubusercontent.com +185.199.108.133 avatars0.githubusercontent.com +185.199.108.133 avatars.githubusercontent.com +140.82.113.10 codeload.github.com +52.216.20.99 github-cloud.s3.amazonaws.com +52.217.140.249 github-com.s3.amazonaws.com +52.217.1.132 github-production-release-asset-2e65be.s3.amazonaws.com +52.217.68.28 github-production-user-asset-6210df.s3.amazonaws.com +52.217.173.153 github-production-repository-file-5c1aeb.s3.amazonaws.com +185.199.108.153 githubstatus.com +64.71.144.202 github.community +185.199.108.133 media.githubusercontent.com +# Host End +``` diff --git a/WebMVC/WebMVCApi/md/Hello Halo.md b/WebMVC/WebMVCApi/md/Hello Halo.md new file mode 100644 index 0000000..594a053 --- /dev/null +++ b/WebMVC/WebMVCApi/md/Hello Halo.md @@ -0,0 +1,26 @@ +--- +icon: edit +date: 2021-09-15 +category: + - 默认分类 +headerDepth: 5 +--- + + +# Hello Halo +## Hello Halo + +如果你看到了这一篇文章,那么证明你已经安装成功了,感谢使用 [Halo](https://halo.run) 进行创作,希望能够使用愉快。 + +## 相关链接 + +- 官网:[https://halo.run](https://halo.run) +- 文档:[https://docs.halo.run](https://docs.halo.run) +- 社区:[https://bbs.halo.run](https://bbs.halo.run) +- 主题仓库:[https://halo.run/themes.html](https://halo.run/themes.html) +- 开源地址:[https://github.com/halo-dev/halo](https://github.com/halo-dev/halo) + +在使用过程中,有任何问题都可以通过以上链接找寻答案,或者联系我们。 + +> 这是一篇自动生成的文章,请删除这篇文章之后开始你的创作吧! + diff --git a/WebMVC/WebMVCApi/md/Java 实现控制台打印彩色字体和彩色背景.md b/WebMVC/WebMVCApi/md/Java 实现控制台打印彩色字体和彩色背景.md new file mode 100644 index 0000000..8e2ef9d --- /dev/null +++ b/WebMVC/WebMVCApi/md/Java 实现控制台打印彩色字体和彩色背景.md @@ -0,0 +1,105 @@ +--- +icon: edit +date: 2022-10-13 +category: + - Java +headerDepth: 5 +--- + + +# Java 实现控制台打印彩色字体和彩色背景 +请记住,在Java Programming 中,输出屏幕的背景颜色和文本颜色默认为黑色或白色。如果我们想在输出屏幕上突出显示某些文本,那么我们可以使用 ANSI 颜色代码并突出显示特定文本。可以参考 ANSI 转义码以了解更多信息。 + +句法: +``` +System.out.println(ANSI_COLORNAME + "This text is colored" + ANSI_RESET); +``` +从上面的语法可以看出包含此语法包含 3 个部分: +我们必须写出我们给出特定 ANSI 代码的名称。例如 public static final String ANSI_BLACK = “\u001B[30m”; +```The above is pseudo-code is to print text in black color. So here we can use ANSI_BLACK in place of ANSI_COLORNAME to print the text in Black color.``` +```编程需要懂一点英语``` +- 第二部分是编写我们要以该颜色打印的文本。 +- 代码关闭到目前为止设置的所有 ANSI 属性,这应该将控制台返回到其默认值。 + +以下是ANSI颜色代码表: +![image.png](/upload/2022/10/image-759ba5d2bd104e51b674c1f9c36ba66a.png) +```\u00lB unincode码 可以用 转义字符 \33 表示``` +``` +package com.gongyi.common.core.utils; + + +import org.springframework.util.ObjectUtils; + +public enum PrintUtil { + RED { + public Integer getColor() { + return 31; + } + }, + GREEN { + public Integer getColor() { + return 32; + } + }, + YELLOW { + public Integer getColor() { + return 33; + } + }, + BLUE { + public Integer getColor() { + return 34; + } + }, + PURPULE { + public Integer getColor() { + return 35; + } + }, + CYAN { + public Integer getColor() { + return 36; + } + }, + WHITE { + public Integer getColor() { + return 37; + } + }, + BLACK { + public Integer getColor() { + return 30; + } + }; + + public Integer getColor() { + throw new AbstractMethodError(); + } + + public void Println(Object val) { + val = ObjectUtils.isEmpty(val) ? "null" : val; + printSingleColor(getColor(), 2, val.toString()); + } + + public void Println(Object val, PrintUtil background) { + val = ObjectUtils.isEmpty(val) ? "null" : val; + printSingleColor(getColor(), background.getColor()+10,2, val.toString()); + } + + /** + * @param code 颜色代号:背景颜色代号(41-46);前景色代号(31-36) + * @param n 数字+m:1加粗;3斜体;4下划线 + * @param content 要打印的内容 + * 格式:System.out.println("\33[前景色代号;背景色代号;数字m") + * %s是字符串占位符,%d 是数字占位符 + */ + private void printSingleColor(int code, int n, String content) { + System.out.format("\33[%d;%dm%s\n", code, n, content + "\33[0;39m"); + } + + private void printSingleColor(int code, int backCode, int n, String content) { + System.out.format("\33[%d;%d;%dm%s\n", code, backCode, n, content + "\33[0;39m"); + } +} + +``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/Linux chmod命令.md b/WebMVC/WebMVCApi/md/Linux chmod命令.md new file mode 100644 index 0000000..63db761 --- /dev/null +++ b/WebMVC/WebMVCApi/md/Linux chmod命令.md @@ -0,0 +1,166 @@ +--- +icon: edit +date: 2021-09-20 +category: + - Linux +tag: + - linux + - chmod +headerDepth: 5 +--- + + +# Linux chmod命令 +Linux chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令 + +Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。 +![](https://www.runoob.com/wp-content/uploads/2014/08/file-permissions-rwx.jpg) + + +只有文件所有者和超级用户可以修改文件或目录的权限。可以使用绝对模式(八进制数字模式),符号模式指定文件的权限。 +![](https://www.runoob.com/wp-content/uploads/2014/08/rwx-standard-unix-permission-bits.png) + + +**使用权限 : 所有使用者** + +**语法** +```shell +chmod [-cfvR] [--help] [--version] mode file... +``` +**参数说明** +mode : 权限设定字串,格式如下 : +```shell +[ugoa...][[+-=][rwxX]...][,...] +``` +其中: + +- ```u``` 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者, +- ```o``` 表示其他以外的人,a 表示这三者皆是。 +- ```+``` 表示增加权限、- 表示取消权限、= 表示唯一设定权限。 +- ```r``` 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。 +其他参数说明: + +- ```-c``` : 若该文件权限确实已经更改,才显示其更改动作 +- ```-f``` : 若该文件权限无法被更改也不要显示错误讯息 +- ```-v``` : 显示权限变更的详细资料 +- ```-R``` : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更) +- ```--help``` : 显示辅助说明 +- ```--version``` : 显示版本 +符号模式 +使用符号模式可以设置多个项目:who(用户类型),operator(操作符)和 permission(权限),每个项目的设置可以用逗号隔开。 命令 chmod 将修改 who 指定的用户类型对文件的访问权限,用户类型由一个或者多个字母在 who 的位置来说明,如 who 的符号模式表所示: + +|who| 用户类型| 说明| +|-------|------- |------- | +|u|user |文件所有者| +|g|group|文件所有者所在组| +|o|others|所有其他用户| +|a|all |所用用户, 相当于 ugo| + + + +operator 的符号模式表: + +|Operator | 说明| +|-------|------- | +|+ |为指定的用户类型增加权限 | +|- |去除指定用户类型的权限 | +|= |设置指定用户权限的设置,即将用户类型的所有权限重新设置 | + + + +permission 的符号模式表: + +模式 名字 说明 +r 读 设置为可读权限 +w 写 设置为可写权限 +x 执行权限 设置为可执行权限 +X 特殊执行权限 只有当文件为目录文件,或者其他类型的用户有可执行权限时,才将文件权限设置可执行 +s setuid/gid 当文件被执行时,根据who参数指定的用户类型设置文件的setuid或者setgid权限 +t 粘贴位 设置粘贴位,只有超级用户可以设置该位,只有文件所有者u可以使用该位 +八进制语法 +chmod命令可以使用八进制数来指定权限。文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件所有者(User)的读、写、执行,用户组(Group)的读、写、执行以及其它用户(Other)的读、写、执行。历史上,文件权限被放在一个比特掩码中,掩码中指定的比特位设为1,用来说明一个类具有相应的优先级。 + +|# |权限 |rwx |二进制| +|-------|------- |-------|------- | +|7 |读 + 写 + 执行 |rwx| 111| +|6 |读 + 写 |rw-| 110| +|5 |读 + 执行 |r-x| 101| +|4 |只读 |r--| 100| +|3 |写 + 执行 |-wx| 011| +|2 |只写 |-w-| 010| +|1 |只执行 |--x| 001| +|0 |无 |---| 000| +例如, 765 将这样解释: + +所有者的权限用数字表达:属主的那三个权限位的数字加起来的总和。如 rwx ,也就是 4+2+1 ,应该是 7。 +用户组的权限用数字表达:属组的那个权限位数字的相加的总和。如 rw- ,也就是 4+2+0 ,应该是 6。 +其它用户的权限数字表达:其它用户权限位的数字相加的总和。如 r-x ,也就是 4+0+1 ,应该是 5。 +实例 +将文件 file1.txt 设为所有人皆可读取 : +```shell +chmod ugo+r file1.txt +``` +将文件 file1.txt 设为所有人皆可读取 : +```shell +chmod a+r file1.txt +``` +将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 : +```shell +chmod ug+w,o-w file1.txt file2.txt +``` +为 ex1.py 文件拥有者增加可执行权限: +```shell +chmod u+x ex1.py +``` +将目前目录下的所有文件与子目录皆设为任何人可读取 : +```shell +chmod -R a+r * +``` +此外chmod也可以用数字来表示权限如 : +```shell +chmod 777 file +``` +语法为: +```shell +chmod abc file +``` +其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。 + +**r=4,w=2,x=1** +若要 rwx 属性则 4+2+1=7; +若要 rw- 属性则 4+2=6; +若要 r-x 属性则 4+1=5。 +```shell +chmod a=rwx file +``` +和 +```shell +chmod 777 file +``` +效果相同 +```shell +chmod ug=rwx,o=x file +``` +和 +```shell +chmod 771 file +``` +效果相同 + +若用 ```chmod 4755 filename``` 可使此程序具有 root 的权限。 + +**更多说明** + +|命令| 说明| +|-------|-------| +|chmod a+r file |给file的所有用户增加读权限| +|chmod a-x file |删除file的所有用户的执行权限| +|chmod a+rw file| 给file的所有用户增加读写权限| +|chmod +rwx file| 给file的所有用户增加读写执行权限| +|chmod u=rw,go= file| 对file的所有者设置读写权限,清空该用户组和其他用户对file的所有权限(空格代表无权限)| +|chmod -R u+r,go-r docs| 对目录docs和其子目录层次结构中的所有文件给用户增加读权限,而对用户组和其他用户删除读权限| +|chmod 664 file |对file的所有者和用户组设置读写权限, 为其其他用户设置读权限| +|chmod 0755 file| 相当于u=rwx (4+2+1),go=rx (4+1 & 4+1)。0 没有特殊模式。| +|chmod 4755 file| 4设置了设置用户ID位,剩下的相当于 u=rwx (4+2+1),go=rx (4+1 & 4+1)。| +|find path/ -type d -exec chmod a-x {} \;| 删除可执行权限对path/以及其所有的目录(不包括文件)的所有用户,使用'-type f'匹配文件| +|find path/ -type d -exec chmod a+x {} \;| 允许所有用户浏览或通过目录path/| \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/Linux 安装 Docker.md b/WebMVC/WebMVCApi/md/Linux 安装 Docker.md new file mode 100644 index 0000000..ef710cf --- /dev/null +++ b/WebMVC/WebMVCApi/md/Linux 安装 Docker.md @@ -0,0 +1,74 @@ +--- +icon: edit +date: 2021-10-16 +category: + - Docker + - Linux +tag: + - Docker + - linux +headerDepth: 5 +--- + + +# Linux 安装 Docker + +# centos下安装docker +> 其他系统参照如下文档 + +https://docs.docker.com/engine/install/centos/ +## 1、移除以前docker相关包 +``` shell +sudo yum remove docker \ + docker-client \ + docker-client-latest \ + docker-common \ + docker-latest \ + docker-latest-logrotate \ + docker-logrotate \ + docker-engine +``` + +## 2、配置yum源 +``` shell +sudo yum install -y yum-utils +sudo yum-config-manager \ +--add-repo \ +http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo +``` + +## 3、安装docker +``` shell +sudo yum install -y docker-ce docker-ce-cli containerd.io + + +#以下是在安装k8s的时候使用 +yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7 containerd.io-1.4.6 +``` + +## 4、启动 +``` +systemctl enable docker --now #--now 立即执行 +``` + +## 5、配置加速 +这里额外添加了docker的生产环境核心配置cgroup +``` json +sudo mkdir -p /etc/docker + +sudo tee /etc/docker/daemon.json <<-'EOF' +{ + "registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"], + "exec-opts": ["native.cgroupdriver=systemd"], + "log-driver": "json-file", + "log-opts": { + "max-size": "100m" + }, + "storage-driver": "overlay2" +} +EOF + +sudo systemctl daemon-reload + +sudo systemctl restart docker +``` diff --git a/WebMVC/WebMVCApi/md/Linux 安装 docker-compose.md b/WebMVC/WebMVCApi/md/Linux 安装 docker-compose.md new file mode 100644 index 0000000..23f6cd3 --- /dev/null +++ b/WebMVC/WebMVCApi/md/Linux 安装 docker-compose.md @@ -0,0 +1,233 @@ +--- +icon: edit +date: 2021-10-17 +category: + - Docker + - Linux +tag: + - docker-compose + - Docker +headerDepth: 5 +--- + + +# Linux 安装 docker-compose +# docker-compose +> docker compose 在 Docker 容器运用中具有很大的学习意义,docker compose 是一个整合发布应用的利器。而使用 docker compose 时,懂得如何编排 docker compose 配置文件是很重要的。 +## 安装 +>Linux 上我们可以从 Github 上下载它的二进制包来使用,最新发行的版本地址:https://github.com/docker/compose/releases。 +### 方式一: +```shell +#curl -L "https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose +#github太卡了网好和科学上网的同学可以使用 +curl -L "https://ghproxy.com/https://github.com/docker/compose/releases/download/v2.17.2/docker-compose-linux-$(uname -m)" -o /usr/local/bin/docker-compose + +#curl -L https://get.daocloud.io/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose +chmod +x /usr/local/bin/docker-compose + +docker-compose version # 查看版本号,测试是否安装成功 +你可以通过修改URL中的版本,可以自定义您的需要的版本。 +``` +### 方式二: +```shell +  1、安装python-pip + +  yum -y install epel-release + +  yum -y install python-pip + +  2、安装docker-compose + +  pip install docker-compose + +  待安装完成后,执行查询版本的命令确认安装成功 + +  docker-compose version + +  spring.dubbo + +  application.name + +  registry.port +``` +## 参数详解 +[docker 编排参数详解(docker-compose.yml 配置文件编写)](https://xie.infoq.cn/article/d666cde8f2131ff25ddf19ad8) +## 常用命令 +### 1、Docker-Compose命令格式 +docker-compose [-f ...] [options] [COMMAND] [ARGS...] +命令选项如下: +-f,–file FILE指定Compose模板文件,默认为docker-compose.yml,可以多次指定。 +-p,–project-name NAME指定项目名称,默认将使用所在目录名称作为项目名。 +-x-network-driver 使用Docker的可拔插网络后端特性(需要Docker 1.9+版本) +-x-network-driver DRIVER指定网络后端的驱动,默认为bridge(需要Docker 1.9+版本) +-verbose输出更多调试信息 +-v,–version打印版本并退出 + +### 2、docker-compose up +```docker-compose up [options] [--scale SERVICE=NUM...] [SERVICE...]``` +选项包括: +-d 在后台运行服务容器 +–no-color 不使用颜色来区分不同的服务的控制输出 +–no-deps 不启动服务所链接的容器 +–force-recreate 强制重新创建容器,不能与–no-recreate同时使用 +–no-recreate 如果容器已经存在,则不重新创建,不能与–force-recreate同时使用 +–no-build 不自动构建缺失的服务镜像 +–build 在启动容器前构建服务镜像 +–abort-on-container-exit 停止所有容器,如果任何一个容器被停止,不能与-d同时使用 +-t, –timeout TIMEOUT 停止容器时候的超时(默认为10秒) +–remove-orphans 删除服务中没有在compose文件中定义的容器 +–scale SERVICE=NUM 设置服务运行容器的个数,将覆盖在compose中通过scale指定的参数 +```docker-compose up``` +启动所有服务 +```docker-compose up -d``` +在后台所有启动服务 +-f 指定使用的Compose模板文件,默认为docker-compose.yml,可以多次指定。 +```docker-compose -f docker-compose.yml up -d``` + +### 3、docker-compose ps +```docker-compose ps [options] [SERVICE...]``` +```docker-compose ps``` +列出项目中目前的所有容器 + +### 4、docker-compose stop +```docker-compose stop [options] [SERVICE...]``` +选项包括: +-t, –timeout TIMEOUT 停止容器时候的超时(默认为10秒) +```docker-compose stop``` +停止正在运行的容器,可以通过docker-compose start 再次启动 + +### 5、docker-compose -h +```docker-compose -h``` +查看帮助 + +### 6、docker-compose down +```docker-compose down [options]``` +停止和删除容器、网络、卷、镜像。 +选项包括: +–rmi type,删除镜像,类型必须是:all,删除compose文件中定义的所有镜像;local,删除镜像名为空的镜像 +-v, –volumes,删除已经在compose文件中定义的和匿名的附在容器上的数据卷 +–remove-orphans,删除服务中没有在compose中定义的容器 +```docker-compose down``` +停用移除所有容器以及网络相关 + +### 7、docker-compose logs +```docker-compose logs [options] [SERVICE...]``` +查看服务容器的输出。默认情况下,docker-compose将对不同的服务输出使用不同的颜色来区分。可以通过–no-color来关闭颜色。 +```docker-compose logs``` +查看服务容器的输出 + +### 8、docker-compose build +```docker-compose build [options] [--build-arg key=val...] [SERVICE...]``` +构建(重新构建)项目中的服务容器。 +选项包括: +–compress 通过gzip压缩构建上下环境 +–force-rm 删除构建过程中的临时容器 +–no-cache 构建镜像过程中不使用缓存 +–pull 始终尝试通过拉取操作来获取更新版本的镜像 +-m, –memory MEM为构建的容器设置内存大小 +–build-arg key=val为服务设置build-time变量 +服务容器一旦构建后,将会带上一个标记名。可以随时在项目目录下运行docker-compose build来重新构建服务 + +### 9、docker-compose pull +docker-compose pull [options] [SERVICE...] +拉取服务依赖的镜像。 +选项包括: +–ignore-pull-failures,忽略拉取镜像过程中的错误 +–parallel,多个镜像同时拉取 +–quiet,拉取镜像过程中不打印进度信息 +```docker-compose pull``` +拉取服务依赖的镜像 + +### 10、docker-compose restart +```docker-compose restart [options] [SERVICE...]``` +重启项目中的服务。 +选项包括: +-t, –timeout TIMEOUT,指定重启前停止容器的超时(默认为10秒) +```docker-compose restart``` +重启项目中的服务 + +### 11、docker-compose rm +```docker-compose rm [options] [SERVICE...]``` +删除所有(停止状态的)服务容器。 +选项包括: +–f, –force,强制直接删除,包括非停止状态的容器 +-v,删除容器所挂载的数据卷 +```docker-compose rm``` +删除所有(停止状态的)服务容器。推荐先执行docker-compose stop命令来停止容器。 + +### 12、docker-compose start +```docker-compose start [SERVICE...]``` +```docker-compose start``` +启动已经存在的服务容器。 + +### 13、docker-compose run +```docker-compose run [options] [-v VOLUME...] [-p PORT...] [-e KEY=VAL...] SERVICE [COMMAND] [ARGS...]``` +在指定服务上执行一个命令。 +```docker-compose run ubuntu ping www.baidu.com``` +在指定容器上执行一个ping命令。 + +### 14、docker-compose scale +```docker-compose scale web=3 db=2``` +设置指定服务运行的容器个数。通过service=num的参数来设置数量 + +### 15、docker-compose pause +```docker-compose pause [SERVICE...]``` +暂停一个服务容器 + +### 16、docker-compose kill +```docker-compose kill [options] [SERVICE...]``` +通过发送SIGKILL信号来强制停止服务容器。 +支持通过-s参数来指定发送的信号,例如通过如下指令发送SIGINT信号: +```docker-compose kill -s SIGINT``` + +### 17、dokcer-compose config +```docker-compose config [options]``` +验证并查看compose文件配置。 +选项包括: +–resolve-image-digests 将镜像标签标记为摘要 +-q, –quiet 只验证配置,不输出。 当配置正确时,不输出任何内容,当文件配置错误,输出错误信息 +–services 打印服务名,一行一个 +–volumes 打印数据卷名,一行一个 + +### 18、docker-compose create +```docker-compose create [options] [SERVICE...]``` +为服务创建容器。 +选项包括: +–force-recreate:重新创建容器,即使配置和镜像没有改变,不兼容–no-recreate参数 +–no-recreate:如果容器已经存在,不需要重新创建,不兼容–force-recreate参数 +–no-build:不创建镜像,即使缺失 +–build:创建容器前,生成镜像 + +### 19、docker-compose exec +```docker-compose exec [options] SERVICE COMMAND [ARGS...]``` +选项包括: +-d 分离模式,后台运行命令。 +–privileged 获取特权。 +–user USER 指定运行的用户。 +-T 禁用分配TTY,默认docker-compose exec分配TTY。 +–index=index,当一个服务拥有多个容器时,可通过该参数登陆到该服务下的任何服务,例如:docker-compose exec –index=1 web /bin/bash ,web服务中包含多个容器 + +### 20、docker-compose port +```docker-compose port [options] SERVICE PRIVATE_PORT``` +显示某个容器端口所映射的公共端口。 +选项包括: +–protocol=proto,指定端口协议,TCP(默认值)或者UDP +–index=index,如果同意服务存在多个容器,指定命令对象容器的序号(默认为1) + +### 21、docker-compose push +```docker-compose push [options] [SERVICE...]``` +推送服务依的镜像。 +选项包括: +–ignore-push-failures 忽略推送镜像过程中的错误 + +### 22、docker-compose stop +```docker-compose stop [options] [SERVICE...]``` +显示各个容器运行的进程情况。 + +### 23、docker-compose unpause +```docker-compose unpause [SERVICE...]``` +恢复处于暂停状态中的服务。 + +### 24、docker-compose version +```docker-compose version``` +打印版本信息。 diff --git a/WebMVC/WebMVCApi/md/Linux 安装Kubernetes .md b/WebMVC/WebMVCApi/md/Linux 安装Kubernetes .md new file mode 100644 index 0000000..7d9df76 --- /dev/null +++ b/WebMVC/WebMVCApi/md/Linux 安装Kubernetes .md @@ -0,0 +1,556 @@ +--- +icon: edit +date: 2021-10-16 +category: + - Docker + - Linux + - Kubernetes +tag: + - Docker + - linux + - Kubernetes +headerDepth: 5 +--- + + +# Linux 安装Kubernetes +# kubeadm创建集群 + +> 请参照以前Docker安装。先提前为所有机器安装Docker + +1、安装kubeadm + +- 一台兼容的 Linux 主机。Kubernetes 项目为基于 Debian 和 Red Hat 的 Linux 发行版以及一些不提供包管理器的发行版提供通用的指令 +- 每台机器 2 GB 或更多的 RAM (如果少于这个数字将会影响你应用的运行内存) +- 2 CPU 核或更多 +- 集群中的所有机器的网络彼此均能相互连接(公网和内网都可以) + - 设置防火墙放行规则 +- 节点之中不可以有重复的主机名、MAC 地址或 product_uuid。请参见这里了解更多详细信息。 + - 设置不同hostname +- 开启机器上的某些端口。请参见这里 了解更多详细信息。 + - 内网互信 +- 禁用交换分区。为了保证 kubelet 正常工作,你 必须 禁用交换分区。 + - 永久关闭 +### 1、基础环境 +> 所有机器执行以下操作 +``` bash +#各个机器设置自己的域名 +hostnamectl set-hostname xxxx + + +# 将 SELinux 设置为 permissive 模式(相当于将其禁用) +sudo setenforce 0 +sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config + +#关闭swap +swapoff -a +sed -ri 's/.*swap.*/#&/' /etc/fstab + +#允许 iptables 检查桥接流量 +cat < kubelet 现在每隔几秒就会重启,因为它陷入了一个等待 kubeadm 指令的死循环 + +## 2、使用kubeadm引导集群 +### 1、下载各个机器需要的镜像 +```bash +sudo tee ./images.sh <<-'EOF' +#!/bin/bash +images=( +kube-apiserver:v1.20.9 +kube-proxy:v1.20.9 +kube-controller-manager:v1.20.9 +kube-scheduler:v1.20.9 +coredns:1.7.0 +etcd:3.4.13-0 +pause:3.2 +) +for imageName in ${images[@]} ; do +docker pull registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/$imageName +done +EOF + +chmod +x ./images.sh && ./images.sh +``` +### 2、初始化主节点 + +```bash +#所有机器添加master域名映射,以下需要修改为自己的 +echo "172.31.0.4 cluster-endpoint" >> /etc/hosts + + + +#主节点初始化 +kubeadm init \ +--apiserver-advertise-address=172.31.0.4 \ +--control-plane-endpoint=cluster-endpoint \ +--image-repository registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images \ +--kubernetes-version v1.20.9 \ +--service-cidr=10.96.0.0/16 \ +--pod-network-cidr=192.168.0.0/16 + +#所有网络范围不重叠 +``` + +```bash +Your Kubernetes control-plane has initialized successfully! + +To start using your cluster, you need to run the following as a regular user: + + mkdir -p $HOME/.kube + sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config + sudo chown $(id -u):$(id -g) $HOME/.kube/config + +Alternatively, if you are the root user, you can run: + + export KUBECONFIG=/etc/kubernetes/admin.conf + +You should now deploy a pod network to the cluster. +Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at: + https://kubernetes.io/docs/concepts/cluster-administration/addons/ + +You can now join any number of control-plane nodes by copying certificate authorities +and service account keys on each node and then running the following as root: + + kubeadm join cluster-endpoint:6443 --token hums8f.vyx71prsg74ofce7 \ + --discovery-token-ca-cert-hash sha256:a394d059dd51d68bb007a532a037d0a477131480ae95f75840c461e85e2c6ae3 \ + --control-plane + +Then you can join any number of worker nodes by running the following on each as root: + +kubeadm join cluster-endpoint:6443 --token hums8f.vyx71prsg74ofce7 \ + --discovery-token-ca-cert-hash sha256:a394d059dd51d68bb007a532a037d0a477131480ae95f75840c461e85e2c6ae3 +``` + +```bash +#查看集群所有节点 +kubectl get nodes + +#根据配置文件,给集群创建资源 +kubectl apply -f xxxx.yaml + +#查看集群部署了哪些应用? +docker ps === kubectl get pods -A +# 运行中的应用在docker里面叫容器,在k8s里面叫Pod +kubectl get pods -A +``` + +### 3、根据提示继续 +> master成功后提示如下: +> ![image.png](/upload/2021/10/image-d246070956b74a95bef1c2b9fd9f19dd.png) + +#### 1、设置.kube/config +复制上面命令 + +#### 2、安装网络组件 +[calico官网](https://docs.projectcalico.org/getting-started/kubernetes/self-managed-onprem/onpremises#install-calico-with-kubernetes-api-datastore-more-than-50-nodes) +```bash +curl https://docs.projectcalico.org/manifests/calico.yaml -O + +kubectl apply -f calico.yaml +``` + +### 4、加入node节点 +```bash +kubeadm join cluster-endpoint:6443 --token x5g4uy.wpjjdbgra92s25pp \ + --discovery-token-ca-cert-hash sha256:6255797916eaee52bf9dda9429db616fcd828436708345a308f4b917d3457a22 +``` +>新令牌 +kubeadm token create --print-join-command + +>高可用部署方式,也是在这一步的时候,使用添加主节点的命令即可 + + +### 5、验证集群 + +- 验证集群节点状态 + - kubectl get nodes + +### 6、部署dashboard +#### 1、部署 +>kubernetes官方提供的可视化界面 +https://github.com/kubernetes/dashboard +```bash +kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.3.1/aio/deploy/recommended.yaml +``` +```bash +# Copyright 2017 The Kubernetes Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +apiVersion: v1 +kind: Namespace +metadata: + name: kubernetes-dashboard + +--- + +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + k8s-app: kubernetes-dashboard + name: kubernetes-dashboard + namespace: kubernetes-dashboard + +--- + +kind: Service +apiVersion: v1 +metadata: + labels: + k8s-app: kubernetes-dashboard + name: kubernetes-dashboard + namespace: kubernetes-dashboard +spec: + ports: + - port: 443 + targetPort: 8443 + selector: + k8s-app: kubernetes-dashboard + +--- + +apiVersion: v1 +kind: Secret +metadata: + labels: + k8s-app: kubernetes-dashboard + name: kubernetes-dashboard-certs + namespace: kubernetes-dashboard +type: Opaque + +--- + +apiVersion: v1 +kind: Secret +metadata: + labels: + k8s-app: kubernetes-dashboard + name: kubernetes-dashboard-csrf + namespace: kubernetes-dashboard +type: Opaque +data: + csrf: "" + +--- + +apiVersion: v1 +kind: Secret +metadata: + labels: + k8s-app: kubernetes-dashboard + name: kubernetes-dashboard-key-holder + namespace: kubernetes-dashboard +type: Opaque + +--- + +kind: ConfigMap +apiVersion: v1 +metadata: + labels: + k8s-app: kubernetes-dashboard + name: kubernetes-dashboard-settings + namespace: kubernetes-dashboard + +--- + +kind: Role +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + labels: + k8s-app: kubernetes-dashboard + name: kubernetes-dashboard + namespace: kubernetes-dashboard +rules: + # Allow Dashboard to get, update and delete Dashboard exclusive secrets. + - apiGroups: [""] + resources: ["secrets"] + resourceNames: ["kubernetes-dashboard-key-holder", "kubernetes-dashboard-certs", "kubernetes-dashboard-csrf"] + verbs: ["get", "update", "delete"] + # Allow Dashboard to get and update 'kubernetes-dashboard-settings' config map. + - apiGroups: [""] + resources: ["configmaps"] + resourceNames: ["kubernetes-dashboard-settings"] + verbs: ["get", "update"] + # Allow Dashboard to get metrics. + - apiGroups: [""] + resources: ["services"] + resourceNames: ["heapster", "dashboard-metrics-scraper"] + verbs: ["proxy"] + - apiGroups: [""] + resources: ["services/proxy"] + resourceNames: ["heapster", "http:heapster:", "https:heapster:", "dashboard-metrics-scraper", "http:dashboard-metrics-scraper"] + verbs: ["get"] + +--- + +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + labels: + k8s-app: kubernetes-dashboard + name: kubernetes-dashboard +rules: + # Allow Metrics Scraper to get metrics from the Metrics server + - apiGroups: ["metrics.k8s.io"] + resources: ["pods", "nodes"] + verbs: ["get", "list", "watch"] + +--- + +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + k8s-app: kubernetes-dashboard + name: kubernetes-dashboard + namespace: kubernetes-dashboard +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: kubernetes-dashboard +subjects: + - kind: ServiceAccount + name: kubernetes-dashboard + namespace: kubernetes-dashboard + +--- + +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: kubernetes-dashboard +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: kubernetes-dashboard +subjects: + - kind: ServiceAccount + name: kubernetes-dashboard + namespace: kubernetes-dashboard + +--- + +kind: Deployment +apiVersion: apps/v1 +metadata: + labels: + k8s-app: kubernetes-dashboard + name: kubernetes-dashboard + namespace: kubernetes-dashboard +spec: + replicas: 1 + revisionHistoryLimit: 10 + selector: + matchLabels: + k8s-app: kubernetes-dashboard + template: + metadata: + labels: + k8s-app: kubernetes-dashboard + spec: + containers: + - name: kubernetes-dashboard + image: kubernetesui/dashboard:v2.3.1 + imagePullPolicy: Always + ports: + - containerPort: 8443 + protocol: TCP + args: + - --auto-generate-certificates + - --namespace=kubernetes-dashboard + # Uncomment the following line to manually specify Kubernetes API server Host + # If not specified, Dashboard will attempt to auto discover the API server and connect + # to it. Uncomment only if the default does not work. + # - --apiserver-host=http://my-address:port + volumeMounts: + - name: kubernetes-dashboard-certs + mountPath: /certs + # Create on-disk volume to store exec logs + - mountPath: /tmp + name: tmp-volume + livenessProbe: + httpGet: + scheme: HTTPS + path: / + port: 8443 + initialDelaySeconds: 30 + timeoutSeconds: 30 + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: true + runAsUser: 1001 + runAsGroup: 2001 + volumes: + - name: kubernetes-dashboard-certs + secret: + secretName: kubernetes-dashboard-certs + - name: tmp-volume + emptyDir: {} + serviceAccountName: kubernetes-dashboard + nodeSelector: + "kubernetes.io/os": linux + # Comment the following tolerations if Dashboard must not be deployed on master + tolerations: + - key: node-role.kubernetes.io/master + effect: NoSchedule + +--- + +kind: Service +apiVersion: v1 +metadata: + labels: + k8s-app: dashboard-metrics-scraper + name: dashboard-metrics-scraper + namespace: kubernetes-dashboard +spec: + ports: + - port: 8000 + targetPort: 8000 + selector: + k8s-app: dashboard-metrics-scraper + +--- + +kind: Deployment +apiVersion: apps/v1 +metadata: + labels: + k8s-app: dashboard-metrics-scraper + name: dashboard-metrics-scraper + namespace: kubernetes-dashboard +spec: + replicas: 1 + revisionHistoryLimit: 10 + selector: + matchLabels: + k8s-app: dashboard-metrics-scraper + template: + metadata: + labels: + k8s-app: dashboard-metrics-scraper + annotations: + seccomp.security.alpha.kubernetes.io/pod: 'runtime/default' + spec: + containers: + - name: dashboard-metrics-scraper + image: kubernetesui/metrics-scraper:v1.0.6 + ports: + - containerPort: 8000 + protocol: TCP + livenessProbe: + httpGet: + scheme: HTTP + path: / + port: 8000 + initialDelaySeconds: 30 + timeoutSeconds: 30 + volumeMounts: + - mountPath: /tmp + name: tmp-volume + securityContext: + allowPrivilegeEscalation: false + readOnlyRootFilesystem: true + runAsUser: 1001 + runAsGroup: 2001 + serviceAccountName: kubernetes-dashboard + nodeSelector: + "kubernetes.io/os": linux + # Comment the following tolerations if Dashboard must not be deployed on master + tolerations: + - key: node-role.kubernetes.io/master + effect: NoSchedule + volumes: + - name: tmp-volume + emptyDir: {} +``` + +#### 2、设置访问端口 +```bash +kubectl edit svc kubernetes-dashboard -n kubernetes-dashboard +``` +>type: ClusterIP 改为 type: NodePort +```bash +kubectl get svc -A |grep kubernetes-dashboard +## 找到端口,在安全组放行 +``` +访问: https://集群任意IP:端口 https://139.198.165.238:32759 + + + +#### 3、创建访问账号 +```bash +#创建访问账号,准备一个yaml文件; vi dash.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: admin-user + namespace: kubernetes-dashboard +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: admin-user +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: cluster-admin +subjects: +- kind: ServiceAccount + name: admin-user + namespace: kubernetes-dashboard +``` + +```bash +kubectl apply -f dash.yaml +``` +#### 4、令牌访问 +```bash +#获取访问令牌 +kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}" +``` +```bash +eyJhbGciOiJSUzI1NiIsImtpZCI6InpXSkU0TjhCUmVKQzBJaC03Nk9ES2NMZ1daRTRmQ1FMZU9rRUJ3VXRnM3MifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLXgyczhmIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiIzOTZmYjdlNS0wMjA2LTQxMjctOGQzYS0xMzRlODVmYjU0MDAiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6YWRtaW4tdXNlciJ9.Hf5mhl35_R0iBfBW7fF198h_klEnN6pRKfk_roAzOtAN-Aq21E4804PUhe9Rr9e_uFzLfoFDXacjJrHCuhiML8lpHIfJLK_vSD2pZNaYc2NWZq2Mso-BMGpObxGA23hW0nLQ5gCxlnxIAcyE76aYTAB6U8PxpvtVdgUknBVrwXG8UC_D8kHm9PTwa9jgbZfSYAfhOHWmZxNYo7CF2sHH-AT_WmIE8xLmB7J11vDzaunv92xoUoI0ju7OBA2WRr61bOmSd8WJgLCDcyBblxz4Wa-3zghfKlp0Rgb8l56AAI7ML_snF59X6JqaCuAcCJjIu0FUTS5DuyIObEeXY-z-Rw +``` +5、界面 +![image.png](/upload/2021/10/image-0f8e1e2e40a24a7baf1b6535b9f70374.png) diff --git a/WebMVC/WebMVCApi/md/MySQL每天定时备份.md b/WebMVC/WebMVCApi/md/MySQL每天定时备份.md new file mode 100644 index 0000000..7009b45 --- /dev/null +++ b/WebMVC/WebMVCApi/md/MySQL每天定时备份.md @@ -0,0 +1,113 @@ +--- +icon: edit +date: 2022-12-15 +category: + - 系统配置 + - Linux +tag: + - mysql +headerDepth: 5 +--- + + +# MySQL每天定时备份 +备份是容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程。而对于一些网站、系统来说,数据库就是一切,所以做好数据库的备份是至关重要的! + +这里主要以本地磁盘为存储介质讲一下计划任务的添加使用,基本的备份脚本,其它存储介质只是介质的访问方式可能不大一样。 + +#### 1、查看磁盘空间情况: + +既然是定时备份,就要选择一个空间充足的磁盘空间,避免出现因空间不足导致备份失败,数据丢失的恶果! + +存储到当前磁盘这是最简单,却是最不推荐的;服务器有多块硬盘,最好是把备份存放到另一块硬盘上;有条件就选择更好更安全的存储介质; +```shell +df -h +``` +2、创建备份目录: + +上面我们使用命令看出/home下空间比较充足,所以可以考虑在/home保存备份文件; +```shell +cd /home +mkdir backupcd backup +``` +#### 3、创建备份Shell脚本: + +注意把以下命令中的DatabaseName换为实际的数据库名称; +当然,你也可以使用其实的命名规则! +```shell +vi bkDatabaseName.sh +``` +输入/粘贴以下内容: +```shell +#!/bin/bash +mysqldump -uusername -ppassword DatabaseName > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql +``` + + +对备份进行压缩: +```shell +#!/bin/bash +mysqldump -uusername -ppassword DatabaseName | gzip > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz +``` +注意: +把 username 替换为实际的用户名; +把 password 替换为实际的密码; +把 DatabaseName 替换为实际的数据库名; + +#### 4、添加可执行权限: +```shell +chmod u+x bkDatabaseName.sh +``` +添加可执行权限之后先执行一下,看看脚本有没有错误,能不能正常使用; +```shell +./bkDatabaseName.sh +``` +#### 5、添加计划任务 +检测或安装 crontab +确认crontab是否安装: +执行 crontab 命令如果报 command not found,就表明没有安装 + +如时没有安装 crontab,需要先安装它,具体步骤请参考: +CentOS下使用yum命令安装计划任务程序crontab +使用rpm命令从CentOS系统盘安装计划任务程序crontab + +添加计划任务 +执行命令: +```shell +crontab -e +``` +这时就像使用vi编辑器一样,可以对计划任务进行编辑。 +输入以下内容并保存: +```shell +*/1 * * * * /home/backup/bkDatabaseName.sh +``` +具体是什么意思呢? +意思是每一分钟执行一次shell脚本“/home/backup/bkDatabaseName.sh”。 + +#### 6、测试任务是否执行 + +很简单,我们就执行几次“ls”命令,看看一分钟过后文件有没有被创建就可以了! + +如果任务执行失败了,可以通过以下命令查看任务日志: +```shell +tail -f /var/log/cron +``` +输出类似如下: +``` shell +Dec 15 10:00:01 loaclhost CROND[51208]: (root) CMD (/usr/lib64/sa/sa1 1 1) +Dec 15 10:01:01 loaclhost CROND[51441]: (root) CMD (run-parts /etc/cron.hourly) +Dec 15 10:01:01 loaclhost run-parts(/etc/cron.hourly)[51441]: starting 0anacron +Dec 15 10:01:01 loaclhost run-parts(/etc/cron.hourly)[51453]: finished 0anacron +Dec 15 10:01:01 loaclhost run-parts(/etc/cron.hourly)[51441]: starting mcelog.cron +Dec 15 10:01:01 loaclhost run-parts(/etc/cron.hourly)[51460]: finished mcelog.cron +Dec 15 10:10:01 loaclhost CROND[53628]: (root) CMD (/usr/lib64/sa/sa1 1 1) +Dec 15 10:16:58 loaclhost crontab[55380]: (root) BEGIN EDIT (root) +Dec 15 10:18:30 loaclhost crontab[55380]: (root) REPLACE (root) +Dec 15 10:18:30 loaclhost crontab[55380]: (root) END EDIT (root) +Dec 15 10:19:01 loaclhost crond[5673]: (root) RELOAD (/var/spool/cron/root) +Dec 15 10:19:01 loaclhost CROND[55906]: (root) CMD (/bak/bak_sql.sh) +Dec 15 10:19:01 loaclhost CROND[55905]: (root) MAIL (mailed 54 bytes of output but got status 0x007f#012) +Dec 15 10:20:01 loaclhost CROND[56148]: (root) CMD (/bak/bak_sql.sh) +Dec 15 10:20:01 loaclhost CROND[56149]: (root) CMD (/usr/lib64/sa/sa1 1 1) +Dec 15 10:20:01 loaclhost CROND[56146]: (root) MAIL (mailed 54 bytes of output but got status 0x007f#012) +``` diff --git a/WebMVC/WebMVCApi/md/Mysql too many connections 解决方法.md b/WebMVC/WebMVCApi/md/Mysql too many connections 解决方法.md new file mode 100644 index 0000000..0817d4e --- /dev/null +++ b/WebMVC/WebMVCApi/md/Mysql too many connections 解决方法.md @@ -0,0 +1,41 @@ +--- +icon: edit +date: 2022-10-13 +category: + - mysql +tag: + - mysql +headerDepth: 5 +--- + + +# Mysql too many connections 解决方法 +最近写javaee项目的时候,mysql报了too many connections的错误,百度的内容有一些有问题,所以我重新写一下我的解决方法。 + +1. mysql -u root -p 回车输入密码进入mysql +![image.png](/upload/2022/10/image-6007218e54be45fd990f719385c892fd.png) + +2. show processlist; +查看连接数,可以发现有很多连接处于sleep状态,这些其实是暂时没有用的,所以可以kill掉 + +3. show variables like "max_connections"; +查看最大连接数,应该是与上面查询到的连接数相同,才会出现too many connections的情况 + +4. set GLOBAL max_connections=1000; +修改最大连接数,但是这不是一劳永逸的方法,应该要让它自动杀死那些sleep的进程。 +show global variables like 'wait_timeout'; + +5. 这个数值指的是mysql在关闭一个非交互的连接之前要等待的秒数,默认是28800s +set global wait_timeout=300; + +6. 修改这个数值,这里可以随意,最好控制在几分钟内 +![image.png](/upload/2022/10/image-08ad270052c547b09de075eb23063f2f.png) + +7. set global interactive_timeout=500; +修改这个数值,表示mysql在关闭一个连接之前要等待的秒数,至此可以让mysql自动关闭那些没用的连接,但要注意的是,正在使用的连接到了时间也会被关闭,因此这个时间值要合适 + +8. 批量kill之前没用的sleep连接,在网上搜索的方法对我都不奏效,因此只好使用最笨的办法,一个一个kill +select concat('KILL ',id,';') from information_schema.processlist where user='root'; 先把要kill的连接id都查询出来 +复制中间的kill id;内容到word文档 +替换掉符号“|”和回车符(在word中查询^p即可查询到回车符) +把修改过的内容复制回终端,最后按回车执行! \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/Nginx反向代理域名但域名IP变化后还解析的是变化前的IP解决方法.md b/WebMVC/WebMVCApi/md/Nginx反向代理域名但域名IP变化后还解析的是变化前的IP解决方法.md new file mode 100644 index 0000000..8a38534 --- /dev/null +++ b/WebMVC/WebMVCApi/md/Nginx反向代理域名但域名IP变化后还解析的是变化前的IP解决方法.md @@ -0,0 +1,47 @@ +--- +icon: edit +date: 2023-03-26 +category: + - 系统配置 +tag: + - nginx +headerDepth: 5 +--- + + +# Nginx反向代理域名但域名IP变化后还解析的是变化前的IP解决方法 +之前博客的代理 proxy_pass 时直接指定域名是可以用的,比如 +``` +location / { + proxy_pass http://local.wuanwanghao.top:30550; +} +``` +#### 遇到一个问题是: +如果路由器因为断电或者掉线之类的原因重新拨号后ip发生变化,此处nginx就无法反向代理了,必须重启一次nginx才行。 + +#### 解决方法: +``` +server { + listen 8080; + server_name localhost; + ssl_prefer_server_ciphers on; + #配置域名解析 valid:DNS缓存时间,也可以不指定,缓存时间会默认根据域名的TTL时间 ipv6:on或off,指定该域名解析为ipv6地址。 + resolver 202.102.134.68 114.114.114.114 valid=30 ipv6=off; + #指定解析域名时,DNS服务器的超时时间,也可以不指定 + resolver_timeout 30s; + #设置变量,在使用resolver之后,必须使用set设置变量来代替域名,否则会报错 + set $true_url "local.wuanwanghao.top"; + location / { + proxy_pass http://$true_url:30550; + } +} +``` + +resolver:后接指定的DNS服务器,多个用空格隔开。resolver可以在http里面全局设定,也可以在server里面设定。 +valid:DNS缓存时间,也可以不指定,缓存时间会默认根据域名的TTL时间。 +ipv6:on或off,指定该域名解析为ipv6地址。 +resolver_timeout:指定解析域名时,DNS服务器的超时时间,也可以不指定。 +set :设置变量,在使用resolver之后,必须使用set设置变量来代替域名,否则会报错。另外,set不能写到 location里面否则不会生效。注意:set变量在server中可以设置成功,http中语法不允许。 + + +这样才解决动态dns解析访问问题。 \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/PPTPL2TP内外网VPN映射端口及协议.md b/WebMVC/WebMVCApi/md/PPTPL2TP内外网VPN映射端口及协议.md new file mode 100644 index 0000000..01af981 --- /dev/null +++ b/WebMVC/WebMVCApi/md/PPTPL2TP内外网VPN映射端口及协议.md @@ -0,0 +1,22 @@ +--- +icon: edit +date: 2023-02-14 +category: + - 系统配置 + - 内网穿透 +headerDepth: 5 +--- + + +# PPTP/L2TP内外网VPN映射端口及协议 +``` +PPTP需开放端口: +UDP:1723 + +L2TP需开放端口: +UDP:500 +UDP:4500 +UDP:1701 + +注意:端口映射时应该将协议设置为UDP,否则无法生效 +``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/Python3 基本数据类型.md b/WebMVC/WebMVCApi/md/Python3 基本数据类型.md new file mode 100644 index 0000000..f7b2319 --- /dev/null +++ b/WebMVC/WebMVCApi/md/Python3 基本数据类型.md @@ -0,0 +1,544 @@ +--- +icon: edit +date: 2021-09-19 +category: + - python +tag: + - python +headerDepth: 5 +--- + + +# Python3 基本数据类型 +# Python3 基本数据类型 + +>Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。 + +>在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。 + +>等号(=)用来给变量赋值。 + +>等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。例如: + +```python +#!/usr/bin/python3 + +counter = 100 # 整型变量 +miles = 1000.0 # 浮点型变量 +name = "runoob" # 字符串 + +print (counter) +print (miles) +print (name) +``` + +执行以上程序会输出如下结果: +``` +100 +1000.0 +runoob +``` + +### 多个变量赋值 +Python允许你同时为多个变量赋值。例如: +``` python +a = b = c = 1 +``` +以上实例,创建一个整型对象,值为 1,从后向前赋值,三个变量被赋予相同的数值。 + +您也可以为多个对象指定多个变量。例如: +``` python +a, b, c = 1, 2, "runoob" +``` +以上实例,两个整型对象 1 和 2 的分配给变量 a 和 b,字符串对象 "runoob" 分配给变量 c。 + +### 标准数据类型 +Python3 中有六个标准的数据类型: + +- Number(数字) +- String(字符串) +- List(列表) +- Tuple(元组) +- Set(集合) +- Dictionary(字典) + +Python3 的六个标准数据类型中: + +- **不可变数据(3 个)**:**Number**(数字)、**String**(字符串)、**Tuple**(元组); +- **可变数据(3 个)**:**List**(列表)、**Dictionary**(字典)、**Set**(集合)。 + +## Number(数字) +Python3 支持 **int、float、bool、complex**(复数)。 + +在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。 + +像大多数语言一样,数值类型的赋值和计算都是很直观的。 + +内置的 type() 函数可以用来查询变量所指的对象类型。 +``` python +>>> a, b, c, d = 20, 5.5, True, 4+3j +>>> print(type(a), type(b), type(c), type(d)) + +``` +此外还可以用 isinstance 来判断: + +```python +>>> a = 111 +>>> isinstance(a, int) +True +>>> +``` +isinstance 和 type 的区别在于: + +type()不会认为子类是一种父类类型。 +isinstance()会认为子类是一种父类类型。 +```python +>>> class A: +... pass +... +>>> class B(A): +... pass +... +>>> isinstance(A(), A) +True +>>> type(A()) == A +True +>>> isinstance(B(), A) +True +>>> type(B()) == A +False +``` +>**注意:**Python3 中,bool 是 int 的子类,True 和 False 可以和数字相加, True==1、False==0 会返回 True,但可以通过 is 来判断类型。 +```python +>>> issubclass(bool, int) +True +>>> True==1 +True +>>> False==0 +True +>>> True+1 +2 +>>> False+1 +1 +>>> 1 is True +False +>>> 0 is False +False +``` +在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。 + +当你指定一个值时,Number 对象就会被创建: +```python +var1 = 1 +var2 = 10 +``` +您也可以使用del语句删除一些对象引用。 + +del语句的语法是: +```python +del var1[,var2[,var3[....,varN]]] +``` +您可以通过使用del语句删除单个或多个对象。例如: +```python +del var +del var_a, var_b +``` +### 数值运算 +```python +>>> 5 + 4 # 加法 +9 +>>> 4.3 - 2 # 减法 +2.3 +>>> 3 * 7 # 乘法 +21 +>>> 2 / 4 # 除法,得到一个浮点数 +0.5 +>>> 2 // 4 # 除法,得到一个整数 +0 +>>> 17 % 3 # 取余 +2 +>>> 2 ** 5 # 乘方 +32 +``` + +**注意**: +1、Python可以同时为多个变量赋值,如a, b = 1, 2。 +2、一个变量可以通过赋值指向不同类型的对象。 +3、数值的除法包含两个运算符:/ 返回一个浮点数,// 返回一个整数。 +4、在混合计算时,Python会把整型转换成为浮点数。 +### 数值类型实例 + +|int |float |complex| +|-------|-------|-------| +|10 |0.0 |3.14j| +|100 |15.20 |45.j| +|-786 |-21.9 |9.322e-36j| +|080 |32.3e+18 |.876j| +|-0490 |-90. |-.6545+0J| +|-0x260 |-32.54e100 |3e+26J| +|0x69 |70.2E-12 |4.53e-7j| + +>Python还支持复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型 + +## String(字符串) +Python中的字符串用单引号 ' 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。 + +字符串的截取的语法格式如下: + +```变量[头下标:尾下标]``` + +索引值以 0 为开始值,-1 为从末尾的开始位置。 +![](https://static.runoob.com/wp-content/uploads/123456-20200923-1.svg) + + +加号 ```+```是字符串的连接符, 星号 ```*```表示复制当前字符串,与之结合的数字为复制的次数。实例如下: + +```python +#!/usr/bin/python3 + +str = 'Runoob' + +print (str) # 输出字符串 +print (str[0:-1]) # 输出第一个到倒数第二个的所有字符 +print (str[0]) # 输出字符串第一个字符 +print (str[2:5]) # 输出从第三个开始到第五个的字符 +print (str[2:]) # 输出从第三个开始的后的所有字符 +print (str * 2) # 输出字符串两次,也可以写成 print (2 * str) +print (str + "TEST") # 连接字符串 +``` +执行以上程序会输出如下结果: +```console +Runoob +Runoo +R +noo +noob +RunoobRunoob +RunoobTEST +``` +Python 使用反斜杠 ```\``` 转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个 ```r```,表示原始字符串: +```python +>>> print('Ru\noob') +Ru +oob +>>> print(r'Ru\noob') +Ru\noob +>>> +``` +另外,反斜杠(```\```)可以作为续行符,表示下一行是上一行的延续。也可以使用 """...""" 或者 '''...''' 跨越多行。 + +注意,Python 没有单独的字符类型,一个字符就是长度为1的字符串。 + +```python +>>> word = 'Python' +>>> print(word[0], word[5]) +P n +>>> print(word[-1], word[-6]) +n P +``` +与 C 字符串不同的是,Python 字符串不能被改变。向一个索引位置赋值,比如word[0] = 'm'会导致错误。 + +**注意:** +- 1、反斜杠可以用来转义,使用r可以让反斜杠不发生转义。 +- 2、字符串可以用+运算符连接在一起,用*运算符重复。 +- 3、Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。 +- 4、Python中的字符串不能改变。 + +## List(列表) +List(列表) 是 Python 中使用最频繁的数据类型。 + +列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。 + +列表是写在方括号 ```[]``` 之间、用逗号分隔开的元素列表。 + +和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。 + +列表截取的语法格式如下: +```变量[头下标:尾下标]``` + +索引值以 ```0```为开始值,```-1``` 为从末尾的开始位置。 + +![](https://www.runoob.com/wp-content/uploads/2014/08/list_slicing1_new1.png) + + +加号 ```+``` 是列表连接运算符,星号 ```*``` 是重复操作。如下实例: + +```python +#!/usr/bin/python3 + +list = [ 'abcd', 786 , 2.23, 'runoob', 70.2 ] +tinylist = [123, 'runoob'] + + +print (list) # 输出完整列表 +print (list[0]) # 输出列表第一个元素 +print (list[1:3]) # 从第二个开始输出到第三个元素 +print (list[2:]) # 输出从第三个元素开始的所有元素 +print (tinylist * 2) # 输出两次列表 +print (list + tinylist) # 连接列表 +``` +以上实例输出结果: +```console +['abcd', 786, 2.23, 'runoob', 70.2] +abcd +[786, 2.23] +[2.23, 'runoob', 70.2] +[123, 'runoob', 123, 'runoob'] +['abcd', 786, 2.23, 'runoob', 70.2, 123, 'runoob'] +``` +与Python字符串不一样的是,列表中的元素是可以改变的: + +```python +>>> a = [1, 2, 3, 4, 5, 6] +>>> a[0] = 9 +>>> a[2:5] = [13, 14, 15] +>>> a +[9, 2, 13, 14, 15, 6] +>>> a[2:5] = [] # 将对应的元素值设置为 [] +>>> a +[9, 2, 6] +``` +List 内置了有很多方法,例如 append()、pop() 等等,这在后面会讲到。 + +**注意:** +- 1、List写在方括号之间,元素用逗号隔开。 +- 2、和字符串一样,list可以被索引和切片。 +- 3、List可以使用+操作符进行拼接。 +- 4、List中的元素是可以改变的。 + +Python 列表截取可以接收第三个参数,参数作用是截取的步长,以下实例在索引 1 到索引 4 的位置并设置为步长为 2(间隔一个位置)来截取字符串: + +![](https://www.runoob.com/wp-content/uploads/2014/08/py-dict-1.png) + +如果第三个参数为负数表示逆向读取,以下实例用于翻转字符串: + +```python +def reverseWords(input): + + # 通过空格将字符串分隔符,把各个单词分隔为列表 + inputWords = input.split(" ") + + # 翻转字符串 + # 假设列表 list = [1,2,3,4], + # list[0]=1, list[1]=2 ,而 -1 表示最后一个元素 list[-1]=4 ( 与 list[3]=4 一样) + # inputWords[-1::-1] 有三个参数 + # 第一个参数 -1 表示最后一个元素 + # 第二个参数为空,表示移动到列表末尾 + # 第三个参数为步长,-1 表示逆向 + inputWords=inputWords[-1::-1] + + # 重新组合字符串 + output = ' '.join(inputWords) + + return output + +if __name__ == "__main__": + input = 'I like runoob' + rw = reverseWords(input) + print(rw) +``` +输出结果为: +```runoob like I ``` + +## Tuple(元组) +元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。 + +元组中的元素类型也可以不相同: + +```python +#!/usr/bin/python3 + +tuple = ( 'abcd', 786 , 2.23, 'runoob', 70.2 ) +tinytuple = (123, 'runoob') + +print (tuple) # 输出完整元组 +print (tuple[0]) # 输出元组的第一个元素 +print (tuple[1:3]) # 输出从第二个元素开始到第三个元素 +print (tuple[2:]) # 输出从第三个元素开始的所有元素 +print (tinytuple * 2) # 输出两次元组 +print (tuple + tinytuple) # 连接元组 +``` + +以上实例输出结果: +```('abcd', 786, 2.23, 'runoob', 70.2) +abcd +(786, 2.23) +(2.23, 'runoob', 70.2) +(123, 'runoob', 123, 'runoob') +('abcd', 786, 2.23, 'runoob', 70.2, 123, 'runoob') +``` + +元组与字符串类似,可以被索引且下标索引从0开始,-1 为从末尾开始的位置。也可以进行截取(看上面,这里不再赘述)。 + +其实,可以把字符串看作一种特殊的元组。 + +``` python +>>> tup = (1, 2, 3, 4, 5, 6) +>>> print(tup[0]) +1 +>>> print(tup[1:5]) +(2, 3, 4, 5) +>>> tup[0] = 11 # 修改元组元素的操作是非法的 +Traceback (most recent call last): + File "", line 1, in +TypeError: 'tuple' object does not support item assignment +>>> +``` + +虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。 + +构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则: + +```tup1 = () # 空元组``` +```tup2 = (20,) # 一个元素,需要在元素后添加逗号``` + +string、list 和 tuple 都属于 sequence(序列)。 + +**注意:** + +- 1、与字符串一样,元组的元素不能修改。 +- 2、元组也可以被索引和切片,方法一样。 +- 3、注意构造包含 0 或 1 个元素的元组的特殊语法规则。 +- 4、元组也可以使用+操作符进行拼接。 + +## Set(集合) +集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。 + +基本功能是进行成员关系测试和删除重复元素。 + +可以使用大括号``` { } ```或者 ```set()``` 函数创建集合,注意:创建一个空集合必须用``` set() ```而不是``` { }```,因为``` { }``` 是用来创建一个空字典。 + +创建格式: +``` python +parame = {value01,value02,...} +或者 +set(value) +``` +实例: +```python +#!/usr/bin/python3 + +sites = {'Google', 'Taobao', 'Runoob', 'Facebook', 'Zhihu', 'Baidu'} + +print(sites) # 输出集合,重复的元素被自动去掉 + +# 成员测试 +if 'Runoob' in sites : + print('Runoob 在集合中') +else : + print('Runoob 不在集合中') + + +# set可以进行集合运算 +a = set('abracadabra') +b = set('alacazam') + +print(a) + +print(a - b) # a 和 b 的差集 + +print(a | b) # a 和 b 的并集 + +print(a & b) # a 和 b 的交集 + +print(a ^ b) # a 和 b 中不同时存在的元素 +``` +以上实例输出结果: +```python +{'Zhihu', 'Baidu', 'Taobao', 'Runoob', 'Google', 'Facebook'} +Runoob 在集合中 +{'b', 'c', 'a', 'r', 'd'} +{'r', 'b', 'd'} +{'b', 'c', 'a', 'z', 'm', 'r', 'l', 'd'} +{'c', 'a'} +{'z', 'b', 'm', 'r', 'l', 'd'} +``` +## Dictionary(字典) + +字典(dictionary)是Python中另一个非常有用的内置数据类型。 + +列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。 + +字典是一种映射类型,字典用``` { } ```标识,它是一个无序的 **键(key) : 值(value)** 的集合。 + +键(key)必须使用不可变类型。 + +在同一个字典中,键(key)必须是唯一的。 + +**实例:** +```python +#!/usr/bin/python3 + +dict = {} +dict['one'] = "1 - 菜鸟教程" +dict[2] = "2 - 菜鸟工具" + +tinydict = {'name': 'runoob','code':1, 'site': 'www.runoob.com'} + + +print (dict['one']) # 输出键为 'one' 的值 +print (dict[2]) # 输出键为 2 的值 +print (tinydict) # 输出完整的字典 +print (tinydict.keys()) # 输出所有键 +print (tinydict.values()) # 输出所有值 +``` +以上实例输出结果: + +```python +1 - 菜鸟教程 +2 - 菜鸟工具 +{'name': 'runoob', 'code': 1, 'site': 'www.runoob.com'} +dict_keys(['name', 'code', 'site']) +dict_values(['runoob', 1, 'www.runoob.com']) +``` +构造函数 dict() 可以直接从键值对序列中构建字典如下: + +**实例:** +```python +>>> dict([('Runoob', 1), ('Google', 2), ('Taobao', 3)]) +{'Runoob': 1, 'Google': 2, 'Taobao': 3} +>>> {x: x**2 for x in (2, 4, 6)} +{2: 4, 4: 16, 6: 36} +>>> dict(Runoob=1, Google=2, Taobao=3) +{'Runoob': 1, 'Google': 2, 'Taobao': 3} +>>> +``` +另外,字典类型也有一些内置的函数,例如clear()、keys()、values()等。 + +注意: + +- 1、字典是一种映射类型,它的元素是键值对。 +- 2、字典的关键字必须为不可变类型,且不能重复。 +- 3、创建空字典使用 { }。 + +## Python数据类型转换 +有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。 +以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。 + +|函数 |描述| +|-------|-------| +|int(x [,base])|将x转换为一个整数| +|float(x))|将x转换到一个浮点数| +|complex(real [,imag])|创建一个复数| +|str(x)|将对象 x 转换为字符串| +|repr(x)|将对象 x 转换为表达式字符串| +|eval(str)|用来计算在字符串中的有效Python表达式,并返回一个对象| +|tuple(s)|将序列 s 转换为一个元组| +|list(s) |将序列 s 转换为一个列表 | +|set(s) |转换为可变集合| +|dict(d) |创建一个字典。d 必须是一个 (key, value)元组序列。 | +|frozenset(s) |转换为不可变集合 | +|chr(x) |将一个整数转换为一个字符 | +|ord(x) |将一个字符转换为它的整数值 | +|hex(x) |将一个整数转换为一个十六进制字符串 | +|oct(x) |将一个整数转换为一个八进制字符串 | + + + + + + + + + + diff --git a/WebMVC/WebMVCApi/md/Python3 注释.md b/WebMVC/WebMVCApi/md/Python3 注释.md new file mode 100644 index 0000000..9c57306 --- /dev/null +++ b/WebMVC/WebMVCApi/md/Python3 注释.md @@ -0,0 +1,45 @@ +--- +icon: edit +date: 2021-09-20 +category: + - python +tag: + - python + - 注释 +headerDepth: 5 +--- + + +# Python3 注释 +# Python3 注释 +确保对模块, 函数, 方法和行内注释使用正确的风格 + +Python中的注释有单行注释和多行注释: + +Python中单行注释以 # 开头,例如:: +```python +# 这是一个注释 +print("Hello, World!") +``` +多行注释用三个单引号 ''' 或者三个双引号 """ 将注释括起来,例如: + +## 1、单引号(''') +```python +#!/usr/bin/python3 +''' +这是多行注释,用三个单引号 +这是多行注释,用三个单引号 +这是多行注释,用三个单引号 +''' +print("Hello, World!") +``` +## 2、双引号(""") +```python +#!/usr/bin/python3 +""" +这是多行注释,用三个双引号 +这是多行注释,用三个双引号 +这是多行注释,用三个双引号 +""" +print("Hello, World!") +``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/Python3 解释器.md b/WebMVC/WebMVCApi/md/Python3 解释器.md new file mode 100644 index 0000000..45c6d0c --- /dev/null +++ b/WebMVC/WebMVCApi/md/Python3 解释器.md @@ -0,0 +1,108 @@ +--- +icon: edit +date: 2021-09-20 +category: + - python + - Linux +tag: + - python +headerDepth: 5 +--- + + +# Python3 解释器 +# Python3 解释器 +Linux/Unix的系统上,一般默认的 python 版本为 2.x,我们可以将 python3.x 安装在 /usr/local/python3 目录中。 + +安装完成后,我们可以将路径 /usr/local/python3/bin 添加到您的 Linux/Unix 操作系统的环境变量中,这样您就可以通过 shell 终端输入下面的命令来启动 Python3 。 + +>Python 解释器可不止一种哦,有 CPython、IPython、Jython、PyPy 等。 + +>顾名思义,CPython 就是用 C 语言开发的了,是官方标准实现,拥有良好的生态,所以应用也就最为广泛了。 + +>而 IPython 是在 CPython 的基础之上在交互式方面得到增强的解释器(http://ipython.org/)。 + +>Jython 是专为 Java 平台设计的 Python 解释器(http://www.jython.org/),它把 Python 代码编译成 Java 字节码执行。 + +>PyPy 是 Python 语言(2.7.13和3.5.3)的一种快速、兼容的替代实现(http://pypy.org/),以速度快著称。 + + + +```shell +$ PATH=$PATH:/usr/local/python3/bin/python3 # 设置环境变量 +$ python3 --version +Python 3.4.0 +``` +在Window系统下你可以通过以下命令来设置Python的环境变量,假设你的Python安装在 C:\Python34 下: +```doc +set path=%path%;C:\python34 +``` +## 交互式编程 +我们可以在命令提示符中输入"Python"命令来启动Python解释器: + +```shell +$ python3 +``` +执行以上命令后,出现如下窗口信息: +```shell +$ python3 +Python 3.4.0 (default, Apr 11 2014, 13:05:11) +[GCC 4.8.2] on linux +Type "help", "copyright", "credits" or "license" for more information. +>>> +``` +在 python 提示符中输入以下语句,然后按回车键查看运行效果: + +```shell +print ("Hello, Python!"); +``` +以上命令执行结果如下: +```shell +Hello, Python! +``` +当键入一个多行结构时,续行是必须的。我们可以看下如下 if 语句: + +```shell +>>> flag = True +>>> if flag : +... print("flag 条件为 True!") +... +flag 条件为 True! +``` +## 脚本式编程 +将如下代码拷贝至 hello.py文件中: + +```shell +print ("Hello, Python!"); +``` +通过以下命令执行该脚本: + +```shell +python3 hello.py +``` +输出结果为: + +```shell +Hello, Python! +``` +在Linux/Unix系统中,你可以在脚本顶部添加以下命令让Python脚本可以像SHELL脚本一样可直接执行: + +```shell +#! /usr/bin/env python3. +``` +然后修改脚本权限,使其有执行权限,命令如下: + +``` +$ chmod +x hello.py +``` +**关于chmod命令请看:** [Linux chmod命令](http://wuanwanghao.top/archives/linuxchmod%E5%91%BD%E4%BB%A4) +执行以下命令: + +``` +./hello.py +``` +输出结果为: + +```shell +Hello, Python! +``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/Rust 文件加解密.md b/WebMVC/WebMVCApi/md/Rust 文件加解密.md new file mode 100644 index 0000000..fa283fe --- /dev/null +++ b/WebMVC/WebMVCApi/md/Rust 文件加解密.md @@ -0,0 +1,88 @@ +--- +icon: edit +date: 2022-10-25 +category: + - Rust +headerDepth: 5 +--- + + +# Rust 文件加解密 +```Cargo.toml``` +```toml +[dependencies] +aes = "0.7.5" +block-modes = "0.8.1" +hex-literal = "0.2.1" +rand = "0.8.4" +bytebuffer = "0.2.1" +base64 = "0.13.0" +``` +main.rs +```rust +use aes::Aes256; +use block_modes::{BlockMode, Cbc}; +use block_modes::block_padding::Pkcs7; +use rand::seq::SliceRandom; +use std::fs; +type AesCbc = Cbc; +use std::fs::File; +use std::io::prelude::*; +const BASE_STR: &str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; +const KEY:&str = "01234567012345670123456701234567"; +fn gen_ascii_chars(size: usize) -> String { + let mut rng = &mut rand::thread_rng(); + String::from_utf8( + BASE_STR.as_bytes() + .choose_multiple(&mut rng, size) + .cloned() + .collect() + ).unwrap() +} + +fn encrypt(key: &str, data: &[u8]) -> String { + let iv_str = gen_ascii_chars(16); + let iv = iv_str.as_bytes(); + let cipher = AesCbc::new_from_slices(key.as_bytes(), iv).unwrap(); + let ciphertext = cipher.encrypt_vec(data); + let mut buffer = bytebuffer::ByteBuffer::from_bytes(iv); + buffer.write_bytes(&ciphertext); + base64::encode(buffer.to_bytes()) +} + +fn decrypt(key: &str, data: &str) -> String { + let bytes = base64::decode(data).unwrap(); + let cipher = AesCbc::new_from_slices(key.as_bytes(), &bytes[0..16]).unwrap(); + String::from_utf8_lossy(cipher.decrypt_vec(&bytes[16..]).unwrap().as_slice()).to_string() +} +fn decryptToByte(key: &str, data: &str) -> Vec { + let bytes = base64::decode(data).unwrap(); + let cipher = AesCbc::new_from_slices(key.as_bytes(), &bytes[0..16]).unwrap(); + cipher.decrypt_vec(&bytes[16..]).unwrap() +} + +fn encodefile(path:&str,encodePath:&str){ + //let plaintext = "hello worldsssss"; + let plaintext = fs::read(path).unwrap(); + let classstr = String::from_utf8_lossy(plaintext.as_slice()).to_string(); + let enc = encrypt(KEY, plaintext.as_slice()); + // println!("{}", enc); + let dec = decrypt(KEY, &enc); + assert_eq!(classstr, dec); + // println!("{}", dec); + let mut file = File::create(encodePath).unwrap(); + file.write(enc.as_bytes()).unwrap(); +} +fn decodefile(path:&str,decodePath:&str){ + let plaintext = fs::read(path).unwrap(); + let classstr = String::from_utf8_lossy(plaintext.as_slice()).to_string(); + // let dec = decrypt(key, &classstr); + let decodeBytes = decryptToByte(KEY,&classstr); + let mut file = File::create(decodePath).unwrap(); + file.write(decodeBytes.as_slice()).unwrap(); +} +fn main() { + encodefile("C:\\Users\\61778\\Desktop\\HelloWorld.class","C:\\Users\\61778\\Desktop\\test1\\HelloWorldDE.class"); + decodefile("C:\\Users\\61778\\Desktop\\test1\\HelloWorldDE.class","C:\\Users\\61778\\Desktop\\test1\\HelloWorld.class"); +} +``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/SCP 命令详解.md b/WebMVC/WebMVCApi/md/SCP 命令详解.md new file mode 100644 index 0000000..ef2345e --- /dev/null +++ b/WebMVC/WebMVCApi/md/SCP 命令详解.md @@ -0,0 +1,99 @@ +--- +icon: edit +date: 2023-04-06 +category: + - Linux +tag: + - scp +headerDepth: 5 +--- + + +# SCP 命令详解 +## 一、示例 +1. 从本地复制到远程 + 在本地服务器上将/root/lk目录下所有的文件传输到服务器43.224.34.73的/home/lk/cpfile目录下,命令为: +```shell +scp -r /root/lk root@43.224.34.73:/home/lk/cpfile +``` +2. 从远程复制到本地 + 在本地服务器上操作,将服务器43.224.34.73上/home/lk/目录下所有的文件全部复制到本地的/root目录下,命令为: +```shell +scp -r root@43.224.34.73:/home/lk /root +``` +## 二、命令详解 +> scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。 + +> 可能会稍微影响一下速度。当你服务器硬盘变为只读 read only system时,用scp可以帮你把文件移出来。 + +> 另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。 + + + +### 1.命令格式 +scp [参数] [原路径] [目标路径] + +### 2.命令功能 +scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录。 + +### 3.命令参数 +>-1 强制scp命令使用协议ssh1 +-2 强制scp命令使用协议ssh2 +-4 强制scp命令只使用IPv4寻址 +-6 强制scp命令只使用IPv6寻址 +-B 使用批处理模式(传输过程中不询问传输口令或短语) +-C 允许压缩。(将-C标志传递给ssh,从而打开压缩功能) +-p 保留原文件的修改时间,访问时间和访问权限。 +-q 不显示传输进度条。 +-r 递归复制整个目录。 +-v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。 +-c cipher 以cipher将数据传输进行加密,这个选项将直接传递给ssh。 +-F ssh_config 指定一个替代的ssh配置文件,此参数直接传递给ssh。 +-i identity_file 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。 +-l limit 限定用户所能使用的带宽,以Kbit/s为单位。 +-o ssh_option 如果习惯于使用ssh_config(5)中的参数传递方式, +-P port 注意是大写的P, port是指定数据传输用到的端口号 +-S program 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。 + +### 4.使用实例 +scp命令的实际应用概述: + +从本地服务器复制到远程服务器: + +#### (1) 复制文件 + +命令格式: +```shell +scp local_file remote_username@remote_ip:remote_folder +``` +或者 +```shell +scp local_file remote_username@remote_ip:remote_file +``` +或者 +```shell +scp local_file remote_ip:remote_folder +``` +或者 +```shell +scp local_file remote_ip:remote_file +``` + +>第1,2个指定了用户名,命令执行后需要输入用户密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名 + +>第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名 + +#### (2) 复制目录 + +命令格式: +```shell +scp -r local_folder remote_username@remote_ip:remote_folder +``` +或者 +```shell +scp -r local_folder remote_ip:remote_folder +``` +>第1个指定了用户名,命令执行后需要输入用户密码。 + +>第2个没有指定用户名,命令执行后需要输入用户名和密码。 + diff --git a/WebMVC/WebMVCApi/md/Spring Cloud 一些组件 网上自建项目地址.md b/WebMVC/WebMVCApi/md/Spring Cloud 一些组件 网上自建项目地址.md new file mode 100644 index 0000000..8afefe9 --- /dev/null +++ b/WebMVC/WebMVCApi/md/Spring Cloud 一些组件 网上自建项目地址.md @@ -0,0 +1,16 @@ +--- +icon: edit +date: 2021-10-18 +tag: + - SpringCloud +headerDepth: 5 +--- + + +# Spring Cloud 一些组件 网上自建项目地址 +## 注册中心 + ### nacos +>[nacos](http://114.115.184.124:8848/nacos) +## 流控中心 + ### sentinel +>[sentinel](http://114.115.184.124:8858/) diff --git a/WebMVC/WebMVCApi/md/Windows 10上开启路由转发.md b/WebMVC/WebMVCApi/md/Windows 10上开启路由转发.md new file mode 100644 index 0000000..f85c8e7 --- /dev/null +++ b/WebMVC/WebMVCApi/md/Windows 10上开启路由转发.md @@ -0,0 +1,13 @@ +--- +icon: edit +date: 2022-07-04 +category: + - 内网穿透 +headerDepth: 5 +--- + + +# Windows 10上开启路由转发 +[打开windows路由转发功能](https://docker.blog.csdn.net/article/details/11700553?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-11700553-blog-122132109.pc_relevant_multi_platform_whitelistv2&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-11700553-blog-122132109.pc_relevant_multi_platform_whitelistv2&utm_relevant_index=1) + +[Windows 10上开启路由转发及添加路由](https://blog.csdn.net/weixin_44647835/article/details/109616688?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-109616688-blog-11700553.pc_relevant_multi_platform_whitelistv1&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1-109616688-blog-11700553.pc_relevant_multi_platform_whitelistv1&utm_relevant_index=1) \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/Windows设置frpc开机自动启动(不管用户是否登陆都要运行).md b/WebMVC/WebMVCApi/md/Windows设置frpc开机自动启动(不管用户是否登陆都要运行).md new file mode 100644 index 0000000..e79d504 --- /dev/null +++ b/WebMVC/WebMVCApi/md/Windows设置frpc开机自动启动(不管用户是否登陆都要运行).md @@ -0,0 +1,43 @@ +--- +icon: edit +date: 2021-11-26 +category: + - 系统配置 +tag: + - frp +headerDepth: 5 +--- + + +# Windows设置frpc开机自动启动(不管用户是否登陆都要运行) +### 新建start.bat,内容如下(放到自己frpc实际目录下): +```shell +@echo off +:home +frpc -c frpc.ini +goto home +``` +### 打开开始菜单,输入 “任务计划程序” 将会自动搜索,接着打开它。![](https://img-blog.csdnimg.cn/20200929111009349.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dkYWxp,size_16,color_FFFFFF,t_70) + +点击右侧的 “创建任务”,名称随意填写,安全选项选择 “不管用户是否登录都要运行”,当然你也可以选择 “只在用户登录时运行”。 + +选择 “不管用户是否登录都要运行” 可以让你的电脑在断电自动启动后自动运行 frp,你就可以远程桌面连接电脑了。 + +“使用最高权限运行” 也是可选的,根据个人需要可以选上。 + +最后勾选 “隐藏”,就不会在启动时弹出命令行窗口了。 + +![](https://img-blog.csdnimg.cn/20200929111043192.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dkYWxp,size_16,color_FFFFFF,t_70) + +接着转到 “触发器” 页,点击新建,选择 “启动时” +![](https://img-blog.csdnimg.cn/20200929111107766.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dkYWxp,size_16,color_FFFFFF,t_70) + +接着转到 “操作” 页,点击新建,选择 “启动程序” + +在程序或脚本一栏选择第一步创建的 start.bat,下面的 “起始于” 填写 start.bat 的路径(不要包含 start.bat) + +例如你的 start.bat 在 E:\frp\start.bat,那么你只需要在 “起始于” 填写 E:\frp\ +![](https://img-blog.csdnimg.cn/20200929111151748.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dkYWxp,size_16,color_FFFFFF,t_70) +接着返回 “常规” 页,点击确定,此时会要求输入密码,输入你的电脑密码,然后点击确定即可。 + +以后就会开机自动启动 frp 了,并且不会弹出命令提示符窗口。 \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/alist 和 raidrive 组建本地网络硬盘.md b/WebMVC/WebMVCApi/md/alist 和 raidrive 组建本地网络硬盘.md new file mode 100644 index 0000000..a419dd7 --- /dev/null +++ b/WebMVC/WebMVCApi/md/alist 和 raidrive 组建本地网络硬盘.md @@ -0,0 +1,69 @@ +--- +icon: edit +date: 2023-04-11 +category: + - Linux +tag: + - alist + - raidrive +headerDepth: 5 +--- + + +# alist 和 raidrive 组建本地网络硬盘 +[alist 官网](https://alist.nn.ci/) +[raidrive 官网](https://www.raidrive.com/) + +### 下载安装 +[AList Release](https://github.com/Xhofe/alist/releases) 下载自己需要的版本 + +```bash +# 解压下载的文件,得到可执行文件: +tar -zxvf alist-xxxx.tar.gz +# 授予程序执行权限: +chmod +x alist +# 运行程序 +./alist server +# 获得管理员信息 +./alist admin +``` + +### 守护进程 + +使用任意方式编辑 `/usr/lib/systemd/system/alist.service` 并添加如下内容,其中 path_alist 为 AList 所在的路径 + +```ini +[Unit] +Description=alist +After=network.target + +[Service] +Type=simple +WorkingDirectory=path_alist +ExecStart=path_alist/alist server +Restart=on-failure + +[Install] +WantedBy=multi-user.target +``` + +然后,执行 `systemctl daemon-reload` 重载配置,现在你可以使用这些命令来管理程序: + +- 启动: `systemctl start alist` +- 关闭: `systemctl stop alist` +- 配置开机自启: `systemctl enable alist` +- 取消开机自启: `systemctl disable alist` +- 状态: `systemctl status alist` +- 重启: `systemctl restart alist` + +### raidrive 下载安装 +windows 下 +[raidrive 官网](https://www.raidrive.com/) 下载radrive 安装包安装 + +安装完成后 +点击```添加``` 选择```NAS``` 选择```WebDAV``` +根据需要添加是否时https 选择 不是就把 地址框的对勾取消 +输入alist 地址 和端口 +输入alist 账号 密码 +![image-1681204409171](https://local.wuanwanghao.top:9000/test/test/image-1681204409171.png) + diff --git a/WebMVC/WebMVCApi/md/alist 对接onlyoffice , docker onlyoffice搭建和在线编辑实现.md b/WebMVC/WebMVCApi/md/alist 对接onlyoffice , docker onlyoffice搭建和在线编辑实现.md new file mode 100644 index 0000000..44ee8da --- /dev/null +++ b/WebMVC/WebMVCApi/md/alist 对接onlyoffice , docker onlyoffice搭建和在线编辑实现.md @@ -0,0 +1,84 @@ +--- +icon: edit +date: 2023-04-12 +category: + - 开发工具 + - Linux +tag: + - onlyoffice + - zfile +headerDepth: 5 +--- + + +# alist 对接onlyoffice , docker onlyoffice搭建和在线编辑实现 +### docker 搭建onlyoffice 目前不能在arch linux 环境中使用,各种情况可以参考onlyoffcie github issue +选用版本7.1.1 因为此版本不会强制jwt 校验 +``` +docker run --restart=always --name onlyoffice \ + -p 8081:80 \ + -e JWT_ENABLED=false \ + -v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \ + -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \ + -v /app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice \ + -v /app/onlyoffice/DocumentServer/db:/var/lib/postgresql \ + onlyoffice/documentserver:7.1.1 +``` +nginx 需要给onlyoffice 代理 SSL 配置的话请添加 +``` +proxy_http_version 1.1; +proxy_set_header Upgrade $http_upgrade; +proxy_set_header Connection "upgrade"; +proxy_set_header X-Forwarded-Proto https; +proxy_set_header Host $host:$server_port; +``` +部署完成后需要自己nginx 在静态代理一个页面view.html +其中的```https:/onlyoffice/web-apps/apps/api/documents/api.js``` 地址的domain 替换为自己onlyoffice 的地址 +```html + + + + + OnlyOffice Viewer + + + +
+ + + + +``` +### nginx 代理完静态页面后 ,将地址配置到alist 里面就可以使用了 +![image-1681290100978](https://local.wuanwanghao.top:9000/test/test/image-1681290100978.png) +### onlyoffice使用文件编辑的话选用 ,参照此[issue](https://github.com/alist-org/alist/discussions/3899) + diff --git a/WebMVC/WebMVCApi/md/c++ 不规范初始化时,出现的一系列奇怪问题解决(引发了异常 读取访问权限冲突).md b/WebMVC/WebMVCApi/md/c++ 不规范初始化时,出现的一系列奇怪问题解决(引发了异常 读取访问权限冲突).md new file mode 100644 index 0000000..6f9a3b7 --- /dev/null +++ b/WebMVC/WebMVCApi/md/c++ 不规范初始化时,出现的一系列奇怪问题解决(引发了异常 读取访问权限冲突).md @@ -0,0 +1,71 @@ +--- +icon: edit +date: 2023-01-06 +category: + - cpp +tag: + - 初始化问题 +headerDepth: 5 +--- + + +# c++ 不规范初始化时,出现的一系列奇怪问题解决(引发了异常 读取访问权限冲突) +**今天公司的c++ 项目,需要加一下小功能,读取配置,控制业务功能开启** +#### 问题原因 +这是有一段main 方法内的代码块 nacos 初始化并注册的代码 +```cpp + nacos::Nacos nacos(GetIpAddress().value(), PORT, NACOS_APPNAME); + nacos.namespaceId = NACOS_NAMESPACEID; + nacos::NacosClient cli(&nacos); + cli.registerNacos(); +``` +但是如果加上if 之后 或者代码提出来到外部方法内 就会出现问题了 +```cpp +if(flag){ + nacos::Nacos nacos(GetIpAddress().value(), PORT, NACOS_APPNAME); + nacos.namespaceId = NACOS_NAMESPACEID; + nacos::NacosClient cli(&nacos); + cli.registerNacos(); +} +或 +void run(){ + nacos::Nacos nacos(GetIpAddress().value(), PORT, NACOS_APPNAME); + nacos.namespaceId = NACOS_NAMESPACEID; + nacos::NacosClient cli(&nacos); + cli.registerNacos(); +} +``` +就会出现 引发了异常: **读取访问权限冲突 问题** +图片就不粘贴了 +这里开了个线程跑了个方法监听发送心跳检测 +```cpp + void nacos::NacosClient::beatNacos() + { + pthread_create(&beatNacosThread, NULL, action::BeatNacosThread, this); + } + +void* BeatNacosThread(void* args) { + NacosClient& cli = *(NacosClient*)args; + Nacos *nacos = cli.getNacos(); +``` +就在这一段出现的问题 BeatNacosThread 方法的 参数 传递的是NacosClient 指针,但是指针指向的堆空间损坏了。方法内读取参数就会出现(读取访问权限冲突问题) + +#### 问题解决 +其实也很简单: 使用new 实例化 +```cpp + nacos::Nacos *nacos = new Nacos(LOCAL_IP, PORT, NACOS_APPNAME); + nacos->namespaceId = NACOS_NAMESPACEID; + nacos::NacosClient *cli = new NacosClient(nacos); + cli->registerNacos(); + cli->getNacosConfig(); + cli->listenNacosConfig(); +``` + +#### 问题总结 +默认的实例化方式是其实调用的**c 的 malloc 函数** malloc 函数实例化的对象堆的内存空间是动态的,如果方法执行完成 或者 在if 语句块也是同样的原理,方法内的对象 或 if 语句块中的对象 内存就会损坏, 但是如果用 new 的话 创建的对象堆内存不是动态的。方法执行完毕也不会损坏。清理空间方法是使用 delete 关键字。 + +参考资料 +[读取字符串的字符时出错 无法读取内存](https://blog.csdn.net/fb_941219/article/details/106968262?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-106968262-blog-104897719.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-106968262-blog-104897719.pc_relevant_default&utm_relevant_index=1) +[vs debug模式下显示“变量已被优化掉,因而不可用”的解决办法](https://blog.csdn.net/weixin_44120025/article/details/115279323) +[C中的malloc和free释放原理](https://blog.csdn.net/qq_34272143/article/details/122594250) +[c++调试出现“读取字符串的字符时出错”,无法读取内存? 以及malloc函数和new 的区别](https://www.cnblogs.com/MYJ55/p/6765587.html) diff --git a/WebMVC/WebMVCApi/md/c++ 能重载的操作符有那些.md b/WebMVC/WebMVCApi/md/c++ 能重载的操作符有那些.md new file mode 100644 index 0000000..9a45317 --- /dev/null +++ b/WebMVC/WebMVCApi/md/c++ 能重载的操作符有那些.md @@ -0,0 +1,33 @@ +--- +icon: edit +date: 2023-01-11 +category: + - 系统配置 + - cpp +tag: + - 操作符 + - 重载 +headerDepth: 5 +--- + + +# c++ 能重载的操作符有那些 +重载操作符是指重新定义C++中已有运算符的含义。常见的重载操作符有: +``` +算术运算符: +, -, *, /, % +关系运算符: ==, !=, >, <, >=, <= +逻辑运算符: &&, ||, ! +赋值运算符: = +位运算符: &, |, ^, ~, <<, >> +自增/自减运算符: ++, -- +成员访问运算符: ->, . +下标运算符: [ ] +函数调用运算符: ( ) +转型运算符: (type) +new 和 delete 运算符: new, delete, new[], delete[] +另外还有三个特殊的运算符是可以被重载的: +复合赋值运算符: +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>= +串联运算符: <<, >> +逗号运算符: , +``` +需要注意的是所有运算符重载都需要在类内部进行,且实现的时候可能需要使用特殊的关键字来实现,如 ```friend``` 和 ```operator```. \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/centos7 更改用户组.md b/WebMVC/WebMVCApi/md/centos7 更改用户组.md new file mode 100644 index 0000000..e49da4b --- /dev/null +++ b/WebMVC/WebMVCApi/md/centos7 更改用户组.md @@ -0,0 +1,37 @@ +--- +icon: edit +date: 2022-12-02 +category: + - 系统配置 + - Linux +headerDepth: 5 +--- + + +# centos7 更改用户组 + +```这里都是root权限下执行,你也可以加上sudo``` +```shell +cat /etc/group +``` +或者使用管道直接选出是否docker +```shell +cat /etc/group | grep docker +``` +如果出现docker就不用添加,有时会出现dockerroot,没做研究,我也添加docker用户组。 +第二步添加docker用户组 +```shell +groupadd docker +``` +也可以指定用户组id(修改id就可以,不要和第一个查出来的id重复) +```shell +groupadd -g id docker +``` +第三步把普通用户添加docker用户组 +```shell +gpasswd -a 普通用户名 docker +``` +第四 更新用户组 +```shell +newgrp docker +``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/cmake 命令详解.md b/WebMVC/WebMVCApi/md/cmake 命令详解.md new file mode 100644 index 0000000..45eb2f2 --- /dev/null +++ b/WebMVC/WebMVCApi/md/cmake 命令详解.md @@ -0,0 +1,71 @@ +--- +icon: edit +date: 2023-01-16 +category: + - 系统配置 + - cpp +tag: + - CMake +headerDepth: 5 +--- + + +# cmake 命令详解 +#### Cmake命令行使用: +```shell +-G 指明生成的Makefile 的生成器 +-D 添加参数 +-S 指明源码位置 +-B 指明输出路径 +-A 指定系统架构 +-U 标志可用于取消设置变量 +``` +例如: +``` +cmake -G "MinGW Makefiles" -S "源码路径" -B "输出路径" +``` +或者 +``` +cmake -G "MinGW Makefiles" -DCMAKE_TOOLCHAIN_FILE="编译工具链路径" -S "源码路径" -B "输出路径" +``` +**注意:Cmake是不支持中文的,无论是GUI还是命令行,都严禁出现中文字符.** + + +#### -G 命令详解 +##### 一、介绍 +CMake默认根据平台选择一个生成器。通常,默认生成器足以让用户继续构建软件。用户可以使用-G选项覆盖默认生成器: +```shell +$ cmake .. -G Ninja +``` +1. cmake --help的输出包括一个可供用户选择的生成器列表。注意,生成器名称是区分大小写的 +![image-1673858124577](https://local.wuanwanghao.top:9000/test/test/image-1673858124577.png) +2. 项目构建工具 +类似make的工具有 ```Ninja``` 、```nmake``` 、```devenv(vs)```。 +makefile 可以理解为是make工具使用的代码,make读取makefile中的配置信息来实现编译、链接和部署。 +![image-1673858287897](https://local.wuanwanghao.top:9000/test/test/image-1673858287897.png) +##### -G 细节 +在类Unix系统(包括Mac OS X)上,默认情况下使用Unix Makefiles生成器。该生成器的一个变体也可以在Windows的各种环境中使用,比如NMake Makefiles和MinGW Makefiles生成器。这些生成器生成一个Makefile变量,可以用make、gmake、nmake或类似的工具执行 + +而Visual Studio生成器可以针对不同的体系结构。可以使用-A选项指定目标架构: +```shell +cmake .. -G "Visual Studio 2019" -A x64 +cmake .. -G "Visual Studio 16" -A ARM +cmake .. -G "Visual Studio 16 2019" -A ARM64 +``` +请注意,在第一次调用CMake之后,不可能使用-G来更改生成器。要更改生成器,必须删除构建目录,并且必须从头开始构建。 +#### -D 命令详解 +``` +CMAKE_INSTALL_PREFIX #设置构建完成的安装路径 +CMAKE_TOOLCHAIN_FILE #编译工具链路径 +CMAKE_PREFIX_PATH #搜索路径 dependent packages +CMAKE_MODULE_PATH #搜索其他 CMake 模块的路径 +CMAKE_BUILD_TYPE #构建配置,例如 Debug或Release,确定调试/优化标志。这仅与单配置构建系统相关,例如Makefile和Ninja。用于 Visual Studio 和 Xcode 的多配置构建系统会忽略此设置。 +BUILD_SHARED_LIBS #是否构建共享库而不是静态库add_library() 没有类型的命令 +CMAKE_EXPORT_COMPILE_COMMANDS #生成compile_commands.json 用于基于 clang 的工具的文件 +CMAKE_MAKE_PROGRAM #可以启动本机构建系统的工具。该值可能是可执行文件的完整路径,或者只是工具名称 如果它应该位于PATH. +CMAKE_C_COMPILER #设置C的编译器 +CMAKE_CXX_COMPILER #设置C++的编译器 +``` +CMAKE_MAKE_PROGRAM 属性值 和 -G 一般搭配使用 + +如果 -G 指定了 ```Ninja```生成器 那么CMAKE_MAKE_PROGRAM 就要指定Ninja 所在位置 D:/Program Files/JetBrains/CLion 2022.1.3/bin/ninja/win/ninja.exe 但 如果 ninja.exe 在环境变量中可以不指定 或者只用写ninja的名字即可 diff --git a/WebMVC/WebMVCApi/md/crontab linux 定时任务工具使用.md b/WebMVC/WebMVCApi/md/crontab linux 定时任务工具使用.md new file mode 100644 index 0000000..79439df --- /dev/null +++ b/WebMVC/WebMVCApi/md/crontab linux 定时任务工具使用.md @@ -0,0 +1,57 @@ +--- +icon: edit +date: 2023-04-02 +category: + - 系统配置 + - Linux +tag: + - crontab +headerDepth: 5 +--- + + +# crontab linux 定时任务工具使用 +### 使用 +``` +crontab: usage error: unrecognized option +usage: crontab [-u user] file + crontab [ -u user ] [ -i ] { -e | -l | -r } + (default operation is replace, per 1003.2) + -e (edit user's crontab) + -l (list user's crontab) + -r (delete user's crontab) + -i (prompt before deleting user's crontab) +``` +- -e 编辑和添加crontab +- -l 列出所有的定时任务 +- -r 删除定时任务 +- -i 删除用户crontab前提示 + +### crontab运行日志查看 +有时候发现定时任务没有按预期执行,可以能过查看日志发现执行相关的问题。 +一般来说 ,```crontab```的运行日志可以在```/var/log/cron.log```文件中。 +如果没有```/var/log/cron.log```文件,试一下```/var/log/cron``` +### crontab为什么有时候找不到日志? +需要通过配置打开crontab的日志记录功能。 +通过以下方式开启crontab的日志记录功能。 +``` +sudo vim /etc/rsyslog.d/50-default.conf +cron.* /var/log/cron.log #将cron前面的注释符去掉 +#重启rsyslog +#sudo /etc/init.d/rsyslog restart +sudo service rsyslog restart #重启rsyslog +sudo service cron restart #重启cron程度 +sudo service crond restart #重启crond。 在有的系统中,定时任务程序名称是crond +``` +### 选择-e 时的编辑器 修改系统默认编辑器 +``` +select-editor +``` +nano 编辑器 虽然提示说好用 ,其实大家学习的时候大多用习惯vim 的编辑器了,我还是喜欢用vim +``` +Select an editor. To change later, run 'select-editor'. + 1. /bin/nano <---- easiest + 2. /usr/bin/vim.basic + 3. /usr/bin/vim.tiny + 4. /bin/ed +``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/docker 安装 Portainer.md b/WebMVC/WebMVCApi/md/docker 安装 Portainer.md new file mode 100644 index 0000000..133dec0 --- /dev/null +++ b/WebMVC/WebMVCApi/md/docker 安装 Portainer.md @@ -0,0 +1,27 @@ +--- +icon: edit +date: 2022-07-15 +category: + - Docker +headerDepth: 5 +--- + + +# docker 安装 Portainer +[汉化版Portainer仓库地址](https://hub.docker.com/r/6053537/portainer-ce) + +命令: +``` + docker run -d --restart=always \ + --name="portainer" \ + -p 9100:9000 \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -v /home/wanghao/portainer-ce/data:/data \ + 6053537/portainer-ce +``` +- ```-d``` 后台进程启动。 +- ```-p 9000:9000``` 管理控制UI界面访问接口。 +- ```-name portainer``` 容器名称。 +- ```--restart=always``` 进程挂了自动重启,比如重启docker以后自动重启portainer。 +- ```-v``` 数据卷。 +- ```6053537/portainer-ce``` portainer社区版汉化版镜像。 diff --git a/WebMVC/WebMVCApi/md/docker 安装 emqx.md b/WebMVC/WebMVCApi/md/docker 安装 emqx.md new file mode 100644 index 0000000..1bf5244 --- /dev/null +++ b/WebMVC/WebMVCApi/md/docker 安装 emqx.md @@ -0,0 +1,11 @@ +--- +icon: edit +date: 2022-07-15 +category: + - Docker +headerDepth: 5 +--- + + +# docker 安装 emqx +[docker 安装 emqx](https://blog.csdn.net/qq_21137441/article/details/113539310) \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/docker 安装 jenkins.md b/WebMVC/WebMVCApi/md/docker 安装 jenkins.md new file mode 100644 index 0000000..199ebc6 --- /dev/null +++ b/WebMVC/WebMVCApi/md/docker 安装 jenkins.md @@ -0,0 +1,23 @@ +--- +icon: edit +date: 2023-04-09 +category: + - Docker +headerDepth: 5 +--- + + +# docker 安装 jenkins +``` +docker run \ +-u root \ +-d \ +--name jenkins \ +--restart=always \ +-p 8080:8080 \ +-p 8888:8888 \ +-p 50000:50000 \ +-v /wanghao/jenkins_home:/var/jenkins_home \ +-v /wanghao/env:/usr/local/env \ +jenkins/jenkins:latest +``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/docker 安装 zfile.md b/WebMVC/WebMVCApi/md/docker 安装 zfile.md new file mode 100644 index 0000000..888d118 --- /dev/null +++ b/WebMVC/WebMVCApi/md/docker 安装 zfile.md @@ -0,0 +1,27 @@ +--- +icon: edit +date: 2023-04-06 +category: + - Docker +tag: + - zfile +headerDepth: 5 +--- + + +# docker 安装 zfile +[官方安装文档](https://docs.zfile.vip/install/os-docker/) +### 下载配置文件 +```shell + curl -k -o /home/wanghao/zfile/config/application.properties https://c.jun6.net/ZFILE/application.properties +``` +### 启动 +``` shell + docker run -d --name=zfile --restart=always \ + -p 8080:8080 \ + -v /home/wanghao/zfile/db:/root/.zfile-v4/db \ + -v /home/wanghao/zfile/logs:/root/.zfile-v4/logs \ + -v /home/wanghao/zfile/file:/data/file \ + -v /home/wanghao/zfile/config/application.properties:/root/application.properties \ + zhaojun1998/zfile +``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/docker 开放远程管理,portainer 添加远程docker 服务器 ,docker 开启TLS 认证.md b/WebMVC/WebMVCApi/md/docker 开放远程管理,portainer 添加远程docker 服务器 ,docker 开启TLS 认证.md new file mode 100644 index 0000000..73bddfe --- /dev/null +++ b/WebMVC/WebMVCApi/md/docker 开放远程管理,portainer 添加远程docker 服务器 ,docker 开启TLS 认证.md @@ -0,0 +1,120 @@ +--- +icon: edit +date: 2023-04-06 +category: + - Docker +headerDepth: 5 +--- + + +# docker 开放远程管理,portainer 添加远程docker 服务器 ,docker 开启TLS 认证 +## docker 开放远程管理 +### 修改docker 服务文件 +```shell +vim /usr/lib/systemd/system/docker.service +``` +### 启动命令后追加 ```-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock``` +``` +#找到ExecStart这行 在后面加上-H tcp://0.0.0.0:2375 其它方式一会docker就挂了 而且重启无效 +ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock +``` +### 重启docker +```shell +systemctl daemon-reload +systemctl restart docker +``` +### 防火墙开放端口 +``` +firewall-cmd --zone=public --add-port=2375/tcp --permanent +systemctl reload firewalld +``` + +## portainer 添加远程docker 服务器 +![image-1680765916390](https://local.wuanwanghao.top:9000/test/test/image-1680765916390.png) +![image-1680766178357](https://local.wuanwanghao.top:9000/test/test/image-1680766178357.png) + + +## 配置Docker开启TLS认证 +直接开放 Docker 2375 端口容易造成生成事故,被人入侵挖矿之类的, 所以这里开启TLS 认证来安全防护 + +### 生成TLS证书 +创建证书生成脚本 createcert.sh,放置/opt/sh目录 +``` +mkdir -p /opt/sh /opt/cert/docker +touch /opt/sh/createcert.sh +vim /opt/sh/createcert.sh +``` +在createcret.sh添加内容 +``` +#!/bin/bash +set -e +if [ -z $1 ];then + echo "请输入Docker服务器的域名" + exit 0 +fi +HOST=$1 +mkdir -p /opt/cert/docker +cd /opt/cert/docker +openssl genrsa -aes256 -out ca-key.pem 4096 +openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pem +openssl genrsa -out server-key.pem 4096 +openssl req -subj "/CN=$HOST" -sha256 -new -key server-key.pem -out server.csr +# 配置白名单,推荐配置0.0.0.0,允许所有IP连接但只有证书才可以连接成功 +echo subjectAltName = DNS:$HOST,IP:0.0.0.0 > extfile.cnf +openssl x509 -req -days 365 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -extfile extfile.cnf +openssl genrsa -out key.pem 4096 +openssl req -subj '/CN=client' -new -key key.pem -out client.csr +echo extendedKeyUsage = clientAuth > extfile.cnf +openssl x509 -req -days 365 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem -extfile extfile.cnf +rm -v client.csr server.csr +chmod -v 0400 ca-key.pem key.pem server-key.pem +chmod -v 0444 ca.pem server-cert.pem cert.pem +``` +执行 createcert.sh 脚本,生成证书放置 /opt/cert/docker 目录中 +``` +# wuanwanghao.top 是服务器的域名 +sh /opt/sh/createcert.sh wuanwanghao.top +``` +按照提示输入相关信息,密码一致,其他信息可留空,等脚本指定完成之后,可在 /opt/cert/docker 目录查看到生成的证书。 +![image-1680790203577](https://local.wuanwanghao.top:9000/test/test/image-1680790203577.png) + +### 配置Docker开启TLS认证 +``` +vim /usr/lib/systemd/system/docker.service +``` +在ExecStart属性后追加 +``` +--tlsverify --tlscacert=/opt/cert/docker/ca.pem \ +--tlscert=/opt/cert/docker/server-cert.pem \ +--tlskey=/opt/cert/docker/server-key.pem \ +-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock +``` +### 重新加载docker配置后重启 +``` +systemctl daemon-reload +systemctl restart docker +``` +查看2376端口是否启动 +``` +netstat -nltp | grep 2375 +``` + +本地连接测试Docker API是否可用 + +没有指定证书访问测试 +``` +curl https://wuanwanghao.top:2375/info +``` +指定证书访问测试 +``` +curl https://wuanwanghao.top:2375/info --cert /opt/cert/docker/cert.pem --key /opt/cert/docker/key.pem --cacert /opt/cert/docker/ca.pem +``` +### portainer 重新添加docker机器 + +删除原先docker 机器 ,重新添加 勾选TLS 选项 +![image-1680790455212](https://local.wuanwanghao.top:9000/test/test/image-1680790455212.png) + +上传生成的TLS 文件 +![image-1680790603638](https://local.wuanwanghao.top:9000/test/test/image-1680790603638.png) + +重新链接即可 \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/docker 部署 nacos 集群.md b/WebMVC/WebMVCApi/md/docker 部署 nacos 集群.md new file mode 100644 index 0000000..7f8f2e1 --- /dev/null +++ b/WebMVC/WebMVCApi/md/docker 部署 nacos 集群.md @@ -0,0 +1,441 @@ +--- +icon: edit +date: 2021-10-17 +category: + - Docker +tag: + - Docker + - Nacos +headerDepth: 5 +--- + + +# docker 部署 nacos 集群 +# docker 部署 nacos 集群 +>[官网部署文档](https://github.com/nacos-group/nacos-docker/blob/master/README_ZH.md) + +## 编写cluster-ip.yaml + +```yml +version: "2" +services: + nacos1: + image: nacos/nacos-server:latest + container_name: nacos1 + networks: + nacos_net: + ipv4_address: 172.16.238.10 + volumes: + - ./cluster-logs/nacos1:/home/nacos/logs + ports: + # - "8848:8848" + - "9848:9848" + - "9555:9555" + env_file: + - ../env/nacos-ip.env + restart: on-failure + + nacos2: + image: nacos/nacos-server:latest + container_name: nacos2 + networks: + nacos_net: + ipv4_address: 172.16.238.11 + volumes: + - ./cluster-logs/nacos2:/home/nacos/logs + ports: + # - "8849:8848" + - "9849:9848" + env_file: + - ../env/nacos-ip.env + restart: always + + nacos3: + image: nacos/nacos-server:latest + container_name: nacos3 + networks: + nacos_net: + ipv4_address: 172.16.238.12 + volumes: + - ./cluster-logs/nacos2:/home/nacos/logs + ports: + #- "8850:8848" + - "9850:9848" + env_file: + - ../env/nacos-ip.env + restart: always + +networks: + nacos_net: + driver: bridge + ipam: + driver: default + config: + - subnet: 172.16.238.0/24 + +``` + + +## 编写 nacos-ip.env +``` env +#nacos dev env +NACOS_SERVERS=172.16.238.10:8848 172.16.238.11:8848 172.16.238.12:8848 +MYSQL_SERVICE_HOST=114.115.184.124 +MYSQL_SERVICE_DB_NAME=nacos +MYSQL_SERVICE_PORT=3307 +MYSQL_SERVICE_USER=root +MYSQL_SERVICE_PASSWORD=123456 +JVM_XMN=64m #年轻代大小 +JVM_XMS=128m #初始堆大小 +JVM_XMX=128m #最大堆大小 + +``` +### nacos数据库sql +``` sql +/* + * Copyright 1999-2018 Alibaba Group Holding Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/******************************************/ +/* 数据库全名 = nacos_config */ +/* 表名称 = config_info */ +/******************************************/ +CREATE TABLE `config_info` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', + `data_id` varchar(255) NOT NULL COMMENT 'data_id', + `group_id` varchar(255) DEFAULT NULL, + `content` longtext NOT NULL COMMENT 'content', + `md5` varchar(32) DEFAULT NULL COMMENT 'md5', + `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', + `src_user` text COMMENT 'source user', + `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip', + `app_name` varchar(128) DEFAULT NULL, + `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段', + `c_desc` varchar(256) DEFAULT NULL, + `c_use` varchar(64) DEFAULT NULL, + `effect` varchar(64) DEFAULT NULL, + `type` varchar(64) DEFAULT NULL, + `c_schema` text, + PRIMARY KEY (`id`), + UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info'; + +/******************************************/ +/* 数据库全名 = nacos_config */ +/* 表名称 = config_info_aggr */ +/******************************************/ +CREATE TABLE `config_info_aggr` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', + `data_id` varchar(255) NOT NULL COMMENT 'data_id', + `group_id` varchar(255) NOT NULL COMMENT 'group_id', + `datum_id` varchar(255) NOT NULL COMMENT 'datum_id', + `content` longtext NOT NULL COMMENT '内容', + `gmt_modified` datetime NOT NULL COMMENT '修改时间', + `app_name` varchar(128) DEFAULT NULL, + `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_configinfoaggr_datagrouptenantdatum` (`data_id`,`group_id`,`tenant_id`,`datum_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='增加租户字段'; + + +/******************************************/ +/* 数据库全名 = nacos_config */ +/* 表名称 = config_info_beta */ +/******************************************/ +CREATE TABLE `config_info_beta` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', + `data_id` varchar(255) NOT NULL COMMENT 'data_id', + `group_id` varchar(128) NOT NULL COMMENT 'group_id', + `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name', + `content` longtext NOT NULL COMMENT 'content', + `beta_ips` varchar(1024) DEFAULT NULL COMMENT 'betaIps', + `md5` varchar(32) DEFAULT NULL COMMENT 'md5', + `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', + `src_user` text COMMENT 'source user', + `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip', + `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_configinfobeta_datagrouptenant` (`data_id`,`group_id`,`tenant_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_beta'; + +/******************************************/ +/* 数据库全名 = nacos_config */ +/* 表名称 = config_info_tag */ +/******************************************/ +CREATE TABLE `config_info_tag` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', + `data_id` varchar(255) NOT NULL COMMENT 'data_id', + `group_id` varchar(128) NOT NULL COMMENT 'group_id', + `tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id', + `tag_id` varchar(128) NOT NULL COMMENT 'tag_id', + `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name', + `content` longtext NOT NULL COMMENT 'content', + `md5` varchar(32) DEFAULT NULL COMMENT 'md5', + `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', + `src_user` text COMMENT 'source user', + `src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_configinfotag_datagrouptenanttag` (`data_id`,`group_id`,`tenant_id`,`tag_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info_tag'; + +/******************************************/ +/* 数据库全名 = nacos_config */ +/* 表名称 = config_tags_relation */ +/******************************************/ +CREATE TABLE `config_tags_relation` ( + `id` bigint(20) NOT NULL COMMENT 'id', + `tag_name` varchar(128) NOT NULL COMMENT 'tag_name', + `tag_type` varchar(64) DEFAULT NULL COMMENT 'tag_type', + `data_id` varchar(255) NOT NULL COMMENT 'data_id', + `group_id` varchar(128) NOT NULL COMMENT 'group_id', + `tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id', + `nid` bigint(20) NOT NULL AUTO_INCREMENT, + PRIMARY KEY (`nid`), + UNIQUE KEY `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`), + KEY `idx_tenant_id` (`tenant_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_tag_relation'; + +/******************************************/ +/* 数据库全名 = nacos_config */ +/* 表名称 = group_capacity */ +/******************************************/ +CREATE TABLE `group_capacity` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `group_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表示整个集群', + `quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值', + `usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量', + `max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值', + `max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数,,0表示使用默认值', + `max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值', + `max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量', + `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_group_id` (`group_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='集群、各Group容量信息表'; + +/******************************************/ +/* 数据库全名 = nacos_config */ +/* 表名称 = his_config_info */ +/******************************************/ +CREATE TABLE `his_config_info` ( + `id` bigint(64) unsigned NOT NULL, + `nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `data_id` varchar(255) NOT NULL, + `group_id` varchar(128) NOT NULL, + `app_name` varchar(128) DEFAULT NULL COMMENT 'app_name', + `content` longtext NOT NULL, + `md5` varchar(32) DEFAULT NULL, + `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + `src_user` text, + `src_ip` varchar(50) DEFAULT NULL, + `op_type` char(10) DEFAULT NULL, + `tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段', + PRIMARY KEY (`nid`), + KEY `idx_gmt_create` (`gmt_create`), + KEY `idx_gmt_modified` (`gmt_modified`), + KEY `idx_did` (`data_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='多租户改造'; + + +/******************************************/ +/* 数据库全名 = nacos_config */ +/* 表名称 = tenant_capacity */ +/******************************************/ +CREATE TABLE `tenant_capacity` ( + `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `tenant_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Tenant ID', + `quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值', + `usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使用量', + `max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值', + `max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数', + `max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值', + `max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量', + `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_tenant_id` (`tenant_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='租户容量信息表'; + + +CREATE TABLE `tenant_info` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id', + `kp` varchar(128) NOT NULL COMMENT 'kp', + `tenant_id` varchar(128) default '' COMMENT 'tenant_id', + `tenant_name` varchar(128) default '' COMMENT 'tenant_name', + `tenant_desc` varchar(256) DEFAULT NULL COMMENT 'tenant_desc', + `create_source` varchar(32) DEFAULT NULL COMMENT 'create_source', + `gmt_create` bigint(20) NOT NULL COMMENT '创建时间', + `gmt_modified` bigint(20) NOT NULL COMMENT '修改时间', + PRIMARY KEY (`id`), + UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`,`tenant_id`), + KEY `idx_tenant_id` (`tenant_id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='tenant_info'; + +CREATE TABLE `users` ( + `username` varchar(50) NOT NULL PRIMARY KEY, + `password` varchar(500) NOT NULL, + `enabled` boolean NOT NULL +); + +CREATE TABLE `roles` ( + `username` varchar(50) NOT NULL, + `role` varchar(50) NOT NULL, + UNIQUE INDEX `idx_user_role` (`username` ASC, `role` ASC) USING BTREE +); + +CREATE TABLE `permissions` ( + `role` varchar(50) NOT NULL, + `resource` varchar(255) NOT NULL, + `action` varchar(8) NOT NULL, + UNIQUE INDEX `uk_role_permission` (`role`,`resource`,`action`) USING BTREE +); + +INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE); + +INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN'); +``` + + +### nacos-ip.env 对应属性配置列表 可以根据需求对照填写 + + + +| 属性名称 | 描述 | 选项 | +| --------------------------------- | ------------------------------------------------------------ | ----------------------------------- | +| MODE | 系统启动方式: 集群/单机 | cluster/standalone默认 **cluster** | +| NACOS_SERVERS | 集群地址 | p1:port1空格ip2:port2 空格ip3:port3 | +| PREFER_HOST_MODE | 支持IP还是域名模式 | hostname/ip 默认 **ip** | +| NACOS_SERVER_PORT | Nacos 运行端口 | 默认 **8848** | +| NACOS_SERVER_IP | 多网卡模式下可以指定IP | | +| SPRING_DATASOURCE_PLATFORM | 单机模式下支持MYSQL数据库 | mysql / 空 默认:空 | +| MYSQL_SERVICE_HOST | 数据库 连接地址 | | +| MYSQL_SERVICE_PORT | 数据库端口 | 默认 : **3306** | +| MYSQL_SERVICE_DB_NAME | 数据库库名 | | +| MYSQL_SERVICE_USER | 数据库用户名 | | +| MYSQL_SERVICE_PASSWORD | 数据库用户密码 | | +| MYSQL_SERVICE_DB_PARAM | 数据库连接参数 | default : **characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false** | +| MYSQL_DATABASE_NUM | It indicates the number of database | 默认 :**1** | +| JVM_XMS | -Xms | 默认 :1g | +| JVM_XMX | -Xmx | 默认 :1g | +| JVM_XMN | -Xmn | 默认 :512m | +| JVM_MS | -XX:MetaspaceSize | 默认 :128m | +| JVM_MMS | -XX:MaxMetaspaceSize | 默认 :320m | +| NACOS_DEBUG | 是否开启远程DEBUG | y/n 默认 :n | +| TOMCAT_ACCESSLOG_ENABLED | server.tomcat.accesslog.enabled | 默认 :false | +| NACOS_AUTH_SYSTEM_TYPE | 权限系统类型选择,目前只支持nacos类型 | 默认 :nacos | +| NACOS_AUTH_ENABLE | 是否开启权限系统 | 默认 :false | +| NACOS_AUTH_TOKEN_EXPIRE_SECONDS | token 失效时间 | 默认 :18000 | +| NACOS_AUTH_TOKEN | token | 默认 :SecretKey012345678901234567890123456789012345678901234567890123456789 | +| NACOS_AUTH_CACHE_ENABLE | 权限缓存开关 ,开启后权限缓存的更新默认有15秒的延迟 | 默认 : false | +| MEMBER_LIST | 通过环境变量的方式设置集群地址 | 例子:192.168.16.101:8847?raft_port=8807,192.168.16.101?raft_port=8808,192.168.16.101:8849?raft_port=8809 | +| EMBEDDED_STORAGE | 是否开启集群嵌入式存储模式 | `embedded` 默认 : none | +| NACOS_AUTH_CACHE_ENABLE | nacos.core.auth.caching.enabled | default : false | +| NACOS_AUTH_USER_AGENT_AUTH_WHITE_ENABLE | nacos.core.auth.enable.userAgentAuthWhite | default : false | +| NACOS_AUTH_IDENTITY_KEY | nacos.core.auth.server.identity.key | default : serverIdentity | +| NACOS_AUTH_IDENTITY_VALUE | nacos.core.auth.server.identity.value | default : security | +| NACOS_SECURITY_IGNORE_URLS | nacos.security.ignore.urls | default : `/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**` | + + +## docker compose 运行 yml 文件 +``` shell +docker-compose -f example/cluster-ip.yaml up +``` + + +## nginx 配置 + +```conf +upstream clusterNacos{ + server 172.16.238.12:8848; + server 172.16.238.11:8848; + server 172.16.238.10:8848; +} +server{ + listen 8848; + server_name 114.115.184.124; + location / { + proxy_pass http://clusterNacos; + } +} +``` + +## 访问 +![image.png](/upload/2021/10/image-39a8c8939254405f9aab2354d02f3c49.png) + + + +#手动部署 +``` +# 拉取nacos +docker pull nacos/nacos-server +# 创建文件夹 +mkdir -p /wanghao/nacos/logs/ +mkdir -p /wanghao/nacos/init.d/ +# 修改配置文件 +vim /wanghao/nacos/init.d/custom.properties #修改配置文件 +# mysql新建nacos的数据库,并执行脚本 sql脚本地址如下: +https://github.com/alibaba/nacos/blob/master/config/src/main/resources/META-INF/nacos-db.sql + +# 运行nacos +docker run \ +--name nacos-wh -d \ +-p 8849:8848 \ +--privileged=true \ +--restart=always \ +-e JVM_XMS=256m \ +-e JVM_XMX=256m \ +-e MODE=standalone \ +-e PREFER_HOST_MODE=hostname \ +-v /wanghao/nacos/logs:/etc/nacos/logs \ +-v /wanghao/nacos/init.d/custom.properties:/etc/nacos/init.d/custom.properties \ +nacos/nacos-server +``` +## custom.properties +``` +server.contextPath=/nacos +server.servlet.contextPath=/nacos +server.port=8848 + +spring.datasource.platform=mysql +db.num=1 +db.url.0=jdbc:mysql://114.115.184.124:3307/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true +db.user=root +db.password=ks125930. + +nacos.cmdb.dumpTaskInterval=3600 +nacos.cmdb.eventTaskInterval=10 +nacos.cmdb.labelTaskInterval=300 +nacos.cmdb.loadDataAtStart=false +management.metrics.export.elastic.enabled=false +management.metrics.export.influx.enabled=false +server.tomcat.accesslog.enabled=true +server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i +nacos.security.ignore.urls=/,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/login,/v1/console/health/**,/v1/cs/**,/v1/ns/**,/v1/cmdb/**,/actuator/**,/v1/console/server/** +nacos.naming.distro.taskDispatchThreadCount=1 +nacos.naming.distro.taskDispatchPeriod=200 +nacos.naming.distro.batchSyncKeyCount=1000 +nacos.naming.distro.initDataRatio=0.9 +nacos.naming.distro.syncRetryDelay=5000 +nacos.naming.data.warmup=true +nacos.naming.expireInstance=true + + +``` + diff --git a/WebMVC/WebMVCApi/md/docker 部署 rocket-mq.md b/WebMVC/WebMVCApi/md/docker 部署 rocket-mq.md new file mode 100644 index 0000000..9fe7b5b --- /dev/null +++ b/WebMVC/WebMVCApi/md/docker 部署 rocket-mq.md @@ -0,0 +1,87 @@ +--- +icon: edit +date: 2021-11-17 +category: + - Docker +tag: + - rocket-mq +headerDepth: 5 +--- + + +# docker 部署 rocket-mq +# docker 安装rocketmq + +## 拉取镜像 +```shell +docker pull foxiswho/rocketmq:server-4.4.0 +docker pull foxiswho/rocketmq:broker-4.4.0 +``` + +## 创建数据挂载目录 +```shell +mkdir -p /wanghao/rocketmq/server/logs +mkdir -p /wanghao/rocketmq/server/store +mkdir -p /wanghao/rocketmq/broker/logs +mkdir -p /wanghao/rocketmq/broker/store +mkdir -p /wanghao/rocketmq/broker/conf +``` +## 编辑配置文件 +```shell +vi /wanghao/rocketmq/broker/conf/broker.conf +``` +### broker.conf +```conf +namesrvAddr=服务器ip:9876 +brokerClusterName = DefaultCluster +brokerName = broker-a +brokerId = 0 +deleteWhen = 04 +fileReservedTime = 48 +brokerRole = ASYNC_MASTER +flushDiskType = ASYNC_FLUSH +brokerIP1 = 服务器ip +listenPort=10911 +``` + +## 创建容器 +### server +```shell +docker run -p 9876:9876 \ +--name rocketmq-server \ +-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \ +-e "JAVA_OPTS=-Duser.home=/opt" \ +-v /software/rocketmq/server/logs:/opt/logs \ +-v /software/rocketmq/server/store:/opt/store \ +foxiswho/rocketmq:server-4.4.0 +``` +### broker +```shell +docker run -it -d \ +-p 10909:10909 \ +-p 10911:10911 \ +--name rocketmq-broker \ +-e "JAVA_OPT_EXT=-server -Xms128m -Xmx128m -Xmn128m" \ +-e "JAVA_OPTS=-Duser.home=/opt" \ +-v /software/rocketmq/broker/conf/broker.conf:/etc/rocketmq/broker.conf \ +-v /software/rocketmq/broker/logs:/opt/logs \ +-v /software/rocketmq/broker/store:/opt/store \ +--privileged=true \ +foxiswho/rocketmq:broker-4.4.0 +``` +## 部署RocketMQ的管理工具 +```RocketMQ提供了UI管理工具,名为rocketmq-console,我们选择docker安装``` +### 拉取镜像 +```shell +docker pull styletang/rocketmq-console-ng:1.0.0 +``` +### 启动容器 +```shell +docker run -d \ +--name rocketmq-admin \ +-e "JAVA_OPTS=-Drocketmq.namesrv.addr=10.10.5.124:9876; -Dcom.rocketmq.sendMessageWithVIPChannel=false" \ +-p 18080:8080 \ +-t styletang/rocketmq-console-ng:1.0.0 +``` + +![image.png](/upload/2021/11/image-883f047266bc4531af1eb96e1b588a8e.png) \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/docker使用ubuntu镜像图形化界面.md b/WebMVC/WebMVCApi/md/docker使用ubuntu镜像图形化界面.md new file mode 100644 index 0000000..28dbf5b --- /dev/null +++ b/WebMVC/WebMVCApi/md/docker使用ubuntu镜像图形化界面.md @@ -0,0 +1,24 @@ +--- +icon: edit +date: 2023-03-06 +category: + - 系统配置 + - Docker +headerDepth: 5 +--- + + +# docker使用ubuntu镜像图形化界面 +不想用vnc安装图形化界面,直接找了一个有图形化界面的ubuntu镜像 + +镜像地址: + +https://hub.docker.com/r/kasmweb/desktop/tags + +pull完镜像后生成容器即可,此界面为web版,地址为: + +https://IP_OF_SERVER:6901 +``` +docker run -it -p 6901:6901 -e VNC_PW=password --name ubuntu-test kasmweb/desktop:1.10.0-rolling +``` +![image-1678090052556](https://local.wuanwanghao.top:9000/test/test/image-1678090052556.png) \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/docker部署Nginx.md b/WebMVC/WebMVCApi/md/docker部署Nginx.md new file mode 100644 index 0000000..b6bf07e --- /dev/null +++ b/WebMVC/WebMVCApi/md/docker部署Nginx.md @@ -0,0 +1,46 @@ +--- +icon: edit +date: 2021-09-16 +category: + - Docker +tag: + - Docker + - nginx +headerDepth: 5 +--- + + +# docker部署Nginx +# Nginx的安装 + +## 1.下载nginx镜像 + +```shell +docker pull nginx +``` + +复制代码2.创建实例并启动 + +```shell +docker run -p 80:80 --name nginx \ +-v /mydata/nginx/html:/usr/share/nginx/html \ +-v /mydata/nginx/logs:/var/log/nginx \ +-d nginx:1.10 +``` + +复制代码3.拷贝nginx的配置 +>1. 将容器内的配置文件拷贝到当前目录:docker container cp nginx:/etc/nginx . +>2. 修改文件名称:mv nginx conf 把这个conf移动到/wanghao/nginx下 +>3. 终止容器:docker stop nginx +>4. 执行命令删除原容器:docker rm $ContainerId + +再次创建nginx容器 +```shell +docker run -p 80:80 --name nginx \ +--restart=always \ +-v /wanghao/nginx/html:/usr/share/nginx/html \ +-v /wanghao/nginx/logs:/var/log/nginx \ +-v /wanghao/nginx/conf:/etc/nginx/conf.d \ +-d nginx +``` + diff --git a/WebMVC/WebMVCApi/md/docker部署sentinel.md b/WebMVC/WebMVCApi/md/docker部署sentinel.md new file mode 100644 index 0000000..b0f081c --- /dev/null +++ b/WebMVC/WebMVCApi/md/docker部署sentinel.md @@ -0,0 +1,24 @@ +--- +icon: edit +date: 2021-10-17 +category: + - Docker +tag: + - sentinel + - Docker +headerDepth: 5 +--- + + +# docker部署sentinel +## docker 拉取 镜像 +``` shell +docker pull bladex/sentinel-dashboard +``` +## docker 运行 镜像 +``` shell +docker run -d --name sentinel-dashboard -p 8858:8858 --restart=always bladex/sentinel-dashboard +``` +## 访问sentinel +```http://ip:8858 #ip:服务器地址``` +![image.png](/upload/2021/10/image-35a36703c3de4608bb87dc383d088d69.png) \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/dotnet core 配置文件 相关配置 复制到编译目录.md b/WebMVC/WebMVCApi/md/dotnet core 配置文件 相关配置 复制到编译目录.md new file mode 100644 index 0000000..41acf86 --- /dev/null +++ b/WebMVC/WebMVCApi/md/dotnet core 配置文件 相关配置 复制到编译目录.md @@ -0,0 +1,18 @@ +--- +icon: edit +date: 2023-02-22 +category: + - .Net +headerDepth: 5 +--- + + +# dotnet core 配置文件 相关配置 复制到编译目录 +``` + + // 需要配置的配置文件名称 + // 配置复制到编译目录,文件较新就复制 + PreserveNewest + + +``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/glibc 版本低的解决方法 以及升级后遇到的问题解决.md b/WebMVC/WebMVCApi/md/glibc 版本低的解决方法 以及升级后遇到的问题解决.md new file mode 100644 index 0000000..f19be6a --- /dev/null +++ b/WebMVC/WebMVCApi/md/glibc 版本低的解决方法 以及升级后遇到的问题解决.md @@ -0,0 +1,66 @@ +--- +icon: edit +date: 2023-04-11 +category: + - Linux +headerDepth: 5 +--- + + +# glibc 版本低的解决方法 以及升级后遇到的问题解决 +centos 升级gcc 环境 +```shell +yum -y install centos-release-scl +yum -y install devtoolset-8-gcc devtoolset-8-gcc-c++ devtoolset-8-binutils +scl enable devtoolset-8 bash +echo "source /opt/rh/devtoolset-8/enable" >>/etc/profile +yum install -y bison +``` +升级make +```shell +wget http://ftp.gnu.org/gnu/make/make-4.2.tar.gz +tar -xzvf make-4.2.tar.gz +cd make-4.2 +sudo ./configure +sudo make +sudo make install +sudo rm -rf /usr/bin/make +sudo cp ./make /usr/bin/ +make -v +``` +升级glibc +```shell +cd /wanghao/glibc +wget https://mirror.bjtu.edu.cn/gnu/libc/glibc-2.28.tar.xz --no-check-certificate +tar -xf glibc-2.28.tar.xz +cd glibc-2.28/ +mkdir build +cd build +sudo ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin +make -j 8 #make 运行时间较长 开启多线程任务编译 开启数量 8 +make install +``` +查看环境中所有GLIBC +```shell +ls -la /lib64/libc.so.6 +strings /lib64/libc.so.6 |grep GLIBC +``` + +## 问题解决 +### 升级libc后导致中文乱码 +如果编译目录没有删除 ,则进入glibc的编译目录,也就是build目录 +``` +make localedata/install-locales +``` +再次执行 locale 这时应该已经正常了 +但是如果你已经删除了编译glibc的build目录或者不知道build的目录在哪里 +查看 locale-archive 归档文件目录 +``` +strings /lib64/libc-2.28.so | grep locale-archive +``` +查看```目标``` 结果中有没有 locale-archive + +没有就将/usr/lib/locale/locale-archive 软连接到目标位置 +``` +ln -s /usr/lib/locale/locale-archive 目标 +``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/go get 遇到缓存问题解决.md b/WebMVC/WebMVCApi/md/go get 遇到缓存问题解决.md new file mode 100644 index 0000000..dad5de8 --- /dev/null +++ b/WebMVC/WebMVCApi/md/go get 遇到缓存问题解决.md @@ -0,0 +1,36 @@ +--- +icon: edit +date: 2023-01-09 +category: + - GoLang + - 系统配置 +tag: + - GoLang +headerDepth: 5 +--- + + +# go get 遇到缓存问题解决 +#### go get 遇到缓存问题解决 +接手公司边缘计算项目的时候遇到的问题。公司项目包路径需要修改 +当修改完重新go get 的时候,项目引入的依赖包还是旧的没有修改的 +,进入GOPATH 删除了那个包,再去 +```shell +go mod tidy +``` +发现下的包还是旧的。重复几次依旧不行,这时候想到了go 使用git 命令去下的包,那我是不是可以清理下git 缓存呢,尝试后已经不行。最后发现自己漏了一点,就在眼皮底下 +![image-1673255828821](https://local.wuanwanghao.top:9000/test/test/image-1673255828821.png) +GOPATH 下是有个cache 目录的 ,进入删除vcs 文件夹 和 download 里面相应的包,再去go get 问题就解决了 +![image-1673255908474](https://local.wuanwanghao.top:9000/test/test/image-1673255908474.png) +**当然也有命令可以删除** +```shell +# 下载包 +go get -u go clean -i github.com/werbenhu/go-tools + +# 清理包 +go clean -i github.com/werbenhu/go-tools... + +# 清理全部包 +go clean --modcache + +``` diff --git a/WebMVC/WebMVCApi/md/grpc proto 使用 cpp 插件生成协议文件.md b/WebMVC/WebMVCApi/md/grpc proto 使用 cpp 插件生成协议文件.md new file mode 100644 index 0000000..9c5234f --- /dev/null +++ b/WebMVC/WebMVCApi/md/grpc proto 使用 cpp 插件生成协议文件.md @@ -0,0 +1,22 @@ +--- +icon: edit +date: 2022-12-26 +category: + - 系统配置 +tag: + - grpc + - proto +headerDepth: 5 +--- + + +# grpc proto 使用 cpp 插件生成协议文件 +```shell +cd D:\vcpkg\grpc_example\proto +#cmd +protoc --proto_path=. --cpp_out=. ModelGongYi.proto +protoc --proto_path=. --grpc_out=. --plugin=protoc-gen-grpc="D:\env\vcpkg\packages\grpc_x64-windows\tools\grpc\grpc_cpp_plugin.exe" ModelGongYi.proto +#poweshell +./protoc --proto_path=. --cpp_out=. calculate.proto +./protoc --proto_path=. --grpc_out=. --plugin=protoc-gen-grpc="D:\env\vcpkg\packages\grpc_x64-windows\tools\grpc\grpc_cpp_plugin.exe" calculate.proto +``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/img 固件 转 esxi 虚拟机.md b/WebMVC/WebMVCApi/md/img 固件 转 esxi 虚拟机.md new file mode 100644 index 0000000..863fa76 --- /dev/null +++ b/WebMVC/WebMVCApi/md/img 固件 转 esxi 虚拟机.md @@ -0,0 +1,51 @@ +--- +icon: edit +date: 2022-11-14 +category: + - exsi + - 系统配置 +tag: + - VMDK + - 虚拟机 + - 软路由 + - ESXI + - img + - 固件 +headerDepth: 5 +--- + + +# img 固件 转 esxi 虚拟机 +#### 一、环境介绍 + +- ESXi版本:6.5.0 (Build 4887370) +- iStoreOS版本:istoreos-21.02.3-2022102715-x86-64-squashfs-combined.img.gz([koolcenter下载](https://fw.koolcenter.com/iStoreOS/)) +- StarWind V2V Image Converter 链接: https://pan.baidu.com/s/1Fe6yI42Zz9d_Q7aUhGe1FQ 提取码: 5vmv +#### 二、创建虚拟机 +- 1、点击“创建/注册虚拟机”,选择”创建新虚拟机“,点击“下一页” +![image-1668393862646](https://local.wuanwanghao.top:9000/test/test/image-1668393862646.png) +- 2、名称输入”istoreos“,兼容性默认”ESXi 6.5 虚拟机“即可,客户机操作系统系列选择”Linux“,客户机操作系统版本选择”其他 3.x 或更高版本的 Linux(64位)或 Linux(64位) “,点击“下一页” +![image-1668393923004](https://local.wuanwanghao.top:9000/test/test/image-1668393923004.png) +- 3、选择存储,一般默认即可,点击“下一页” + ![image-1668393995698](https://local.wuanwanghao.top:9000/test/test/image-1668393995698.png) +- 4、CPU和内存按实际情况设置即可,删除硬盘,删除SATA控制器,点击“下一页” +![image-1668394055610](https://local.wuanwanghao.top:9000/test/test/image-1668394055610.png) +- 5、配置列表,点击“完成”即可 +![image-1668394170762](https://local.wuanwanghao.top:9000/test/test/image-1668394170762.png) +#### 三、IMG转换VMDK磁盘 +- 1、打开StarWindConverter,默认Local file Next +![image-1668394528151](https://local.wuanwanghao.top:9000/test/test/image-1668394528151.png) +- 2、选择iStore_OS 的 img固件 点击Next + ![image-1668394591914](https://local.wuanwanghao.top:9000/test/test/image-1668394591914.png) +- 3、选择 VMware ESX server image 点击Next + ![image-1668394666511](https://local.wuanwanghao.top:9000/test/test/image-1668394666511.png) +- 4、生成 VMDK 名字要和虚拟机名称一致 点击Next +![image-1668394754586](https://local.wuanwanghao.top:9000/test/test/image-1668394754586.png) +#### 四 、上传vmdk ,并启动iStore OS +- 1、sftp上传或者数据文件浏览器上传 istoreos.vmdk ,再上传 istoreos -flat.vmdk + ![image-1668394919596](https://local.wuanwanghao.top:9000/test/test/image-1668394919596.png) + #### 五、启动虚拟机,修改ip 访问 +- 1、启动虚拟机 修改ip查看官方文档 修改成exsi绑定网卡同段以便访问,参照pve虚拟机配置ip即可 [地址](http://doc.linkease.com/zh/guide/istoreos/install_pve.html#pve-%E5%AE%89%E8%A3%85) +![image-1668395096359](https://local.wuanwanghao.top:9000/test/test/image-1668395096359.png) +- 2、访问 默认密码password +![image-1668395483119](https://local.wuanwanghao.top:9000/test/test/image-1668395483119.png) diff --git a/WebMVC/WebMVCApi/md/java -jar 开启Debug 端口 ,idea 远程调试.md b/WebMVC/WebMVCApi/md/java -jar 开启Debug 端口 ,idea 远程调试.md new file mode 100644 index 0000000..153aa50 --- /dev/null +++ b/WebMVC/WebMVCApi/md/java -jar 开启Debug 端口 ,idea 远程调试.md @@ -0,0 +1,23 @@ +--- +icon: edit +date: 2023-02-19 +category: + - 系统配置 + - Java +headerDepth: 5 +--- + + +# java -jar 开启Debug 端口 ,idea 远程调试 +命令 +``` shell +java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 [jar文件名] +``` + +idea 远程调试 +项目添加配置 +![image-1676813267156](https://local.wuanwanghao.top:9000/test/test/image-1676813267156.png) +添加 Remote JVM Debug 配置 +![image-1676813353259](https://local.wuanwanghao.top:9000/test/test/image-1676813353259.png) +指定项目地址 和端口 就可以愉快的远程调试了 +![image-1676813399674](https://local.wuanwanghao.top:9000/test/test/image-1676813399674.png) diff --git a/WebMVC/WebMVCApi/md/java 使用 ldap 例子.md b/WebMVC/WebMVCApi/md/java 使用 ldap 例子.md new file mode 100644 index 0000000..21e9ca8 --- /dev/null +++ b/WebMVC/WebMVCApi/md/java 使用 ldap 例子.md @@ -0,0 +1,65 @@ +--- +icon: edit +date: 2023-04-17 +category: + - Java +headerDepth: 5 +--- + + +# java 使用 ldap 例子 +```java +import java.util.Hashtable; +import javax.naming.AuthenticationException; +import javax.naming.CommunicationException; +import javax.naming.directory.DirContext; +import javax.naming.directory.InitialDirContext; + +public class AdTest { + public AdTest() { + } + + public static int connect(String host, String post, String username, String password) { + DirContext ctx = null; + int rs = 0; + String domain = "@example.com"; //ldap 服务器域控 + String name = username.indexOf(domain) > 0 ? username : username + domain; + Hashtable HashEnv = new Hashtable(); + HashEnv.put("java.naming.security.authentication", "simple"); + HashEnv.put("java.naming.security.principal", name); + HashEnv.put("java.naming.security.credentials", password); + HashEnv.put("java.naming.factory.initial", "com.sun.jndi.ldap.LdapCtxFactory"); + HashEnv.put("com.sun.jndi.ldap.connect.timeout", "3000"); + HashEnv.put("java.naming.provider.url", "ldap://" + host + ":" + post); + + try { + ctx = new InitialDirContext(HashEnv); + System.out.println("身份验证成功!"); + } catch (AuthenticationException var22) { + System.out.println("身份验证失败!"); + rs = 1; + var22.printStackTrace(); + } catch (CommunicationException var23) { + System.out.println("AD域连接失败!"); + rs = 2; + var23.printStackTrace(); + } catch (Exception var24) { + System.out.println("身份验证未知异常!"); + rs = 3; + var24.printStackTrace(); + } finally { + if (null != ctx) { + try { + ctx.close(); + ctx = null; + } catch (Exception var21) { + var21.printStackTrace(); + } + } + + } + + return rs; + } +} +``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/java 动态执行代码,可以从数据库·拉代码执行的方式例子.md b/WebMVC/WebMVCApi/md/java 动态执行代码,可以从数据库·拉代码执行的方式例子.md new file mode 100644 index 0000000..a564fc7 --- /dev/null +++ b/WebMVC/WebMVCApi/md/java 动态执行代码,可以从数据库·拉代码执行的方式例子.md @@ -0,0 +1,127 @@ +--- +icon: edit +date: 2023-02-17 +category: + - Java +headerDepth: 5 +--- + + +# java 动态执行代码,可以从数据库·拉代码执行的方式例子 +```DynamicJavaCompilerUtil.java``` +```java +import javax.tools.JavaCompiler; +import javax.tools.ToolProvider; +import java.io.File; +import java.io.IOException; +import java.io.RandomAccessFile; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.net.URL; +import java.net.URLClassLoader; +import java.util.Arrays; +import java.util.stream.Collectors; + +public class DynamicJavaCompilerUtil { + + static String tmpPath = "./tmp"; + + + public static void Test() throws IOException { + String code = new String("public class T4{ " + + "static void print(String a){ " + + "System.out.println(\"Hello world! \"+ a);" + + "}" + + "static void print(){ " + + "System.out.println(\"Hello world! \");" + + "}" + + "static void print(Integer a,String b){ " + + "System.out.println(\"Hello world! \"+a+b);" + + "}" + + "}"); + CompilerToRun(code, "T4", "print", 1, " 2"); + } + + /* + * @param Code 代码字符串 + * @param ClassName 类名 + * @param MethodName 需要执行的方法名 + * @param MethodParam 需要执行的方法的参数 + */ + public static void CompilerToRun(String Code, String ClassName, String MethodName, Object... MethodParam) throws IOException { + isDirExists(new File(tmpPath)); + File file = new File(tmpPath + "/" + ClassName + ".java"); + RandomAccessFile accessFile = null; + try { + accessFile = new RandomAccessFile(file, "rw"); + accessFile.write(Code.getBytes()); + JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); //调用动态编译的工具 + int result = compiler.run(null, null, null, tmpPath + "/" + ClassName + ".java"); //进行动态编译,并返回结果 + if (result != 0) { + throw new RuntimeException("编译失败"); + } + //通过反射方法动态执行 + //1、首先构建文件的目录url地址, + URL[] urls = new URL[]{new URL("file:" + tmpPath + "/")}; + //2、使用URLClassLoader对象的loadClass方法加载对应类 + URLClassLoader loder = new URLClassLoader(urls); + //3、获取所加载类的方法 + Class clazz = loder.loadClass(ClassName); + + Class[] MethodParamClass = Arrays.asList(MethodParam).stream().map(Object::getClass).collect(Collectors.toList()).toArray(new Class[]{}); + // 4、传入方法所需的参数通过invoke运行方法 + Method method = clazz.getDeclaredMethod(MethodName, MethodParamClass); + method.setAccessible(true); + method.invoke(null, MethodParam); //当类型为String[]时,需要(Object)new String[] {}初始化 + } catch (IOException e) { + throw new RuntimeException(e); + } catch (ClassNotFoundException e) { + throw new RuntimeException(e); + } catch (InvocationTargetException e) { + throw new RuntimeException(e); + } catch (NoSuchMethodException e) { + throw new RuntimeException(e); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } finally { + accessFile.close(); + deleteFile(new File(tmpPath)); + } + + } + + private static void isDirExists(File file) { + if (!file.exists()) { + file.mkdir(); + } + } + + private static Boolean deleteFile(File file) { + //判断文件不为null或文件目录存在 + if (file == null || !file.exists()) { + System.out.println("文件删除失败,请检查文件是否存在以及文件路径是否正确"); + return false; + } + //获取目录下子文件 + File[] files = file.listFiles(); + //遍历该目录下的文件对象 + for (File f : files) { + //判断子目录是否存在子目录,如果是文件则删除 + if (f.isDirectory()) { + //递归删除目录下的文件 + deleteFile(f); + } else { + //文件删除 + f.delete(); + //打印文件名 + System.out.println("文件名:" + f.getName()); + } + } + //文件夹删除 + file.delete(); + System.out.println("目录名:" + file.getName()); + return true; + } +} + +``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/java 编译打包过程中 找不到 tools.jar 的问题,终结解决.md b/WebMVC/WebMVCApi/md/java 编译打包过程中 找不到 tools.jar 的问题,终结解决.md new file mode 100644 index 0000000..cf9104a --- /dev/null +++ b/WebMVC/WebMVCApi/md/java 编译打包过程中 找不到 tools.jar 的问题,终结解决.md @@ -0,0 +1,15 @@ +--- +icon: edit +date: 2023-02-19 +category: + - 系统配置 + - Java +headerDepth: 5 +--- + + +# java 编译打包过程中 找不到 tools.jar 的问题,终结解决 +> jdk 1.8 中有个tools.jar,里面提供了很多便于开发的工具,但是由于其是在sun 工作接管Java是开发的,不受到甲骨文公司的欢迎,在后续的版本中已经移除了tools.jar 所以之后的Java配置环境变量的时候已经不再配置CLASSPATH 了 +> 但是有时候在开发中用到tools.jar 的时候,发现在编译过程中 javac 命令是不会去读取CLASSPATH 的jar 去编译的, 网上有好多解决方法,放到jre 的lib 里面但是问题无法解决的 +> 因为是sun 公司开发的,oracle 在引用的这些jar的时候是当作扩展去加载的 + 只要把tools.jar 放入 jre目录lib 下的ext 扩展类目录就可以在Javac 编译是加载读取 diff --git a/WebMVC/WebMVCApi/md/k8s 命令行命令.md b/WebMVC/WebMVCApi/md/k8s 命令行命令.md new file mode 100644 index 0000000..1c8658c --- /dev/null +++ b/WebMVC/WebMVCApi/md/k8s 命令行命令.md @@ -0,0 +1,15 @@ +--- +icon: edit +date: 2022-10-01 +category: + - Kubernetes +headerDepth: 5 +--- + + +# k8s 命令行命令 +# 删除 + 强制删除pod + ``` +kubectl delete pod -n --force --grace-period=0 + ``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/kubernetes 挂载单个文件的方式 configMap 及挂载注意事项.md b/WebMVC/WebMVCApi/md/kubernetes 挂载单个文件的方式 configMap 及挂载注意事项.md new file mode 100644 index 0000000..b931e57 --- /dev/null +++ b/WebMVC/WebMVCApi/md/kubernetes 挂载单个文件的方式 configMap 及挂载注意事项.md @@ -0,0 +1,49 @@ +--- +icon: edit +date: 2023-03-02 +category: + - Kubernetes +headerDepth: 5 +--- + + +# kubernetes 挂载单个文件的方式 configMap 及挂载注意事项 +**问题现象** + +默认挂载 configMap 时,kubernetes 会覆盖掉挂载的整个目录,哪怕使用 items 也会导致整个目录被覆盖,那么如何实现挂在单个文件而不覆盖整个目录呢。下面说一下 kubernetes 中如何挂载单个文件而不是整个目录。 + +**解决方案** + +使用 subPath +实际上 kubernets 本身提供了 volumeMounts.subPath 属性用于挂在单个文件而不是整个目录。 + +下面是一个示例: +``` +apiVersion: v1 +kind: Pod +metadata: + name: my-lamp-site +spec: + containers: + - name: php + image: php:7.0-apache + volumeMounts: + - mountPath: /var/www/html/index.php + name: index + subPath: index.php + volumes: + - name: index + configMap: + name: php-index + items: + - key: index.php + path: index.php +``` + +kubesphere +![image-1677744922153](https://local.wuanwanghao.top:9000/test/test/image-1677744922153.png) +注意事项 +需要注意的是: + +如果使用ConfigMap的subPath挂载为Container的Volume,Kubernetes不会做自动热更新 +ConfigMap 哪怕不使用subPath的挂载方式 C# 文件修改监听功能也没有触发,Golang 的正常,怀疑可能和自己的实现有关. diff --git a/WebMVC/WebMVCApi/md/kubesphere 部署 zookeeper 和 kafka 以及 在k8s 部署是需要注意的问题.md b/WebMVC/WebMVCApi/md/kubesphere 部署 zookeeper 和 kafka 以及 在k8s 部署是需要注意的问题.md new file mode 100644 index 0000000..27547fc --- /dev/null +++ b/WebMVC/WebMVCApi/md/kubesphere 部署 zookeeper 和 kafka 以及 在k8s 部署是需要注意的问题.md @@ -0,0 +1,144 @@ +--- +icon: edit +date: 2023-03-09 +category: + - 系统配置 +headerDepth: 5 +--- + + +# kubesphere 部署 zookeeper 和 kafka 以及 在k8s 部署是需要注意的问题 +## 搭建zookeeper +选用镜像是官方镜像 zookeeper 内存和cpu 限制不用给太多 + +![image-1678374469184](https://local.wuanwanghao.top:9000/test/test/image-1678374469184.png) + +创建配置字典 和存储卷 用于持久化数据 和挂载配置文件 + + 存储卷 自行创建 + + 配置字典 + ![image-1678374651276](https://local.wuanwanghao.top:9000/test/test/image-1678374651276.png) + ```conf + dataDir=/data # 保存zookeeper中的数据 +clientPort=2181 # 客户端连接端口,通常不做修改 +dataLogDir=/datalog +tickTime=2000 # 通信心跳时间 +initLimit=5 # LF(leader - follower)初始通信时限 +syncLimit=2 # LF 同步通信时限 +autopurge.snapRetainCount=3 +autopurge.purgeInterval=0 +maxClientCnxns=60 +standaloneEnabled=true +admin.enableServer=true +server.1=localhost:2888:3888;2181 + + ``` + + +deployment.yml +```yml +kind: StatefulSet +apiVersion: apps/v1 +metadata: + name: zookeeper + namespace: wanghao + labels: + app: zookeeper + annotations: + kubesphere.io/creator: admin +spec: + replicas: 1 + selector: + matchLabels: + app: zookeeper + template: + metadata: + creationTimestamp: null + labels: + app: zookeeper + annotations: + kubesphere.io/restartedAt: '2023-03-08T01:47:35.415Z' + logging.kubesphere.io/logsidecar-config: '{}' + spec: + volumes: + - name: host-time + hostPath: + path: /etc/localtime + type: '' + - name: volume-nffzxk + configMap: + name: zookeeper + defaultMode: 420 + - name: volume-2lak5i + persistentVolumeClaim: + claimName: zookeeper + containers: + - name: container-oryqbp + image: zookeeper + ports: + - name: tcp-2181 + containerPort: 2181 + protocol: TCP + - name: tcp-2888 + containerPort: 2888 + protocol: TCP + - name: tcp-3888 + containerPort: 3888 + protocol: TCP + - name: tcp-8080 + containerPort: 8080 + protocol: TCP + resources: + limits: + cpu: 500m + memory: 200Mi + volumeMounts: + - name: host-time + readOnly: true + mountPath: /etc/localtime + - name: volume-nffzxk + readOnly: true + mountPath: /conf/zoo.cfg + subPath: zoo.cfg + - name: volume-2lak5i + mountPath: /data + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + imagePullPolicy: IfNotPresent + restartPolicy: Always + terminationGracePeriodSeconds: 30 + dnsPolicy: ClusterFirst + nodeSelector: + kubernetes.io/hostname: k8s-node3 + serviceAccountName: default + serviceAccount: default + securityContext: {} + schedulerName: default-scheduler + serviceName: zookeeper-f6d8 + podManagementPolicy: OrderedReady + updateStrategy: + type: RollingUpdate + rollingUpdate: + partition: 0 + revisionHistoryLimit: 10 +``` + + +## 搭建kafka +选用镜像 ```wurstmeister/zookeeper``` +![image-1678375058969](https://local.wuanwanghao.top:9000/test/test/image-1678375058969.png) +启动是添加环境变量 +``` + KAFKA_BROKER_ID:0 #该ID是集群的唯一标识 + + KAFKA_ADVERTISED_LISTENERS:PLAINTEXT://local.wuanwanghao.top:9092 #kafka发布到zookeeper供客户端使用的服务地址。 + + KAFKA_ZOOKEEPER_CONNECT: zookeeper.wanghao:2181 #zk的连接地址 + + KAFKA_LISTENERS:PLAINTEXT://0.0.0.0:9092 #允许使用PLAINTEXT侦听器 +``` + + +主要一点创建kafka 相应服务的时候一定不要把服务名称定义为```kafka```, +相关问题以踩坑 [Invalid value tcp://10.0.35.234:9092 for configuration port: Not a number of type INT](https://github.com/wurstmeister/kafka-docker/issues/122) \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/linux gitea 搭建.md b/WebMVC/WebMVCApi/md/linux gitea 搭建.md new file mode 100644 index 0000000..2bb727d --- /dev/null +++ b/WebMVC/WebMVCApi/md/linux gitea 搭建.md @@ -0,0 +1,83 @@ +--- +icon: edit +date: 2023-04-10 +category: + - Linux +tag: + - git + - gitea +headerDepth: 5 +--- + + +# linux gitea 搭建 +[官方文档](https://docs.gitea.io/zh-cn/) +### 下载可执行文件 + +```shell +mkdir -p /wanghao/gitea +cd /wanghao/gitea +wget -O gitea https://dl.gitea.com/gitea/1.19.0/gitea-1.19.0-linux-amd64 +chmod +x gitea +``` +### 验证文件(选作) +Gitea 对打包的二进制文件使用 GPG密钥 签名以防止篡改。 请根据对应文件名 .asc 中包含的校验码检验文件的一致性。 +```shell +gpg --keyserver keys.openpgp.org --recv 7C9E68152594688862D62AF62D9AE806EC1592E2 +gpg --verify gitea-1.19.0-linux-amd64.asc gitea-1.19.0-linux-amd64 +``` +校验正确时的信息为 Good signature from "Teabot "。 校验错误时的信息为 This key is not certified with a trusted signature!。 + +### 添加环境变量 +>```GITEA_WORK_DIR```:工作目录的绝对路径 +```GITEA_CUSTOM```:默认情况下 Gitea 使用默认目录 ```GITEA_WORK_DIR/custom```,您可以使用这个参数来配置 custom 目录 + +修改环境配置文件 +```shell +vim etc/profile +``` +追加 +```shell +export GITEA_HOME=/wanghao/gitea +export GITEA_WORK_DIR=$GITEA_HOME/workdir +export GITEA_CUSTOM=$GITEA_WORK_DIR/custom +export PATH=$GITEA_HOME:$PATH +``` +### 添加systemd 服务 +``` +sudo vim /etc/systemd/system/gitea.service +``` +追加 +```ini +[Unit] +Description=Gitea (Git with a cup of tea) +After=syslog.target +After=network.target + +[Service] +RestartSec=2s +Type=simple +User=wanghao +Group=wanghao +WorkingDirectory=/wanghao/gitea/workdir +ExecStart=/wanghao/gitea/gitea web --config /wanghao/gitea/app.ini +Restart=always +Environment=USER=wanghao HOME=/home/wanghao GITEA_WORK_DIR=/wanghao/gitea/workdir + +[Install] +WantedBy=multi-user.target +``` + +启动 + +``` +systemctl enable gitea +systemctl start gitea +``` +### 开放端口 +```shell +firewall-cmd --zone=public --add-port=3000/tcp --permanent +``` + +### 问题解决 +ssh clone 时遇到[No supported authentication methods available (server sent: publickey) ](https://blog.csdn.net/qq_37726813/article/details/127475348) \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/linux harbor 搭建, 以及nginx ssl 代理.md b/WebMVC/WebMVCApi/md/linux harbor 搭建, 以及nginx ssl 代理.md new file mode 100644 index 0000000..8da029c --- /dev/null +++ b/WebMVC/WebMVCApi/md/linux harbor 搭建, 以及nginx ssl 代理.md @@ -0,0 +1,68 @@ +--- +icon: edit +date: 2023-04-11 +category: + - Linux +tag: + - harbor +headerDepth: 5 +--- + + +# linux harbor 搭建, 以及nginx ssl 代理 +### 前置 +首先确保机器以及安装好 docker 以及 docker-compose +>[Linux 安装 Docker](https://local.wuanwanghao.top:30549/archives/linux%E5%AE%89%E8%A3%85docker) + +>[Linux 安装 docker-compose](https://local.wuanwanghao.top:30549/archives/linux%E5%AE%89%E8%A3%85docker-compose) + +### 下载离线安装包 +[github_harbor_releases](https://github.com/goharbor/harbor/releases) +创建工作目录 下载安装包并解压 +```shell +mkdir -p /wanghao/docker +cd /wanghao/docker +wget https://ghproxy.com/https://github.com/goharbor/harbor/releases/download/v2.5.6/harbor-offline-installer-v2.5.6.tgz +tar -xvf harbor-offline-installer-v2.5.6.tgz +``` +### 修改配置文件 +进入解压目录 /wanghao/docker/harbor ,拷贝模版创建配置文件 +```shell +cd /wanghao/docker/harbor +cp harbor.yml.tmpl harbor.yml +``` +修改harbor.yml 以下的配置项 +``` +hostname: 访问的域名 +http: + port: 5500 +external_url: https://域名:端口 +harbor_admin_password: 管理员密码 +``` +### 启动harbor +``` +./install.sh +``` + +### 配置nginx 代理 ssl +``` +server { + listen 443 ssl; + server_name 域名 ;#修改为自己的域名 + ssl_certificate ; #域名证书 + ssl_certificate_key ; #域名证书 + ssl_session_timeout 5m; + ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_prefer_server_ciphers on; + location / { + proxy_pass http://localhost:5500; + client_max_body_size 0; + proxy_connect_timeout 90; + proxy_read_timeout 90; + proxy_buffer_size 4k; + proxy_buffers 6 32k; + proxy_busy_buffers_size 64k; + proxy_temp_file_write_size 64k; + } +``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/linux 制作简单systemctl 的service.md b/WebMVC/WebMVCApi/md/linux 制作简单systemctl 的service.md new file mode 100644 index 0000000..f154899 --- /dev/null +++ b/WebMVC/WebMVCApi/md/linux 制作简单systemctl 的service.md @@ -0,0 +1,46 @@ +--- +icon: edit +date: 2023-04-04 +category: + - 系统配置 + - Linux +headerDepth: 5 +--- + + +# linux 制作简单systemctl 的service +在系统路径```/usr/lib/systemd/system/``` 下创建 ```服务名```.service 文件 + +下面frp.service模板 +```toml +[Unit] +#描述 +Description=MainFrpService +#在网络启动后执行Frp服务 +After=network.target + + +[Service] +Type=simple +#以root权限运行 +User=root +#停止时重启 +Restart=on-abort +#启动命令 +ExecStart=/wanghao/frps/frp_0.44.0_linux_amd64/frps -c /wanghao/frps/frp_0.44.0_linux_amd64/frps.ini + +[Install] +WantedBy=multi-user.target +``` + +创建好后就可以使用systemctl 命令来操作服务 +```shell +#启动服务 +ststemctl start frp +#重启服务 +systemctl restart frp +#查看服务状态 +systemctl status frp +#开启开机自启动 +systemctl enable frp +``` diff --git a/WebMVC/WebMVCApi/md/linux 发布重启项目简单脚本命令.md b/WebMVC/WebMVCApi/md/linux 发布重启项目简单脚本命令.md new file mode 100644 index 0000000..ddf9ec2 --- /dev/null +++ b/WebMVC/WebMVCApi/md/linux 发布重启项目简单脚本命令.md @@ -0,0 +1,23 @@ +--- +icon: edit +date: 2023-03-12 +category: + - 系统配置 +headerDepth: 5 +--- + + +# linux 发布重启项目简单脚本命令 +``` shell +cd $project_path +ps -ef | grep $bin_file | grep -v grep| awk '{print $2}' | xargs kill -9 +nohup java -jar $project_path/$bin_file >catalina.out 2>&1 & +``` + +**$project_path 替换为可执行文件的路径** + +**$bin_file 替换为可执行文件的名称** + +```cd $project_path``` 进入可执行文件目录 +```ps -ef | grep $bin_file | grep -v grep| awk '{print $2}' | xargs kill -9``` 获取可执行文件的pid 进程id 然后结束该进程id +```nohup java -jar $project_path/$bin_file >catalina.out 2>&1 & ``` 执行可执行文件并输出日志到指定文件 \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/linux 命令别名 alias,关于ls命令列出目录没有颜色的解决方案.md b/WebMVC/WebMVCApi/md/linux 命令别名 alias,关于ls命令列出目录没有颜色的解决方案.md new file mode 100644 index 0000000..3f1034b --- /dev/null +++ b/WebMVC/WebMVCApi/md/linux 命令别名 alias,关于ls命令列出目录没有颜色的解决方案.md @@ -0,0 +1,26 @@ +--- +icon: edit +date: 2023-04-10 +category: + - Linux +tag: + - alias +headerDepth: 5 +--- + + +# linux 命令别名 alias,关于ls命令列出目录没有颜色的解决方案 +一版来说安装ArchLinux 系统 使用 ls 命令列出目录是没有颜色的。 +这是因为没有使用命令别名的原因。 + +实际上当我们使用 ```ls --color=auto``` 命令时是有颜色的 +```shell +ls --color=auto +``` +这是因为 ArchLinux 发行版高度自由,所以很多的配置都没有给我做,所以像其他的发行版linux 系统都是有做命令别名的 + +所以在这里我们打开 环境配置文件 ```~/.bashrc``` 追加配置 +```shell +alias ls='ls --color=auto' +``` +>这里注意有一点 ```alias ls=``` 后面 不要带空格,直接紧挨着'ls --color=auto' ,不然也会把空格也当作成命令的一部分,无法识别 \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/linux 命令大全.md b/WebMVC/WebMVCApi/md/linux 命令大全.md new file mode 100644 index 0000000..53b1a79 --- /dev/null +++ b/WebMVC/WebMVCApi/md/linux 命令大全.md @@ -0,0 +1,11 @@ +--- +icon: edit +date: 2023-04-09 +category: + - Linux +headerDepth: 5 +--- + + +# linux 命令大全 +[ Linux命令大全 ](https://linux265.com/course/linux-commands.html) \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/linux 查看磁盘使用情况,查看文件夹及文件大小命令.md b/WebMVC/WebMVCApi/md/linux 查看磁盘使用情况,查看文件夹及文件大小命令.md new file mode 100644 index 0000000..1b9fcb3 --- /dev/null +++ b/WebMVC/WebMVCApi/md/linux 查看磁盘使用情况,查看文件夹及文件大小命令.md @@ -0,0 +1,29 @@ +--- +icon: edit +date: 2023-03-15 +category: + - 系统配置 + - Linux +headerDepth: 5 +--- + + +# linux 查看磁盘使用情况,查看文件夹及文件大小命令 +##### ```df -h``` 查看磁盘使用情况 +```shell +df -h +``` +![image-1678871170294](https://local.wuanwanghao.top:9000/test/test/image-1678871170294.png) + +##### ```du -h --max-depth=1``` 列出当前文件夹下 深度为 1 的文件夹大小 +```shell +du -h --max-depth=1 +``` +![image-1678871267580](https://local.wuanwanghao.top:9000/test/test/image-1678871267580.png) +max-depth=1,表示几级子目录,如果不需要子目录,=0 ,即可 + +##### ```du -h “文件名”``` 列出当前文件的大小 +```shell +du -h “文件名” +``` +![image-1678871356607](https://local.wuanwanghao.top:9000/test/test/image-1678871356607.png) \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/linux 磁盘使用分区工具 fdisk, 从新磁盘分区到挂载的全过程.md b/WebMVC/WebMVCApi/md/linux 磁盘使用分区工具 fdisk, 从新磁盘分区到挂载的全过程.md new file mode 100644 index 0000000..a720686 --- /dev/null +++ b/WebMVC/WebMVCApi/md/linux 磁盘使用分区工具 fdisk, 从新磁盘分区到挂载的全过程.md @@ -0,0 +1,119 @@ +--- +icon: edit +date: 2023-04-09 +category: + - Linux +headerDepth: 5 +--- + + +# linux 磁盘使用分区工具 fdisk, 从新磁盘分区到挂载的全过程 +### fdisk +fdisk命令的英文全称是“Partition table manipulator for Linux”,即作为磁盘的分区工具。进行硬盘分区从实质上说就是对硬盘的一种格式化, 用一个形象的比喻,分区就好比在一张白纸上画一个大方框,而格式化好比在方框里打上格子。 +| 参数 | 详情 | +| ---- | -------------------------------------------------------------------- | +| -b | 指定每个分区的大小 | +| -l | 列出指定的外围设备的分区表状况 | +| -s | 将指定的分区大小输出到标准输出上,单位为区块 | +| -u | 搭配”-l”参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址 | +| -v | 显示版本信息 | +| ... | ... | +### 查看磁盘信息 +首先使用 fdisk -l 查看系统挂载磁盘设备信息 +一般sata 磁盘设备 名称 是```/dev/sda``` 或者``` /dev/sdb``` +找到你新添加磁盘设备 + +### 开始分区 +假设你新添加磁盘设备 设备名称为/dev/sdb +```shell +fdisk /dev/sdb +``` +然后输入m 打开详细详细 +``` +欢迎使用 fdisk (util-linux 2.23.2)。 + +更改将停留在内存中,直到您决定将更改写入磁盘。 +使用写入命令前请三思。 + + +命令(输入 m 获取帮助):m +命令操作 + a toggle a bootable flag + b edit bsd disklabel + c toggle the dos compatibility flag + d delete a partition + g create a new empty GPT partition table + G create an IRIX (SGI) partition table + l list known partition types + m print this menu + n add a new partition + o create a new empty DOS partition table + p print the partition table + q quit without saving changes + s create a new empty Sun disklabel + t change a partition's system id + u change display/entry units + v verify the partition table + w write table to disk and exit + x extra functionality (experts only) +``` +### 创建分区,指定分区大小 +1.然后输入 n 创建新的分区 ,磁盘默认可以创建的分区为4个 +2.根据提示输入要创建的分区号 1....4 +3.默认为1 直接回车 或者 输入1 即可 +4.输入分区大小,默认为磁盘容量最多值 ,可以输入+1G .... 指定容量为1G 也可以自定义指定大小 ```+?G``` ?号代表 容量大小 。 确定好直接回车 +5.输入w 保存分区设置并退出 + +### 格式化分区文件系统 +>上一步保存好分区设置后可以使用 fdisk -l 查看分区信息 ,如果没有可以使用 ```partprobe 磁盘设备名称``` 命令 来通知内核系统,请求操作系统重新加载分区表。 +```shell +partprobe /dev/sdb +``` +一般来说centos 系统的文件系统类型为 xfs 和 ext4 这里使用xfs 进行格式化 +```shell +mkfs.xfs /dev/sdb1 +``` + +### 挂载分区 +1.这里默认创建的分区为 ```/dev/sdb1``` 使用mount 命令挂载分区到指定目录 +>这里有一点要注意,如果要挂载的目录里面有数据,需要备份到其他目录里面,等挂载完成后重新移动过来 这里假设挂载的目录为 /wanghao, 我们重命名文件夹 然后再次创建文件夹 来挂载 +```shell +mv /wanghao /wanghao/bak +mkdir /wanghao +mount /dev/sdb1 /wanghao +cp -r /wanghao_bak/* /wanghao/ +rm -rf /wanghao_bak +``` +当然如果挂载的空目录上可以直接挂载 假设/wanghao 是空目录 +```shell +mount /dev/sdb1 /wanghao +``` +### 取消挂载命令为 umount 如果有问题可以取消挂载 +```shell +umount /wanghao +``` +### mount 是临时挂载命令 这里进行持久化挂载, +vim /etc/fstab 命令,编辑 fstab 文件,在最后一行添加一条记录,如 /dev/sdb1 /wanghao xfs defaults 0 0 ,保存并退出 +``` +vim /etc/fstab +#输入i 进入编辑模式 ,找到空行进行输入 +/dev/sdb1 /wanghao xfs defaults 0 0 +#输入完毕后 按ESC键 ,然后输入 :wq 即可保存并退出 +``` + + +### lsblk +查看当前系统挂载的硬盘信息 并列出所有的硬盘设备 + +### partprobe 命令 + +partprobe命令用于重读分区表,将磁盘分区表变化信息通知内核,请求操作系统重新加载分区表。如果删除文件后,仍然提示占用空间,可以用partprobe在不重启的情况下重读分区 。 + +|参数 |详情| +|-------|-------| +|-d |不更新内核| +|-s |显示摘要和分区| +|-h |显示帮助信息| +|-v |显示版本信息| +### 文件系统 +> Linux 的文件系统取决于它的发行版。一般来说,基于 Red Hat 的发行版(如 CentOS、Fedora、RHEL 等)使用 xfs 或 ext4 文件系统,基于 Debian 的发行版(如 Ubuntu、Mint、Debian 等)使用 ext4 文件系统,基于 Arch Linux 的发行版(如 Manjaro、Arch Linux 等)使用 ext4 或 btrfs 文件系统. \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/linux 通过SpeedTest工具网络测速.md b/WebMVC/WebMVCApi/md/linux 通过SpeedTest工具网络测速.md new file mode 100644 index 0000000..2864f7b --- /dev/null +++ b/WebMVC/WebMVCApi/md/linux 通过SpeedTest工具网络测速.md @@ -0,0 +1,37 @@ +--- +icon: edit +date: 2022-11-02 +category: + - Linux +tag: + - 网络 +headerDepth: 5 +--- + + +# linux 通过SpeedTest工具网络测速 +### 下载工具 +```shell +wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py +``` +### 赋予执行权限 +```shell +chmod +x speedtest-cli +``` +### 执行 +```shell +./speedtest-cli --share +``` +![image](https://local.wuanwanghao.top:9000/test/test/image.png) + +### 查看所有国内测试节点 +```shell +./speedtest-cli --list | grep China +``` +![image-1667377461538](https://local.wuanwanghao.top:9000/test/test/image-1667377461538.png) +### 指定测试节点测试 +```shell +./speedtest-cli --server=41910 --share +``` +![image-1667377603338](https://local.wuanwanghao.top:9000/test/test/image-1667377603338.png) + diff --git a/WebMVC/WebMVCApi/md/mongodb及使用.md b/WebMVC/WebMVCApi/md/mongodb及使用.md new file mode 100644 index 0000000..302278e --- /dev/null +++ b/WebMVC/WebMVCApi/md/mongodb及使用.md @@ -0,0 +1,119 @@ +--- +icon: edit +date: 2023-03-06 +category: + - 系统配置 +headerDepth: 5 +--- + + +# mongodb及使用 +## 一、mongoDB是什么? +MongoDB是一个NoSQL的非关系型数据库 ,支持海量数据存储,高性能的读写。 + +### 1. mongo的体系结构 +![image-1678084882505](https://local.wuanwanghao.top:9000/test/test/image-1678084882505.png) +mongo中的集合相当于mysql中表的概念; +mongo中的文档相当于mysql中行的概念; +mongo中的域相当于mysql中字段/列的概念; +### 2. mongoDB的特点(或使用场景) +支持存储海量数据;(例如:直播中的打赏数据); +支持频繁的数据读写;(例如:游戏道具); +数据安全性不高,存在数据误差(丢失数据); +mongoDB不支持多表操作,不支持事务; +mongoDB使用Bson存储格式,支持动态字段管理; +### 3. mongoDB与mysql、redis对比 +与redis对比 +1. redis纯内存数据库,内存不足时触发淘汰策略,mongoDB使用内存加磁盘的存储策略具有高扩展性; +2. mongoDB使用Bson存储格式,支持动态字段管理方便扩展; +与mysql对比 +1. mongoDB不支持多表操作,不支持事务; +2. mongoDB使用Bson存储格式,支持动态字段管理; +查询效率对比 +Redis > MongoDB > MySQL + +### 4. mongoDB存储原理 +![image-1678084900902](https://local.wuanwanghao.top:9000/test/test/image-1678084900902.png) +mongoDb采用内存加磁盘的方式存储数据; +mongoDb支持数据分片,当单一的服务器中磁盘不够用的时候,还可以串联其他服务器; +客户端的请求到达内存时,先在日志中记录下操作记录,然后再去操作内存; +内存中的日志每10ms向磁盘中的日志进行同步一次,数据则每分钟同步一次; +客户端先去内存中查询数据,内存中没有再去查询磁盘; +当客户端写入的时候,会先写入到内存中,内存中写入后请求直接返回,内存中的数据会根据同步策略同步到磁盘; +如果机器宕机,在重启服务的时候会解析磁盘中的日志和磁盘中的数据进行对比,将未入到磁盘中的数据写入磁盘,但可能会丢失10ms的数据; + + +## 二、使用docker安装mongo + +### 1.安装 +1.拉取mongo镜像 +``` shell +docker pull mongo:4.4 +``` + +2.创建mongo数据持久化目录 +``` shell +mkdir -p /docker_volume/mongodb/data +``` +3.运行容器 +``` shell +docker run -d --name mongo -v /docker_volume/mongodb/data:/data/db -p 27017:27017 mongo:4.4 --auth --bind_ip 0.0.0.0 +``` +–auth:需要密码才能访问容器服务 +--bind_ip 0.0.0.0 监听从所有ip请求来的流量 +相关命令行参数 请参照官方文档 [mongod](https://www.mongodb.com/docs/manual/reference/program/mongod/#cmdoption-mongod-auth) + + +### 2.创建用户 +登录mongo容器,并进入到【admin】数据库 +``` +docker exec -it mongo mongo admin +``` +创建一个用户,mongo 默认没有用户 +db.createUser({ user:'root',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},'readWriteAnyDatabase']}); + +```【user:‘root’ 】:设置用户名为root``` +```【pwd:‘123456’】:设置密码为123456``` +```【role:‘userAdminAnyDatabase’】:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限``` +```【db: ‘admin’】:可操作的数据库``` +```【‘readWriteAnyDatabase’】:赋予用户读写权限 ``` + +dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile +### 3. 连接、测试 +连接mongo数据库 + ```shell +db.auth('root', '123456') + ``` + 测试数据库 创建集合 + ```shell + db.createCollection("user") + ``` +测试数据库,插入一条语句 + ```shell + db.user.insert({"name":"zhangsan","age":18}) + ``` +测试数据库,查询刚才插入的语句 + ```shell + db.user.find() + ``` +### 4.修改密码 +#### 1、首先通过以下命令登录mongodb数据库。 + +show dbs 查看数据库 + +use dbname 进入数据库 + +show users 查看当前数据库用户权限据。 + +#### 2、使用以下方法修改密码即可。 + +方法1: + ```shell +db.changeUserPassword("usertest","changepass"); + ``` +方法2: + ```shell +db.updateUser("usertest",{pwd:"changepass1"}); + ``` + + diff --git a/WebMVC/WebMVCApi/md/mysql 被黑客攻击了 惨痛教训.md b/WebMVC/WebMVCApi/md/mysql 被黑客攻击了 惨痛教训.md new file mode 100644 index 0000000..b2afbef --- /dev/null +++ b/WebMVC/WebMVCApi/md/mysql 被黑客攻击了 惨痛教训.md @@ -0,0 +1,33 @@ +--- +icon: edit +date: 2022-06-20 +category: + - 系统配置 +headerDepth: 5 +--- + + +# mysql 被黑客攻击了 惨痛教训 +**今天鼓捣c++ 项目的时候 需要用下nacos 准备docker 安装个发现数据库被黑客攻击了太惨了,还好数据没丢只是 把我的root 权限给改了。 +自己的mysql 密码太简单了,以后要把密码复杂化** +下面解决方法 +先用本地用户登录mysql +赋予远程账号全部权限; +刷新配置; +修改远程账号密码 +刷新配置; + + +``` +mysql> grant all on *.* to root@'%'; +Query OK, 0 rows affected (0.00 sec) + +mysql> flush privileges; +Query OK, 0 rows affected (0.00 sec) + +mysql> ALTER USER 'root'@'%' IDENTIFIED BY 'xxxxxx'; +Query OK, 0 rows affected (0.01 sec) + +mysql> flush privileges; +Query OK, 0 rows affected (0.00 sec) +``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/nginx 实现websocket 代理.md b/WebMVC/WebMVCApi/md/nginx 实现websocket 代理.md new file mode 100644 index 0000000..c43b94d --- /dev/null +++ b/WebMVC/WebMVCApi/md/nginx 实现websocket 代理.md @@ -0,0 +1,79 @@ +--- +icon: edit +date: 2022-11-04 +category: + - 系统配置 + - Linux +tag: + - nginx + - websocket +headerDepth: 5 +--- + + +# nginx 实现websocket 代理 +WebSocket是HTML5下一种新的协议。它实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽并达到实时通讯的目的。它与HTTP一样通过已建立的TCP连接来传输数据,但是它和HTTP最大不同是: + +``` 1) WebSocket是一种双向通信协议。在建立连接后,WebSocket服务器端 和客户端都能主动向对方发送或接收数据,就像Socket一样;``` +```2)WebSocket需要像TCP一样,先建立连接,连接成功后才能相互通信。``` + +WebSocket协议相比较于HTTP协议成功握手后可以多次进行通讯,直到连接被关闭。但是WebSocket中的握手和HTTP中的握手兼容, 它使用HTTP中的Upgrade协议头将连接从HTTP升级到WebSocket。这使得WebSocket程序可以更容易的使用现已存在的基础设施。大部分现在的浏览器都支持WebSocket。 + +在实际的生产环境中,要求多个WebSocket服务器必须具有高性能和高可用,那么WebSocket协议就需要一个负载均衡层,Nginx从​「1.3」​版本开始支持WebSocket,其可以作为一个反向代理和为WebSocket程序做负载均衡。 + +WebSocket协议与HTTP协议不同,但WebSocket握手与HTTP兼容,使用HTTP升级工具将连接从HTTP升级到WebSocket。这允许WebSocket应用程序更容易地适应现有的基础架构。例如,WebSocket应用程序可以使用标准HTTP端口80和443,从而允许使用现有的防火墙规则。 + +​「WebSocket应用程序可以在客户端和服务器之间保持长时间运行的连接」​,从而有助于开发实时应用程序。用于将连接从HTTP升级到WebSocket的HTTP升级机制使用Upgrade和Connection头。反向代理服务器在支持WebSocket时面临一些挑战。一个是WebSocket是一个逐跳协议,因此当代理服务器拦截客户端的升级请求时,需要向后端服务器发送自己的升级请求,包括相应的头文件。此外,由于WebSocket连接长期存在,与HTTP使用的典型短期连接相反,反向代理需要允许这些连接保持打开状态,而不是关闭它们,因为它们似乎处于空闲状态。 +允许在客户机和后端服务器之间建立隧道,Nginx支持WebSocket。对于NGINX将升级请求从客户端发送到后台服务器,必须明确设置Upgrade和Connection标题。 + +----------------------------------- +### Nginx开启WebSocket代理的配置方法如下 + +#### 编辑nginx.conf,在http区域内一定要添加下面配置: +```conf +map $http_upgrade $connection_upgrade { + default upgrade; + '' close; +} +``` +「解释一下map指令的作用:」​该作用主要是根据客户端请求中的值,来构造改变connection_upgrade的值,即根据变量的值创建新的变量connection_upgrade, 创建的规则就是{}里面的东西。其中的规则没有做匹配,因此使用默认的,即 http_upgrade为空字符串的话,那么值就是 close。 +#### 在location匹配配置中添加如下内容 +```conf +proxy_http_version 1.1; +proxy_set_header Upgrade $http_upgrade; +proxy_set_header Connection "$connection_upgrade"; +``` +#### 一次完整的实例 +``` +map $http_upgrade $connection_upgrade { + default upgrade; + '' close; +} +server { + listen 30880 ssl; + #填写绑定证书的域名 + server_name local.wuanwanghao.top; + #证书文件名称 + ssl_certificate /etc/nginx/ssl/local.wuanwanghao.top_bundle.crt; + #私钥文件名称 + ssl_certificate_key /etc/nginx/ssl/local.wuanwanghao.top.key; + ssl_session_timeout 5m; + ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_prefer_server_ciphers on; + error_page 497 307 =301 @back; + location @back { + rewrite ^(.*)$ https://$host:$server_port$1 permanent; + } + location / { + proxy_set_header Host $host; + proxy_set_header X-Real-Ip $remote_addr; + proxy_set_header X-Forwarded-For $remote_addr; + #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。 + proxy_pass http://192.168.3.140:30880; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "$connection_upgrade"; + } +} + +``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/nodejs 运行 mqtt.md b/WebMVC/WebMVCApi/md/nodejs 运行 mqtt.md new file mode 100644 index 0000000..5bda4e4 --- /dev/null +++ b/WebMVC/WebMVCApi/md/nodejs 运行 mqtt.md @@ -0,0 +1,92 @@ +--- +icon: edit +date: 2022-12-26 +category: + - nodejs +tag: + - mqtt +headerDepth: 5 +--- + + +# nodejs 运行 mqtt +npm 安装 mqtt +```shell +npm install -g mqtt +``` +客户端 +```js +var mqtt = require('mqtt'); +//var process = require('process'); +var client = mqtt.connect('mqtt://192.168.3.254:1883', { + username: "admin", + password: "public", + clientId: 'client9' +}); + +function getYYYYMMDDhhmmssByDate() { + let date = new Date(); + let value = date.getFullYear() * 10000000000 + + (date.getMonth() + 1) * 100000000 + + date.getDate() * 1000000 + + date.getHours() * 10000 + + date.getMinutes() * 100 + + date.getSeconds(); + return value; +}; + + +client.on('connect', function() { + console.log("connect success"); + client.subscribe('/server/task/roleId/1/update_task_data'); + client.subscribe('/server/task/roleId/1/setValue'); +}); + +client.on('message', function(topic, message, packet) { + console.log(" "); + console.log(process.env.JAVA_HOME); + console.log("time: ", getYYYYMMDDhhmmssByDate()); + var jsonStr = message.toString() + console.log("jsonStr: " + jsonStr); + console.log(" "); +}); +``` +服务端 +```js +var mqtt = require('mqtt'); +var client = mqtt.connect('mqtt://192.168.3.254:1883', { + username: 'admin', + password: 'public', + clientId: 'server1' +}); + +function getJsonStr() { + return JSON.stringify({ + "event": "update_task_data", + "data": { + "arrTaskId": [], + "arrTaskInst": [{ + "id": 1, + "roleId": 1, + "moduleId": "0", + "userId": 0, + "taskId": 9999, + "finish": 0, + "taskNodeId": 15, + "taskNodeStatus": 0, + "taskNodeStartTime": 20210811, + "beforeNodeId": 14 + }] + }, + "open": (Math.round(Math.random())+1)*10, + "state": (Math.round(Math.random())+1)*10, + }); +} + +// 推送的频道和数据 + +setInterval(() => { + client.publish("/server/task/roleId/1/update_task_data", getJsonStr(), {qos: 2, retain: false}); +}, 5000) + +``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/nodejs 运行modbus .md b/WebMVC/WebMVCApi/md/nodejs 运行modbus .md new file mode 100644 index 0000000..88aa98c --- /dev/null +++ b/WebMVC/WebMVCApi/md/nodejs 运行modbus .md @@ -0,0 +1,91 @@ +--- +icon: edit +date: 2022-12-26 +category: + - nodejs +tag: + - modbus +headerDepth: 5 +--- + + +# nodejs 运行modbus +npm 安装 modbus-serial +```shell +npm install -g modbus-serial +``` +modbus 客户端 +```js +// create an empty modbus client +var ModbusRTU = require("modbus-serial"); +var client = new ModbusRTU(); + +// open connection to a tcp line +client.connectTCP("127.0.0.1", { port: 8502 }); +client.setID(1); + +// read the values of 10 registers starting at address 0 +// on device number 1. and log the values to the console. +setInterval(function() { + client.readHoldingRegisters(0, 10, function(err, data) { + if(data){ + console.log(data.data); + } + }); +}, 1000); +``` +modbus 服务端 +```js +// create an empty modbus client +var ModbusRTU = require("modbus-serial"); +var vector = { + getInputRegister: function(addr, unitID) { + // Synchronous handling + return addr; + }, + getHoldingRegister: function(addr, unitID, callback) { + // Asynchronous handling (with callback) + setTimeout(function() { + // callback = function(err, value) + callback(null, addr + 7000); + }, 10); + }, + getCoil: function(addr, unitID) { + // Asynchronous handling (with Promises, async/await supported) + return new Promise(function(resolve) { + setTimeout(function() { + resolve((addr % 2) === 0); + }, 10); + }); + }, + setRegister: function(addr, value, unitID) { + // Asynchronous handling supported also here + console.log("set register", addr, value, unitID); + return; + }, + setCoil: function(addr, value, unitID) { + // Asynchronous handling supported also here + console.log("set coil", addr, value, unitID); + return; + }, + readDeviceIdentification: function(addr) { + return { + 0x00: "MyVendorName", + 0x01: "MyProductCode", + 0x02: "MyMajorMinorRevision", + 0x05: "MyModelName", + 0x97: "MyExtendedObject1", + 0xAB: "MyExtendedObject2" + }; + } +}; + +// set the server to answer for modbus requests +console.log("ModbusTCP listening on modbus://0.0.0.0:8502"); +var serverTCP = new ModbusRTU.ServerTCP(vector, { host: "0.0.0.0", port: 8502, debug: true, unitID: 1 }); + +serverTCP.on("socketError", function(err){ + // Handle socket error if needed, can be ignored + console.error(err); +}); +``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/python 运行 opcua.md b/WebMVC/WebMVCApi/md/python 运行 opcua.md new file mode 100644 index 0000000..d6929c3 --- /dev/null +++ b/WebMVC/WebMVCApi/md/python 运行 opcua.md @@ -0,0 +1,79 @@ +--- +icon: edit +date: 2022-12-26 +category: + - python +tag: + - opcua +headerDepth: 5 +--- + + +# python 运行 opcua +pip 安装 opcua +``` shell +pip install opcua +``` +opcua 客户端 +```python +from opcua import Client +if __name__ == "__main__": + client = Client("opc.tcp://localhost:4840/freeopcua/server/") + # client = Client("opc.tcp://admin@localhost:4840/freeopcua/server/") #connect using a user + try: + client.connect() + # Client has a few methods to get proxy to UA nodes that should always be in address space such as Root or Objects + root = client.get_root_node() + print("Objects node is: ", root) + # Node objects have methods to read and write node attributes as well as browse or populate address space + print("Children of root are: ", root.get_children()) + # get a specific node knowing its node id + #var = client.get_node(ua.NodeId(1002, 2)) + #var = client.get_node("ns=3;i=2002") + #print(var) + #var.get_data_value() # get value of node as a DataValue object + #var.get_value() # get value of node as a python builtin + #var.set_value(ua.Variant([23], ua.VariantType.Int64)) #set node value using explicit data type + #var.set_value(3.9) # set node value using implicit data type + # Now getting a variable node using its browse path + myvar = root.get_child(["0:Objects", "2:MyObject", "2:MyVariable"]) + obj = root.get_child(["0:Objects", "2:MyObject"]) + print("myvar is: ", myvar) + print("myobj is: ", obj) + # Stacked myvar access + # print("myvar is: ", root.get_children()[0].get_children()[1].get_variables()[0].get_value()) + finally: + client.disconnect() +``` +opcua 服务端 +```python +import sys +sys.path.insert(0, "..") +import time +from opcua import ua, Server +if __name__ == "__main__": + # setup our server + server = Server() + server.set_endpoint("opc.tcp://0.0.0.0:4840/freeopcua/server/") + # setup our own namespace, not really necessary but should as spec + uri = "http://examples.freeopcua.github.io" + idx = server.register_namespace(uri) + # get Objects node, this is where we should put our nodes + objects = server.get_objects_node() + print(objects) + # populating our address space + myobj = objects.add_object(idx, "MyObject") + myvar = myobj.add_variable(idx, "MyVariable", 6.7) + myvar.set_writable() # Set MyVariable to be writable by clients + # starting! + server.start() + try: + count = 0 + while True: + time.sleep(1) + count += 0.1 + myvar.set_value(count) + finally: + #close connection, remove subcsriptions, etc + server.stop() +``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/rm 特殊用法,删除文件夹指定格式的文件.md b/WebMVC/WebMVCApi/md/rm 特殊用法,删除文件夹指定格式的文件.md new file mode 100644 index 0000000..5b5e9ab --- /dev/null +++ b/WebMVC/WebMVCApi/md/rm 特殊用法,删除文件夹指定格式的文件.md @@ -0,0 +1,80 @@ +--- +icon: edit +date: 2023-04-06 +category: + - Linux +tag: + - rm + - 管道符 + - | + - find + - grep +headerDepth: 5 +--- + + +# rm 特殊用法,删除文件夹指定格式的文件 +rm是我们在Linux下删除文件经常用到的命令,但是有时候我们目录下有很多个文件想要删除,偏偏却要保留其中1个或几个文件,那怎么办呢?很多新手朋友可能会采取一个一个文件删除的方法来操作,但是如果文件很多呢?删到啥时候啊~~ + +今天我们就来教大家使用rm命令删除文件的时候如何排除指定的文件(不删除指定文件)。首先我们来看一下平时我们是怎么使用rm命令的。 + +**1、删除单个文件** +``` +rm 1.txt +``` +**2、强制删除文件,无需确认** +``` +rm -rf 1.txt +``` +**3、删除文件夹** +``` +rm -rf mydir +``` +**4、删除目录下全部文件,包括文件夹** +``` +rm -rf * +``` +**5、删除全部文件,但保留1.txt** +``` +rm -rf !(1.txt) +``` +正常情况下是全部文件被删除了,只留下了1.txt,但是有时候我们的系统没配置好,可能会报错,例如下面这种: + +``` +root@abc:/home/# rm -rf !(1.txt) + +-bash: !: event not found +``` +上面这种情况是因为我们的系统没有开启通配符功能,我们执行下面的命令开启通配符功能先: +``` +shopt -s extglob +``` +查看通配符功能是否开启,on表示已经开启 +``` +shopt -s +``` +然后我们再次执行前面的命令就可以看到文件已经全部删除了,只保留了1.txt +``` +rm -rf !(1.txt) +``` +**6、删除全部文件,保留1.txt和2.txt** +``` +rm -rf !(1.txt|2.txt) +``` +上面我们说的都是直接用rm + !(叹号)来排除文件的,下面我们搞个高深一点的,用**find + grep + xargs**三个命令一起用 + +**7、删除全部文件,保留1.txt** +``` +find * | grep -v 1.txt | xargs rm +``` +这里我们要特别注意grep的-v参数,-v参数表示反选,比如我们上面指定了-v 1.txt,即排除掉1.txt,选中其他全部文件。所以这样执行之后1.txt就被排除了 + +**8、删除全部文件,保留1.txt和2.txt** +``` +find * | grep -v '\(1.txt\|2.txt\)' | xargs rm +``` +**9、删除文件中不包含_字符的文件** +``` +find * | grep -v '_' | xargs rm +``` +这里要特别留意,括号()跟括号内的竖线|需要添加****进行转义,否则会报错 \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/vcpkg+CLion+cmake+MinGW使用.md b/WebMVC/WebMVCApi/md/vcpkg+CLion+cmake+MinGW使用.md new file mode 100644 index 0000000..8a7a9f5 --- /dev/null +++ b/WebMVC/WebMVCApi/md/vcpkg+CLion+cmake+MinGW使用.md @@ -0,0 +1,80 @@ +--- +icon: edit +date: 2023-01-16 +category: + - 系统配置 + - cpp +tag: + - CMake + - vcpkg + - CLion +headerDepth: 5 +--- + + +# vcpkg+CLion+cmake+MinGW使用 +#### vcpkg介绍 +```vcpkg 是用于 C++ 的一种命令行包管理器。 它极大地简化了 Windows、Linux 和 macOS 上第三方库的购置与安装。 如果项目要使用第三方库,建议通过 vcpkg 来安装它们。 vcpkg 同时支持开源和专有库。 已测试 vcpkg Windows 目录中所有库与 Visual Studio 2015、Visual Studio 2017 及 Visual Studio 2019 的兼容性。 在 Windows 和 Linux/macOS 目录之间,vcpkg 现已支持超过 1900 个库。 C++ 社区正在不断向两个目录添加更多的库。``` + +#### 安装 +从 GitHub 克隆 vcpkg 存储库:https://github.com/Microsoft/vcpkg。 可凭喜好下载到任意文件夹位置。 此位置的根是 vcpkg。 下载完成后,在命令行界面切换到该目录。 +``` shell +git clone https://github.com/Microsoft/vcpkg.git +``` +在 vcpkg 根目录中,运行 vcpkg 引导程序: +```shell +bootstrap-vcpkg.bat (Windows) +./bootstrap-vcpkg.sh(Linux、macOS) +``` +最后根据系统不同,添加到各自得环境变量里面 +在 Linux 或 macOS 上,你可能需要在以下示例中使用 ./ 作为 vcpkg 命令的前缀。 请记得从 vcpkg 根目录运行这些命令。 + +#### 用法 +[https://github.com/microsoft/vcpkg/blob/master/README_zh_CN.md](https://github.com/microsoft/vcpkg/blob/master/README_zh_CN.md) +安装 Jsoncpp +这里我们使用 vcpkg 安装 jsoncpp 并指定 vcpkg 的 triplet 为 mingw,用户可以通过执行 vcpkg help triplet 来查看 vcpkg 支持的所有 triplet +```shell +vcpkg install jsoncpp:x64-mingw-static +``` +![image-1673855329302](https://local.wuanwanghao.top:9000/test/test/image-1673855329302.png) +CMake 使用 jsoncpp +```shell +find_package(jsoncpp CONFIG REQUIRED) +target_link_libraries(main PRIVATE jsoncpp_object jsoncpp_static) +``` +就是我们要在我们项目中 CMakeLists.txt 中填入的内容如下所示 +```txt +cmake_minimum_required(VERSION 3.22) +set(VCPKG_TARGET_TRIPLET "x64-mingw-static" CACHE STRING "" FORCE) + +project(main) + +set(CMAKE_CXX_STANDARD 11) +find_package(jsoncpp CONFIG REQUIRED) + +add_executable(main main.cpp) +target_link_libraries(main PRIVATE jsoncpp_object jsoncpp_static JsonCpp::JsonCpp) +``` +其中的第二行 set(VCPKG_TARGET_TRIPLET "x64-mingw-static" CACHE STRING "" FORCE) 是设置 vcpkg 的 triplet +#### Clion 配置 +在 CMake options 中填入 +```shell +-DCMAKE_TOOLCHAIN_FILE=<你安装vcpkg的位置>/scripts/buildsystems/vcpkg.cmake + +``` +![image-1673855528935](https://local.wuanwanghao.top:9000/test/test/image-1673855528935.png) + +#### 测试 +main.cpp +```cpp +#include +#include +int main() { + Json::Value root; + root["one"] = "one"; + std::cout << root.toStyledString() << std::endl; + std::cout << "Hello, World!" << std::endl; + return 10; +} +``` +![image-1673855622590](https://local.wuanwanghao.top:9000/test/test/image-1673855622590.png) diff --git a/WebMVC/WebMVCApi/md/vmware EXSI 修改系统默认SSL证书和密钥.md b/WebMVC/WebMVCApi/md/vmware EXSI 修改系统默认SSL证书和密钥.md new file mode 100644 index 0000000..1e75d96 --- /dev/null +++ b/WebMVC/WebMVCApi/md/vmware EXSI 修改系统默认SSL证书和密钥.md @@ -0,0 +1,38 @@ +--- +icon: edit +date: 2022-11-03 +category: + - 系统配置 + - Linux +tag: + - 网络 + - EXSI + - SSL + - 域名 +headerDepth: 5 +--- + + +# vmware EXSI 修改系统默认SSL证书和密钥 +### ssh链接到exsi +![image-1667434778798](https://local.wuanwanghao.top:9000/test/test/image-1667434778798.png) +### 跳转到 ```/etc/vmware/ssl``` 路径下 +```shell +cd /etc/vmware/ssl +``` +### 将路径下的两个文件备份 修改后辍为bak +![image-1667434900974](https://local.wuanwanghao.top:9000/test/test/image-1667434900974.png) + +### 上传自己的ssl 证书 和密钥 名称都修改为 ```rui``` +![image-1667435003688](https://local.wuanwanghao.top:9000/test/test/image-1667435003688.png)! +### 使证书生效 +```shell +/etc/init.d/hostd restart +/etc/init.d/vpxa restart +``` +![image-1667435106747](https://local.wuanwanghao.top:9000/test/test/image-1667435106747.png) + + + + + diff --git a/WebMVC/WebMVCApi/md/vscode 运行Java 项目的时候的编码问题,idea运行成功,但是vscode运行就nacos 拉取配置中文注释解析失败的问题解决。.md b/WebMVC/WebMVCApi/md/vscode 运行Java 项目的时候的编码问题,idea运行成功,但是vscode运行就nacos 拉取配置中文注释解析失败的问题解决。.md new file mode 100644 index 0000000..c1d6a0e --- /dev/null +++ b/WebMVC/WebMVCApi/md/vscode 运行Java 项目的时候的编码问题,idea运行成功,但是vscode运行就nacos 拉取配置中文注释解析失败的问题解决。.md @@ -0,0 +1,24 @@ +--- +icon: edit +date: 2023-03-15 +category: + - 系统配置 + - Java +headerDepth: 5 +--- + + +# vscode 运行Java 项目的时候的编码问题,idea运行成功,但是vscode运行就nacos 拉取配置中文注释解析失败的问题解决。 +最近尝试再用vscode 在跑项目,意外的觉得很好用,简洁。尝试命令行跑项目有种很棒的感觉。但是今天有个新项目在跑的时候却出现了个很头疼的问题。 + 就是项目运行的的时候要去nacos 拉取配置,但是就是解析报错,很纳闷,就是idea 运行就没有问题。我对比两者运行时候的命令发现,idea 在运行期间 + jvm 参数多了 -Dfile.encoding=UTF-8 文件编码指定了 UTF-8 🤣,无语了。 + 以下是在vscode 中启动项目追加 jvm 参数的方式 + + ```json + { + "spring-boot.ls.java.vmargs": [ + "-Dfile.encoding=utf-8" + ], + "java.debug.settings.vmArgs": "-Dfile.encoding=UTF-8", +} + ``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/windows 下包管理器.md b/WebMVC/WebMVCApi/md/windows 下包管理器.md new file mode 100644 index 0000000..2e2a5bb --- /dev/null +++ b/WebMVC/WebMVCApi/md/windows 下包管理器.md @@ -0,0 +1,221 @@ +--- +icon: edit +date: 2023-04-05 +category: + - 系统配置 + - windows +tag: + - chocolatey + - pkgManger + - winget +headerDepth: 5 +--- + + +# windows 下包管理器 +# windows 下包管理器 +- chocolatey +- winget +- Scoop +## chocolatey +chocolatey 并非微软官方的包管理器,但却是最受欢迎的包管理器 +[chocolatey官网](https://chocolatey.org/) +[官方安装文档](https://docs.chocolatey.org/en-us/choco/setup) +[官方配置文档](https://docs.chocolatey.org/en-us/configuration) +### CMD 安装 +```shell +@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "[System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin" +``` +### powershell安装 +```shell +Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1')) +``` +### 升级 +``` +choco upgrade chocolatey +``` +### 卸载 +#### 文件夹 +Chocolatey 的大部分内容包含在C:\ProgramData\chocolatey或任何$env:ChocolateyInstall计算结果中。您可以简单地删除该文件夹。 + +- 笔记 +您可以先备份子文件夹lib,bin以防万一您在删除 Chocolatey 时发现不良结果。请记住,并非每个 Chocolatey 包都是安装程序包,这些子文件夹中可能包含一些未安装的应用程序,这些应用程序可能会丢失。拥有备份将使您能够测试该方面。 + +#### 环境变量 +有一些环境变量需要调整或删除。 +- ChocolateyInstall +- ChocolateyToolsLocation +- ChocolateyLastPathUpdate +- PATH (will need updated to remove) +### 使用 +使用巧克力 +现在你的机器上有 Chocolatey(需要安装?),你可以运行几个命令。 + +查看命令参考。我们将使用安装命令。 + +让我们安装Notepad++。 + +以管理员身份打开命令行。 +键入choco install notepadplusplus并按 Enter。 +``` +choco install notepadplusplus +``` +>就是这样。非常简单但功能强大的小概念! +覆盖默认安装目录或其他高级安装概念 +是的,我们通过使用安装参数来支持它 - 请参阅安装参数 +如果您想将本机参数传递给安装程序,例如安装目录,您需要知道传递给该特定安装程序的静默参数,然后您可以在命令行或 packages.config 中指定它。 + +>如果它是 MSI,那么通常您可以通过-ia "INSTALLDIR=""D:\Program Files"""(对于 cmd.exe,对于 PowerShell 则不同)。查看如何传递选项/开关以了解有关传递引用值的细节。 + +>例如,Notepad++ 使用NSIS(NullSoft Scriptable Install System)安装程序。如果我们查看静默选项,我们会发现/D是我们影响安装目录的方式。所以我们会通过choco install notepadplusplus.install -ia + +>"'/D=E:\SomeDirectory\somebody\npp'"- 请注意,我们正在查看虚拟的特定包(尽管您也可以使用 notepadplusplus 执行相同的操作)。 +有没有更好的办法?绝对,看到无处不在的安装目录开关! + +## winget +[微软官方文档](https://learn.microsoft.com/zh-cn/windows/package-manager/) +[winget-GitHub](https://github.com/microsoft/winget-cli/releases) +winget 是微软官方的包管理器。虽没有chocolatey受欢迎,但还是可以的 + +### 安装 +#### 应用商店安装 +![image-1680681449718](https://local.wuanwanghao.top:9000/test/test/image-1680681449718.png) +#### 安装包安装 +前往[winget-GitHub](https://github.com/microsoft/winget-cli/releases) 下载你需要安装版本的安装包 ```assest``` 下,文件后戳为 ```msixbundle``` 的安装包 +下载完成后双击安装 + +### 使用 +重新打开一个cmd 窗口 +> install 安装给定的程序包 + show 显示包的相关信息 + source 管理程序包的来源 + search 查找并显示程序包的基本信息 + list 显示已安装的程序包 + upgrade 显示并执行可用升级 + uninstall 卸载给定的程序包 + hash 哈希安装程序的帮助程序 + validate 验证清单文件 + settings 打开设置或设置管理员设置 + features 显示实验性功能的状态 + export 导出已安装程序包的列表 + import 安装文件中的所有程序包 +``` +C:\Users\Hasee>winget --help +Windows 程序包管理器(预览) v1.5.441-preview +版权所有 (C) Microsoft Corporation。保留所有权利。 + +WinGet 命令行实用工具可从命令行安装应用程序和其他程序包。 + +使用情况: winget [<命令>] [<选项>] + +下列命令有效: + install 安装给定的程序包 + show 显示包的相关信息 + source 管理程序包的来源 + search 查找并显示程序包的基本信息 + list 显示已安装的程序包 + upgrade 显示并执行可用升级 + uninstall 卸载给定的程序包 + hash 哈希安装程序的帮助程序 + validate 验证清单文件 + settings 打开设置或设置管理员设置 + features 显示实验性功能的状态 + export 导出已安装程序包的列表 + import 安装文件中的所有程序包 + +如需特定命令的更多详细信息,请向其传递帮助参数。 [-?] + +下列选项可用: + -v,--version 显示工具的版本 + --info 显示工具的常规信息 + -?,--help 显示选定命令的帮助信息 + --wait 提示用户在退出前按任意键 + --logs,--open-logs 打开默认日志位置 + --verbose,--verbose-logs 启用 WinGet 的详细日志记录 + --disable-interactivity 禁用交互式提示 + +可在此找到更多帮助: "https://aka.ms/winget-command-help" +``` +## Scoop +Scoop 是一款Windows下的命令行软件管理工具 +简单来说,他比winget更强大(只是不够本土化,winget的软件本土化做的要更好一些,但对我来说在环境管理方面,scoop也有不可替代性) + +### 安装: +打开 PowerShell 终端 (version 5.1 or later) 然后 运行: +[项目地址github](https://github.com/ScoopInstaller/Scoop) +[安装文档github](https://github.com/ScoopInstaller/Install) +#### 非管理员安装 +```shell +Set-ExecutionPolicy RemoteSigned -Scope CurrentUser #可选:第一次需要执行远程脚本 + irm get.scoop.sh | iex +``` +#### 管理员安装 +``` + irm get.scoop.sh -outfile 'install.ps1' + .\install.ps1 -RunAsAdmin -ScoopDir 'D:\env\Scoop' -ScoopGlobalDir 'D:\env\Scoop' -NoProxy +``` + +#### 指定环境变量 +两者的值可以设为一致 +```SCOOP``` 软件用户安装目录- 命令里 ScoopDir +```SCOOP_GLOBAL``` 软件的全局安装目录- 命令里 ScoopGlobalDir + +### 使用 +``` +C:\Users\Hasee>scoop +Usage: scoop [] + +Available commands are listed below. + +Type 'scoop help ' to get more help for a specific command. + +Command Summary +------- ------- +alias Manage scoop aliases +bucket Manage Scoop buckets +cache Show or clear the download cache +cat Show content of specified manifest. +checkup Check for potential problems +cleanup Cleanup apps by removing old versions +config Get or set configuration values +create Create a custom app manifest +depends List dependencies for an app, in the order they'll be installed +download Download apps in the cache folder and verify hashes +export Exports installed apps, buckets (and optionally configs) in JSON format +help Show help for a command +hold Hold an app to disable updates +home Opens the app homepage +import Imports apps, buckets and configs from a Scoopfile in JSON format +info Display information about an app +install Install apps +list List installed apps +prefix Returns the path to the specified app +reset Reset an app to resolve conflicts +search Search available apps +shim Manipulate Scoop shims +status Show status and check for new app versions +unhold Unhold an app to enable updates +uninstall Uninstall an app +update Update apps, or Scoop itself +virustotal Look for app's hash or url on virustotal.com +which Locate a shim/executable (similar to 'which' on Linux) +``` + +``` +scoop install nodejs +Installing 'nodejs' (18.4.0) [64bit] +node-v18.4.0-win-x64.7z (17.3 MB) [===================================] 100% +Checking hash of node-v18.4.0-win-x64.7z ... ok. +Extracting node-v18.4.0-win-x64.7z ... done. +Linking ~\scoop\apps\nodejs\current => ~\scoop\apps\nodejs\18.4.0 +Persisting bin +Persisting cache +Running post_install script... +'nodejs' (18.4.0) was installed successfully! +``` +#### 安装缓慢 +可以指定环境变量 ```HTTP_PROXY``` 设置代理地址来加速 + +### 卸载 + +直接删除 ```SCOOP``` ```SCOOP_GLOBAL``` 环境变量所指的文件夹 可以完全删除 diff --git a/WebMVC/WebMVCApi/md/windows 开始和关闭休眠模式,更换休眠文件保存位置.md b/WebMVC/WebMVCApi/md/windows 开始和关闭休眠模式,更换休眠文件保存位置.md new file mode 100644 index 0000000..47e3b72 --- /dev/null +++ b/WebMVC/WebMVCApi/md/windows 开始和关闭休眠模式,更换休眠文件保存位置.md @@ -0,0 +1,23 @@ +--- +icon: edit +date: 2023-02-15 +category: + - 系统配置 +headerDepth: 5 +--- + + +# windows 开始和关闭休眠模式,更换休眠文件保存位置 +cmd 管理员模式执行命令 +```cmd +powercfg -h off 关闭休眠模式 ,并删除休眠文件 +powercfg -h on 开启休眠模式 +``` + +使用“windows+R”组合键进入运行,输入“regedit”命令。 +![1676471193767](https://local.wuanwanghao.top:9000/test/test/1676471193767.png) +进入 ```计算机\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\BackupRestore\FilesNotToBackup``` + +ControlSet001 可能有多个 ControlSet002 ControlSet003 。。。有的话就全部修改 +将FilesNotToBackup下的Power Management 项值从```\hiberfil.sys```修改为```盘符:\hiberfil.sys``` +![image-1676471336708](https://local.wuanwanghao.top:9000/test/test/image-1676471336708.png) \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/zerotier Ping 不工作.md b/WebMVC/WebMVCApi/md/zerotier Ping 不工作.md new file mode 100644 index 0000000..65c4574 --- /dev/null +++ b/WebMVC/WebMVCApi/md/zerotier Ping 不工作.md @@ -0,0 +1,11 @@ +--- +icon: edit +date: 2022-07-04 +category: + - 内网穿透 +headerDepth: 5 +--- + + +# zerotier Ping 不工作 +[zerotier 官网相关解决方案](https://docs.zerotier.com/zerotier/troubleshooting/) \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/zerotier搭建moon模式.md b/WebMVC/WebMVCApi/md/zerotier搭建moon模式.md new file mode 100644 index 0000000..80a52a4 --- /dev/null +++ b/WebMVC/WebMVCApi/md/zerotier搭建moon模式.md @@ -0,0 +1,11 @@ +--- +icon: edit +date: 2022-07-04 +category: + - 内网穿透 +headerDepth: 5 +--- + + +# zerotier搭建moon模式 +[zerotier搭建moon模式](https://blog.csdn.net/zetion_3/article/details/124046219) \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/zip unzip tar 命令使用.md b/WebMVC/WebMVCApi/md/zip unzip tar 命令使用.md new file mode 100644 index 0000000..e9d8b55 --- /dev/null +++ b/WebMVC/WebMVCApi/md/zip unzip tar 命令使用.md @@ -0,0 +1,143 @@ +--- +icon: edit +date: 2023-04-06 +category: + - Linux +tag: + - tar + - zip + - uzip + - linux +headerDepth: 5 +--- + + +# zip unzip tar 命令使用 +## tar +tar命令参数前面加”-"与不加“-”的区别: + +tar命令参数前面加不加“-”执行命令的结果是没有区别的,区别只要是在于linux风格方面,加“-”属于System V风格,不加“-”属于BSD风格,所以在使用tar命令的时候它的参数加不加“-”结果是一样的,看个人的使用方式; + +### 常用参数: +tar命令的常用参数 +>-z 是否同时具有gz属性 +-j 是否同时具有bz2属性 +-J 是否同时具有xz属性 +-x 解压缩、提取打包的内容 +-t 查看压缩包内容 +-c 建立一个压缩,打包文档 +-C 切换到指定目录,表示指定解压缩包的内容和打包的内容存放的目录 +-v 显示压缩或者打包的内容 +-f 使用文件名,在f后面要接压缩后的文件的名字,只要用到tar命令,-f选项是必须要用的,-f参数在使用的时候一定排在其他参数的后面,在最右边 +-p 保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件 +-P 保留绝对路径 +### 打包 +#### 普通打包 +``` +tar -cvf 压缩后的文件名.tar 要压缩的目录或文件 +``` +#### 压缩打包 +##### -z 用于gzip压缩方式 文件名.tar.gz +```shell +tar -zcvf 压缩后的文件名.tar.gz 要压缩的目录或文件 +``` +##### -j 用于bzip2压缩方式 文件名.tar.bz2 +```shell +tar -jcvf 压缩后的文件名.tar.bz2 要压缩的目录或文件 +``` +##### -J 用于xz压缩方式 文件名.tar.xz +```shell +tar -Jcvf 压缩后的文件名.tar.xz 要压缩的目录或文件 +``` +##### 压缩格式比较: +压缩速度:gz > bz2 > xz +压缩率:xz > bz2 > gz + +#### 解压 +```shell +#不知道压缩格式解压自动识别 +tar -xvf 文件名.压缩格式自动识别 +# 指定gz +tar-zxvf 文件名.tar.gz +# 指定bz2 +tar-jxvf 文件名.tar.bz2 +# 指定xz +tar-Jxvf 文件名.tar.xz +``` + +>在解压gz压缩方式压缩文件的时候并不需要加上``` -z ```,直接用参数-xf即可,另外两种压缩方式 ```-j``` 和 ```-J``` 在解压的时候一样,因为tar命令会自动选择,解压之后压缩文件还在,如果不指定解压出来的文件保存在哪里,那么会直接解压在当前目录 + +## zip + +### 基本用法: + +zip [参数] [压缩包名] [压缩的目录或者文件的路径] + +### 常用参数: + +zip命令的常用参数 + +>-m 将文件压缩后,删除原文件 +-o 将压缩文件内的所有文件的最新变动时间设为压缩的时间 +-q 安静模式,在压缩的时候不显示指令执行的过程 +-r 递归压缩,将自定目录下的所有子文件以及文件一起处理 +-x ”文件列表“,压缩时排除文件列表中的文件 + +### 使用 +**1.正常压缩,不加-q选项,显示压缩的过程:** +```shell +zip -r 压缩后的文件名 目录 +``` +**2.加上-q选项,安静模式输出,不显示压缩的过程:** +``` +zip -q -r 压缩后的文件名 目录 +``` +**3.压缩多个文件 因为压缩的全是文件,所以可以不用加上-r选项** +``` +zip test.zip test1.txt test2.txt test3.txt +``` +**结果会将test1.txt test2.txt test3.txt 三个文件压缩进入 test.zip** + +**4.压缩文件跟目录 因为压缩目标中包含目录 所以要加 -r** +``` +zip -r test.zip test1.txt test2.txt test +``` +**结果会将test1.txt test2.txt 两个文件 和test目录 压缩进入 test.zip** + +## unzip + +### 基本用法: +unzip [参数] [压缩文件] (-d [目录]) //如果不是用括号里面的内容,则解压文件在当前工作目录 + +### 常用参数: +unzip命令的常用参数 + +>-c 将解压缩的结果显示到屏幕上(显示每一个目录下的每一个文件的内容),同时对字符做适当的转换,但是并没有解压压缩包 +-l 显示压缩文件内所包含的文件 +-t 检查压缩文件是否正确 +-v 执行时显示压缩文件的详细信息 +-q 安静模式,执行时不显示任何信息 +-d 指定文件解压后存储的目录 +-x 指定不要处理压缩文件中的那些文件 + +### 使用 +**1.解压 并列出解压结果** +```shell +unzip -c test.zip +``` +**2.列出zip 包里面的文件** +```shell +unzip -l test.zip +``` +**3.检查压缩文件是否正确** +```shell +unzip -t test.zip +``` +**4.不解压压缩文件查看压缩包里面的内容(查看显示的文件列表还包含压缩比率)** +```shell +unzip -v test.zip +``` +**4.解压缩到指定文件** +```shell +unzip test.zip -d /opt +``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/【CMake】vcpkg + CMake 集成(Clion).md b/WebMVC/WebMVCApi/md/【CMake】vcpkg + CMake 集成(Clion).md new file mode 100644 index 0000000..3058d24 --- /dev/null +++ b/WebMVC/WebMVCApi/md/【CMake】vcpkg + CMake 集成(Clion).md @@ -0,0 +1,11 @@ +--- +icon: edit +date: 2022-07-05 +category: + - cpp +headerDepth: 5 +--- + + +# 【CMake】vcpkg + CMake 集成(Clion) +[【CMake】vcpkg + CMake](https://blog.csdn.net/qq_43331089/article/details/124494099) \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/一款酷酷的Linux系统实时监测工具:Netdata的安装与使用.md b/WebMVC/WebMVCApi/md/一款酷酷的Linux系统实时监测工具:Netdata的安装与使用.md new file mode 100644 index 0000000..43174f4 --- /dev/null +++ b/WebMVC/WebMVCApi/md/一款酷酷的Linux系统实时监测工具:Netdata的安装与使用.md @@ -0,0 +1,14 @@ +--- +icon: edit +date: 2021-09-15 +category: + - 系统配置 +tag: + - linux +headerDepth: 5 +--- + + +# 一款酷酷的Linux系统实时监测工具:Netdata的安装与使用 +### 转载: + https://blog.luvying.com/archives/linux-monitor-netdata \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/全国省市区三级数据库sql.md b/WebMVC/WebMVCApi/md/全国省市区三级数据库sql.md new file mode 100644 index 0000000..3cdfd79 --- /dev/null +++ b/WebMVC/WebMVCApi/md/全国省市区三级数据库sql.md @@ -0,0 +1,4275 @@ +--- +icon: edit +date: 2021-10-18 +category: + - 系统配置 +tag: + - mysql + - sql +headerDepth: 5 +--- + + +# 全国省市区三级数据库sql +# 全国省市区三级数据库sql +> 全国标准编码地区数据库 +[sql下载](/upload/2021/10/area-367fbdec398e41498406ca35d40c79f7.sql) +```sql +/* + Navicat Premium Data Transfer + Source Server : localhost + Source Server Type : MySQL + Source Server Version : 50726 + Source Host : localhost:3306 + Source Schema : gclw + Target Server Type : MySQL + Target Server Version : 50726 + File Encoding : 65001 + Date: 06/11/2020 10:44:59 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for area +-- ---------------------------- +DROP TABLE IF EXISTS `area`; +CREATE TABLE `area` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `pid` int(11) UNSIGNED NOT NULL, + `name` varchar(500) CHARACTER SET utf8 COLLATE utf8mb4_bin NOT NULL, + `visible` tinyint(4) UNSIGNED NOT NULL, + `displayorder` int(11) UNSIGNED NOT NULL, + `level` tinyint(3) UNSIGNED NOT NULL, + PRIMARY KEY (`id`) USING BTREE, + INDEX `parentId`(`pid`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 990101 CHARACTER SET = utf8 COLLATE = utf8mb4_bin ROW_FORMAT = Compact; + +-- ---------------------------- +-- Records of area +-- ---------------------------- +INSERT INTO `area` VALUES (110000, 0, '北京市', 2, 0, 1); +INSERT INTO `area` VALUES (110100, 110000, '北京市', 2, 0, 2); +INSERT INTO `area` VALUES (110101, 110100, '东城区', 2, 0, 3); +INSERT INTO `area` VALUES (110102, 110100, '西城区', 2, 0, 3); +INSERT INTO `area` VALUES (110103, 110100, '崇文区', 2, 0, 3); +INSERT INTO `area` VALUES (110104, 110100, '宣武区', 2, 0, 3); +INSERT INTO `area` VALUES (110105, 110100, '朝阳区', 2, 0, 3); +INSERT INTO `area` VALUES (110106, 110100, '丰台区', 2, 0, 3); +INSERT INTO `area` VALUES (110107, 110100, '石景山区', 2, 0, 3); +INSERT INTO `area` VALUES (110108, 110100, '海淀区', 2, 0, 3); +INSERT INTO `area` VALUES (110109, 110100, '门头沟区', 2, 0, 3); +INSERT INTO `area` VALUES (110111, 110100, '房山区', 2, 0, 3); +INSERT INTO `area` VALUES (110112, 110100, '通州区', 2, 0, 3); +INSERT INTO `area` VALUES (110113, 110100, '顺义区', 2, 0, 3); +INSERT INTO `area` VALUES (110114, 110100, '昌平区', 2, 0, 3); +INSERT INTO `area` VALUES (110115, 110100, '大兴区', 2, 0, 3); +INSERT INTO `area` VALUES (110116, 110100, '怀柔区', 2, 0, 3); +INSERT INTO `area` VALUES (110117, 110100, '平谷区', 2, 0, 3); +INSERT INTO `area` VALUES (110228, 110200, '密云县', 2, 0, 3); +INSERT INTO `area` VALUES (110229, 110200, '延庆县', 2, 0, 3); +INSERT INTO `area` VALUES (110230, 110100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (120000, 0, '天津市', 2, 0, 1); +INSERT INTO `area` VALUES (120100, 120000, '天津市', 2, 0, 2); +INSERT INTO `area` VALUES (120101, 120100, '和平区', 2, 0, 3); +INSERT INTO `area` VALUES (120102, 120100, '河东区', 2, 0, 3); +INSERT INTO `area` VALUES (120103, 120100, '河西区', 2, 0, 3); +INSERT INTO `area` VALUES (120104, 120100, '南开区', 2, 0, 3); +INSERT INTO `area` VALUES (120105, 120100, '河北区', 2, 0, 3); +INSERT INTO `area` VALUES (120106, 120100, '红桥区', 2, 0, 3); +INSERT INTO `area` VALUES (120107, 120100, '塘沽区', 2, 0, 3); +INSERT INTO `area` VALUES (120108, 120100, '汉沽区', 2, 0, 3); +INSERT INTO `area` VALUES (120109, 120100, '大港区', 2, 0, 3); +INSERT INTO `area` VALUES (120110, 120100, '东丽区', 2, 0, 3); +INSERT INTO `area` VALUES (120111, 120100, '西青区', 2, 0, 3); +INSERT INTO `area` VALUES (120112, 120100, '津南区', 2, 0, 3); +INSERT INTO `area` VALUES (120113, 120100, '北辰区', 2, 0, 3); +INSERT INTO `area` VALUES (120114, 120100, '武清区', 2, 0, 3); +INSERT INTO `area` VALUES (120115, 120100, '宝坻区', 2, 0, 3); +INSERT INTO `area` VALUES (120116, 120100, '滨海新区', 2, 0, 3); +INSERT INTO `area` VALUES (120221, 120200, '宁河县', 2, 0, 3); +INSERT INTO `area` VALUES (120223, 120200, '静海县', 2, 0, 3); +INSERT INTO `area` VALUES (120225, 120200, '蓟县', 2, 0, 3); +INSERT INTO `area` VALUES (120226, 120100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (130000, 0, '河北省', 2, 0, 1); +INSERT INTO `area` VALUES (130100, 130000, '石家庄市', 2, 0, 2); +INSERT INTO `area` VALUES (130102, 130100, '长安区', 2, 0, 3); +INSERT INTO `area` VALUES (130103, 130100, '桥东区', 2, 0, 3); +INSERT INTO `area` VALUES (130104, 130100, '桥西区', 2, 0, 3); +INSERT INTO `area` VALUES (130105, 130100, '新华区', 2, 0, 3); +INSERT INTO `area` VALUES (130107, 130100, '井陉矿区', 2, 0, 3); +INSERT INTO `area` VALUES (130108, 130100, '裕华区', 2, 0, 3); +INSERT INTO `area` VALUES (130109, 130100, '藁城区', 2, 0, 3); +INSERT INTO `area` VALUES (130110, 130100, '鹿泉区', 2, 0, 3); +INSERT INTO `area` VALUES (130111, 130100, '栾城区', 2, 0, 3); +INSERT INTO `area` VALUES (130121, 130100, '井陉县', 2, 0, 3); +INSERT INTO `area` VALUES (130123, 130100, '正定县', 2, 0, 3); +INSERT INTO `area` VALUES (130124, 130100, '栾城县', 2, 0, 3); +INSERT INTO `area` VALUES (130125, 130100, '行唐县', 2, 0, 3); +INSERT INTO `area` VALUES (130126, 130100, '灵寿县', 2, 0, 3); +INSERT INTO `area` VALUES (130127, 130100, '高邑县', 2, 0, 3); +INSERT INTO `area` VALUES (130128, 130100, '深泽县', 2, 0, 3); +INSERT INTO `area` VALUES (130129, 130100, '赞皇县', 2, 0, 3); +INSERT INTO `area` VALUES (130130, 130100, '无极县', 2, 0, 3); +INSERT INTO `area` VALUES (130131, 130100, '平山县', 2, 0, 3); +INSERT INTO `area` VALUES (130132, 130100, '元氏县', 2, 0, 3); +INSERT INTO `area` VALUES (130133, 130100, '赵县', 2, 0, 3); +INSERT INTO `area` VALUES (130181, 130100, '辛集市', 2, 0, 3); +INSERT INTO `area` VALUES (130182, 130100, '藁城市', 2, 0, 3); +INSERT INTO `area` VALUES (130183, 130100, '晋州市', 2, 0, 3); +INSERT INTO `area` VALUES (130184, 130100, '新乐市', 2, 0, 3); +INSERT INTO `area` VALUES (130185, 130100, '鹿泉市', 2, 0, 3); +INSERT INTO `area` VALUES (130186, 130100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (130200, 130000, '唐山市', 2, 0, 2); +INSERT INTO `area` VALUES (130202, 130200, '路南区', 2, 0, 3); +INSERT INTO `area` VALUES (130203, 130200, '路北区', 2, 0, 3); +INSERT INTO `area` VALUES (130204, 130200, '古冶区', 2, 0, 3); +INSERT INTO `area` VALUES (130205, 130200, '开平区', 2, 0, 3); +INSERT INTO `area` VALUES (130207, 130200, '丰南区', 2, 0, 3); +INSERT INTO `area` VALUES (130208, 130200, '丰润区', 2, 0, 3); +INSERT INTO `area` VALUES (130209, 130200, '曹妃甸区', 2, 0, 3); +INSERT INTO `area` VALUES (130223, 130200, '滦县', 2, 0, 3); +INSERT INTO `area` VALUES (130224, 130200, '滦南县', 2, 0, 3); +INSERT INTO `area` VALUES (130225, 130200, '乐亭县', 2, 0, 3); +INSERT INTO `area` VALUES (130227, 130200, '迁西县', 2, 0, 3); +INSERT INTO `area` VALUES (130229, 130200, '玉田县', 2, 0, 3); +INSERT INTO `area` VALUES (130230, 130200, '唐海县', 2, 0, 3); +INSERT INTO `area` VALUES (130281, 130200, '遵化市', 2, 0, 3); +INSERT INTO `area` VALUES (130283, 130200, '迁安市', 2, 0, 3); +INSERT INTO `area` VALUES (130284, 130200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (130300, 130000, '秦皇岛市', 2, 0, 2); +INSERT INTO `area` VALUES (130302, 130300, '海港区', 2, 0, 3); +INSERT INTO `area` VALUES (130303, 130300, '山海关区', 2, 0, 3); +INSERT INTO `area` VALUES (130304, 130300, '北戴河区', 2, 0, 3); +INSERT INTO `area` VALUES (130321, 130300, '青龙满族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (130322, 130300, '昌黎县', 2, 0, 3); +INSERT INTO `area` VALUES (130323, 130300, '抚宁县', 2, 0, 3); +INSERT INTO `area` VALUES (130324, 130300, '卢龙县', 2, 0, 3); +INSERT INTO `area` VALUES (130398, 130300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (130399, 130300, '经济技术开发区', 2, 0, 3); +INSERT INTO `area` VALUES (130400, 130000, '邯郸市', 2, 0, 2); +INSERT INTO `area` VALUES (130402, 130400, '邯山区', 2, 0, 3); +INSERT INTO `area` VALUES (130403, 130400, '丛台区', 2, 0, 3); +INSERT INTO `area` VALUES (130404, 130400, '复兴区', 2, 0, 3); +INSERT INTO `area` VALUES (130406, 130400, '峰峰矿区', 2, 0, 3); +INSERT INTO `area` VALUES (130421, 130400, '邯郸县', 2, 0, 3); +INSERT INTO `area` VALUES (130423, 130400, '临漳县', 2, 0, 3); +INSERT INTO `area` VALUES (130424, 130400, '成安县', 2, 0, 3); +INSERT INTO `area` VALUES (130425, 130400, '大名县', 2, 0, 3); +INSERT INTO `area` VALUES (130426, 130400, '涉县', 2, 0, 3); +INSERT INTO `area` VALUES (130427, 130400, '磁县', 2, 0, 3); +INSERT INTO `area` VALUES (130428, 130400, '肥乡县', 2, 0, 3); +INSERT INTO `area` VALUES (130429, 130400, '永年县', 2, 0, 3); +INSERT INTO `area` VALUES (130430, 130400, '邱县', 2, 0, 3); +INSERT INTO `area` VALUES (130431, 130400, '鸡泽县', 2, 0, 3); +INSERT INTO `area` VALUES (130432, 130400, '广平县', 2, 0, 3); +INSERT INTO `area` VALUES (130433, 130400, '馆陶县', 2, 0, 3); +INSERT INTO `area` VALUES (130434, 130400, '魏县', 2, 0, 3); +INSERT INTO `area` VALUES (130435, 130400, '曲周县', 2, 0, 3); +INSERT INTO `area` VALUES (130481, 130400, '武安市', 2, 0, 3); +INSERT INTO `area` VALUES (130482, 130400, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (130500, 130000, '邢台市', 2, 0, 2); +INSERT INTO `area` VALUES (130502, 130500, '桥东区', 2, 0, 3); +INSERT INTO `area` VALUES (130503, 130500, '桥西区', 2, 0, 3); +INSERT INTO `area` VALUES (130521, 130500, '邢台县', 2, 0, 3); +INSERT INTO `area` VALUES (130522, 130500, '临城县', 2, 0, 3); +INSERT INTO `area` VALUES (130523, 130500, '内丘县', 2, 0, 3); +INSERT INTO `area` VALUES (130524, 130500, '柏乡县', 2, 0, 3); +INSERT INTO `area` VALUES (130525, 130500, '隆尧县', 2, 0, 3); +INSERT INTO `area` VALUES (130526, 130500, '任县', 2, 0, 3); +INSERT INTO `area` VALUES (130527, 130500, '南和县', 2, 0, 3); +INSERT INTO `area` VALUES (130528, 130500, '宁晋县', 2, 0, 3); +INSERT INTO `area` VALUES (130529, 130500, '巨鹿县', 2, 0, 3); +INSERT INTO `area` VALUES (130530, 130500, '新河县', 2, 0, 3); +INSERT INTO `area` VALUES (130531, 130500, '广宗县', 2, 0, 3); +INSERT INTO `area` VALUES (130532, 130500, '平乡县', 2, 0, 3); +INSERT INTO `area` VALUES (130533, 130500, '威县', 2, 0, 3); +INSERT INTO `area` VALUES (130534, 130500, '清河县', 2, 0, 3); +INSERT INTO `area` VALUES (130535, 130500, '临西县', 2, 0, 3); +INSERT INTO `area` VALUES (130581, 130500, '南宫市', 2, 0, 3); +INSERT INTO `area` VALUES (130582, 130500, '沙河市', 2, 0, 3); +INSERT INTO `area` VALUES (130583, 130500, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (130600, 130000, '保定市', 2, 0, 2); +INSERT INTO `area` VALUES (130602, 130600, '新市区', 2, 0, 3); +INSERT INTO `area` VALUES (130603, 130600, '北市区', 2, 0, 3); +INSERT INTO `area` VALUES (130604, 130600, '南市区', 2, 0, 3); +INSERT INTO `area` VALUES (130621, 130600, '满城县', 2, 0, 3); +INSERT INTO `area` VALUES (130622, 130600, '清苑县', 2, 0, 3); +INSERT INTO `area` VALUES (130623, 130600, '涞水县', 2, 0, 3); +INSERT INTO `area` VALUES (130624, 130600, '阜平县', 2, 0, 3); +INSERT INTO `area` VALUES (130625, 130600, '徐水县', 2, 0, 3); +INSERT INTO `area` VALUES (130626, 130600, '定兴县', 2, 0, 3); +INSERT INTO `area` VALUES (130627, 130600, '唐县', 2, 0, 3); +INSERT INTO `area` VALUES (130628, 130600, '高阳县', 2, 0, 3); +INSERT INTO `area` VALUES (130629, 130600, '容城县', 2, 0, 3); +INSERT INTO `area` VALUES (130630, 130600, '涞源县', 2, 0, 3); +INSERT INTO `area` VALUES (130631, 130600, '望都县', 2, 0, 3); +INSERT INTO `area` VALUES (130632, 130600, '安新县', 2, 0, 3); +INSERT INTO `area` VALUES (130633, 130600, '易县', 2, 0, 3); +INSERT INTO `area` VALUES (130634, 130600, '曲阳县', 2, 0, 3); +INSERT INTO `area` VALUES (130635, 130600, '蠡县', 2, 0, 3); +INSERT INTO `area` VALUES (130636, 130600, '顺平县', 2, 0, 3); +INSERT INTO `area` VALUES (130637, 130600, '博野县', 2, 0, 3); +INSERT INTO `area` VALUES (130638, 130600, '雄县', 2, 0, 3); +INSERT INTO `area` VALUES (130681, 130600, '涿州市', 2, 0, 3); +INSERT INTO `area` VALUES (130682, 130600, '定州市', 2, 0, 3); +INSERT INTO `area` VALUES (130683, 130600, '安国市', 2, 0, 3); +INSERT INTO `area` VALUES (130684, 130600, '高碑店市', 2, 0, 3); +INSERT INTO `area` VALUES (130698, 130600, '高开区', 2, 0, 3); +INSERT INTO `area` VALUES (130699, 130600, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (130700, 130000, '张家口市', 2, 0, 2); +INSERT INTO `area` VALUES (130702, 130700, '桥东区', 2, 0, 3); +INSERT INTO `area` VALUES (130703, 130700, '桥西区', 2, 0, 3); +INSERT INTO `area` VALUES (130705, 130700, '宣化区', 2, 0, 3); +INSERT INTO `area` VALUES (130706, 130700, '下花园区', 2, 0, 3); +INSERT INTO `area` VALUES (130721, 130700, '宣化县', 2, 0, 3); +INSERT INTO `area` VALUES (130722, 130700, '张北县', 2, 0, 3); +INSERT INTO `area` VALUES (130723, 130700, '康保县', 2, 0, 3); +INSERT INTO `area` VALUES (130724, 130700, '沽源县', 2, 0, 3); +INSERT INTO `area` VALUES (130725, 130700, '尚义县', 2, 0, 3); +INSERT INTO `area` VALUES (130726, 130700, '蔚县', 2, 0, 3); +INSERT INTO `area` VALUES (130727, 130700, '阳原县', 2, 0, 3); +INSERT INTO `area` VALUES (130728, 130700, '怀安县', 2, 0, 3); +INSERT INTO `area` VALUES (130729, 130700, '万全县', 2, 0, 3); +INSERT INTO `area` VALUES (130730, 130700, '怀来县', 2, 0, 3); +INSERT INTO `area` VALUES (130731, 130700, '涿鹿县', 2, 0, 3); +INSERT INTO `area` VALUES (130732, 130700, '赤城县', 2, 0, 3); +INSERT INTO `area` VALUES (130733, 130700, '崇礼县', 2, 0, 3); +INSERT INTO `area` VALUES (130734, 130700, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (130800, 130000, '承德市', 2, 0, 2); +INSERT INTO `area` VALUES (130802, 130800, '双桥区', 2, 0, 3); +INSERT INTO `area` VALUES (130803, 130800, '双滦区', 2, 0, 3); +INSERT INTO `area` VALUES (130804, 130800, '鹰手营子矿区', 2, 0, 3); +INSERT INTO `area` VALUES (130821, 130800, '承德县', 2, 0, 3); +INSERT INTO `area` VALUES (130822, 130800, '兴隆县', 2, 0, 3); +INSERT INTO `area` VALUES (130823, 130800, '平泉县', 2, 0, 3); +INSERT INTO `area` VALUES (130824, 130800, '滦平县', 2, 0, 3); +INSERT INTO `area` VALUES (130825, 130800, '隆化县', 2, 0, 3); +INSERT INTO `area` VALUES (130826, 130800, '丰宁满族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (130827, 130800, '宽城满族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (130828, 130800, '围场满族蒙古族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (130829, 130800, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (130900, 130000, '沧州市', 2, 0, 2); +INSERT INTO `area` VALUES (130902, 130900, '新华区', 2, 0, 3); +INSERT INTO `area` VALUES (130903, 130900, '运河区', 2, 0, 3); +INSERT INTO `area` VALUES (130921, 130900, '沧县', 2, 0, 3); +INSERT INTO `area` VALUES (130922, 130900, '青县', 2, 0, 3); +INSERT INTO `area` VALUES (130923, 130900, '东光县', 2, 0, 3); +INSERT INTO `area` VALUES (130924, 130900, '海兴县', 2, 0, 3); +INSERT INTO `area` VALUES (130925, 130900, '盐山县', 2, 0, 3); +INSERT INTO `area` VALUES (130926, 130900, '肃宁县', 2, 0, 3); +INSERT INTO `area` VALUES (130927, 130900, '南皮县', 2, 0, 3); +INSERT INTO `area` VALUES (130928, 130900, '吴桥县', 2, 0, 3); +INSERT INTO `area` VALUES (130929, 130900, '献县', 2, 0, 3); +INSERT INTO `area` VALUES (130930, 130900, '孟村回族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (130981, 130900, '泊头市', 2, 0, 3); +INSERT INTO `area` VALUES (130982, 130900, '任丘市', 2, 0, 3); +INSERT INTO `area` VALUES (130983, 130900, '黄骅市', 2, 0, 3); +INSERT INTO `area` VALUES (130984, 130900, '河间市', 2, 0, 3); +INSERT INTO `area` VALUES (130985, 130900, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (131000, 130000, '廊坊市', 2, 0, 2); +INSERT INTO `area` VALUES (131002, 131000, '安次区', 2, 0, 3); +INSERT INTO `area` VALUES (131003, 131000, '广阳区', 2, 0, 3); +INSERT INTO `area` VALUES (131022, 131000, '固安县', 2, 0, 3); +INSERT INTO `area` VALUES (131023, 131000, '永清县', 2, 0, 3); +INSERT INTO `area` VALUES (131024, 131000, '香河县', 2, 0, 3); +INSERT INTO `area` VALUES (131025, 131000, '大城县', 2, 0, 3); +INSERT INTO `area` VALUES (131026, 131000, '文安县', 2, 0, 3); +INSERT INTO `area` VALUES (131028, 131000, '大厂回族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (131051, 131000, '开发区', 2, 0, 3); +INSERT INTO `area` VALUES (131052, 131000, '燕郊经济技术开发区', 2, 0, 3); +INSERT INTO `area` VALUES (131081, 131000, '霸州市', 2, 0, 3); +INSERT INTO `area` VALUES (131082, 131000, '三河市', 2, 0, 3); +INSERT INTO `area` VALUES (131083, 131000, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (131100, 130000, '衡水市', 2, 0, 2); +INSERT INTO `area` VALUES (131102, 131100, '桃城区', 2, 0, 3); +INSERT INTO `area` VALUES (131121, 131100, '枣强县', 2, 0, 3); +INSERT INTO `area` VALUES (131122, 131100, '武邑县', 2, 0, 3); +INSERT INTO `area` VALUES (131123, 131100, '武强县', 2, 0, 3); +INSERT INTO `area` VALUES (131124, 131100, '饶阳县', 2, 0, 3); +INSERT INTO `area` VALUES (131125, 131100, '安平县', 2, 0, 3); +INSERT INTO `area` VALUES (131126, 131100, '故城县', 2, 0, 3); +INSERT INTO `area` VALUES (131127, 131100, '景县', 2, 0, 3); +INSERT INTO `area` VALUES (131128, 131100, '阜城县', 2, 0, 3); +INSERT INTO `area` VALUES (131181, 131100, '冀州市', 2, 0, 3); +INSERT INTO `area` VALUES (131182, 131100, '深州市', 2, 0, 3); +INSERT INTO `area` VALUES (131183, 131100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (140000, 0, '山西省', 2, 0, 1); +INSERT INTO `area` VALUES (140100, 140000, '太原市', 2, 0, 2); +INSERT INTO `area` VALUES (140105, 140100, '小店区', 2, 0, 3); +INSERT INTO `area` VALUES (140106, 140100, '迎泽区', 2, 0, 3); +INSERT INTO `area` VALUES (140107, 140100, '杏花岭区', 2, 0, 3); +INSERT INTO `area` VALUES (140108, 140100, '尖草坪区', 2, 0, 3); +INSERT INTO `area` VALUES (140109, 140100, '万柏林区', 2, 0, 3); +INSERT INTO `area` VALUES (140110, 140100, '晋源区', 2, 0, 3); +INSERT INTO `area` VALUES (140121, 140100, '清徐县', 2, 0, 3); +INSERT INTO `area` VALUES (140122, 140100, '阳曲县', 2, 0, 3); +INSERT INTO `area` VALUES (140123, 140100, '娄烦县', 2, 0, 3); +INSERT INTO `area` VALUES (140181, 140100, '古交市', 2, 0, 3); +INSERT INTO `area` VALUES (140182, 140100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (140200, 140000, '大同市', 2, 0, 2); +INSERT INTO `area` VALUES (140202, 140200, '城区', 2, 0, 3); +INSERT INTO `area` VALUES (140203, 140200, '矿区', 2, 0, 3); +INSERT INTO `area` VALUES (140211, 140200, '南郊区', 2, 0, 3); +INSERT INTO `area` VALUES (140212, 140200, '新荣区', 2, 0, 3); +INSERT INTO `area` VALUES (140221, 140200, '阳高县', 2, 0, 3); +INSERT INTO `area` VALUES (140222, 140200, '天镇县', 2, 0, 3); +INSERT INTO `area` VALUES (140223, 140200, '广灵县', 2, 0, 3); +INSERT INTO `area` VALUES (140224, 140200, '灵丘县', 2, 0, 3); +INSERT INTO `area` VALUES (140225, 140200, '浑源县', 2, 0, 3); +INSERT INTO `area` VALUES (140226, 140200, '左云县', 2, 0, 3); +INSERT INTO `area` VALUES (140227, 140200, '大同县', 2, 0, 3); +INSERT INTO `area` VALUES (140228, 140200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (140300, 140000, '阳泉市', 2, 0, 2); +INSERT INTO `area` VALUES (140302, 140300, '城区', 2, 0, 3); +INSERT INTO `area` VALUES (140303, 140300, '矿区', 2, 0, 3); +INSERT INTO `area` VALUES (140311, 140300, '郊区', 2, 0, 3); +INSERT INTO `area` VALUES (140321, 140300, '平定县', 2, 0, 3); +INSERT INTO `area` VALUES (140322, 140300, '盂县', 2, 0, 3); +INSERT INTO `area` VALUES (140323, 140300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (140400, 140000, '长治市', 2, 0, 2); +INSERT INTO `area` VALUES (140402, 140400, '城区', 2, 0, 3); +INSERT INTO `area` VALUES (140411, 140400, '郊区', 2, 0, 3); +INSERT INTO `area` VALUES (140421, 140400, '长治县', 2, 0, 3); +INSERT INTO `area` VALUES (140423, 140400, '襄垣县', 2, 0, 3); +INSERT INTO `area` VALUES (140424, 140400, '屯留县', 2, 0, 3); +INSERT INTO `area` VALUES (140425, 140400, '平顺县', 2, 0, 3); +INSERT INTO `area` VALUES (140426, 140400, '黎城县', 2, 0, 3); +INSERT INTO `area` VALUES (140427, 140400, '壶关县', 2, 0, 3); +INSERT INTO `area` VALUES (140428, 140400, '长子县', 2, 0, 3); +INSERT INTO `area` VALUES (140429, 140400, '武乡县', 2, 0, 3); +INSERT INTO `area` VALUES (140430, 140400, '沁县', 2, 0, 3); +INSERT INTO `area` VALUES (140431, 140400, '沁源县', 2, 0, 3); +INSERT INTO `area` VALUES (140481, 140400, '潞城市', 2, 0, 3); +INSERT INTO `area` VALUES (140482, 140400, '城区', 2, 0, 3); +INSERT INTO `area` VALUES (140483, 140400, '郊区', 2, 0, 3); +INSERT INTO `area` VALUES (140484, 140400, '高新区', 2, 0, 3); +INSERT INTO `area` VALUES (140485, 140400, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (140500, 140000, '晋城市', 2, 0, 2); +INSERT INTO `area` VALUES (140502, 140500, '城区', 2, 0, 3); +INSERT INTO `area` VALUES (140521, 140500, '沁水县', 2, 0, 3); +INSERT INTO `area` VALUES (140522, 140500, '阳城县', 2, 0, 3); +INSERT INTO `area` VALUES (140524, 140500, '陵川县', 2, 0, 3); +INSERT INTO `area` VALUES (140525, 140500, '泽州县', 2, 0, 3); +INSERT INTO `area` VALUES (140581, 140500, '高平市', 2, 0, 3); +INSERT INTO `area` VALUES (140582, 140500, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (140600, 140000, '朔州市', 2, 0, 2); +INSERT INTO `area` VALUES (140602, 140600, '朔城区', 2, 0, 3); +INSERT INTO `area` VALUES (140603, 140600, '平鲁区', 2, 0, 3); +INSERT INTO `area` VALUES (140621, 140600, '山阴县', 2, 0, 3); +INSERT INTO `area` VALUES (140622, 140600, '应县', 2, 0, 3); +INSERT INTO `area` VALUES (140623, 140600, '右玉县', 2, 0, 3); +INSERT INTO `area` VALUES (140624, 140600, '怀仁县', 2, 0, 3); +INSERT INTO `area` VALUES (140625, 140600, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (140700, 140000, '晋中市', 2, 0, 2); +INSERT INTO `area` VALUES (140702, 140700, '榆次区', 2, 0, 3); +INSERT INTO `area` VALUES (140721, 140700, '榆社县', 2, 0, 3); +INSERT INTO `area` VALUES (140722, 140700, '左权县', 2, 0, 3); +INSERT INTO `area` VALUES (140723, 140700, '和顺县', 2, 0, 3); +INSERT INTO `area` VALUES (140724, 140700, '昔阳县', 2, 0, 3); +INSERT INTO `area` VALUES (140725, 140700, '寿阳县', 2, 0, 3); +INSERT INTO `area` VALUES (140726, 140700, '太谷县', 2, 0, 3); +INSERT INTO `area` VALUES (140727, 140700, '祁县', 2, 0, 3); +INSERT INTO `area` VALUES (140728, 140700, '平遥县', 2, 0, 3); +INSERT INTO `area` VALUES (140729, 140700, '灵石县', 2, 0, 3); +INSERT INTO `area` VALUES (140781, 140700, '介休市', 2, 0, 3); +INSERT INTO `area` VALUES (140782, 140700, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (140800, 140000, '运城市', 2, 0, 2); +INSERT INTO `area` VALUES (140802, 140800, '盐湖区', 2, 0, 3); +INSERT INTO `area` VALUES (140821, 140800, '临猗县', 2, 0, 3); +INSERT INTO `area` VALUES (140822, 140800, '万荣县', 2, 0, 3); +INSERT INTO `area` VALUES (140823, 140800, '闻喜县', 2, 0, 3); +INSERT INTO `area` VALUES (140824, 140800, '稷山县', 2, 0, 3); +INSERT INTO `area` VALUES (140825, 140800, '新绛县', 2, 0, 3); +INSERT INTO `area` VALUES (140826, 140800, '绛县', 2, 0, 3); +INSERT INTO `area` VALUES (140827, 140800, '垣曲县', 2, 0, 3); +INSERT INTO `area` VALUES (140828, 140800, '夏县', 2, 0, 3); +INSERT INTO `area` VALUES (140829, 140800, '平陆县', 2, 0, 3); +INSERT INTO `area` VALUES (140830, 140800, '芮城县', 2, 0, 3); +INSERT INTO `area` VALUES (140881, 140800, '永济市', 2, 0, 3); +INSERT INTO `area` VALUES (140882, 140800, '河津市', 2, 0, 3); +INSERT INTO `area` VALUES (140883, 140800, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (140900, 140000, '忻州市', 2, 0, 2); +INSERT INTO `area` VALUES (140902, 140900, '忻府区', 2, 0, 3); +INSERT INTO `area` VALUES (140921, 140900, '定襄县', 2, 0, 3); +INSERT INTO `area` VALUES (140922, 140900, '五台县', 2, 0, 3); +INSERT INTO `area` VALUES (140923, 140900, '代县', 2, 0, 3); +INSERT INTO `area` VALUES (140924, 140900, '繁峙县', 2, 0, 3); +INSERT INTO `area` VALUES (140925, 140900, '宁武县', 2, 0, 3); +INSERT INTO `area` VALUES (140926, 140900, '静乐县', 2, 0, 3); +INSERT INTO `area` VALUES (140927, 140900, '神池县', 2, 0, 3); +INSERT INTO `area` VALUES (140928, 140900, '五寨县', 2, 0, 3); +INSERT INTO `area` VALUES (140929, 140900, '岢岚县', 2, 0, 3); +INSERT INTO `area` VALUES (140930, 140900, '河曲县', 2, 0, 3); +INSERT INTO `area` VALUES (140931, 140900, '保德县', 2, 0, 3); +INSERT INTO `area` VALUES (140932, 140900, '偏关县', 2, 0, 3); +INSERT INTO `area` VALUES (140981, 140900, '原平市', 2, 0, 3); +INSERT INTO `area` VALUES (140982, 140900, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (141000, 140000, '临汾市', 2, 0, 2); +INSERT INTO `area` VALUES (141002, 141000, '尧都区', 2, 0, 3); +INSERT INTO `area` VALUES (141021, 141000, '曲沃县', 2, 0, 3); +INSERT INTO `area` VALUES (141022, 141000, '翼城县', 2, 0, 3); +INSERT INTO `area` VALUES (141023, 141000, '襄汾县', 2, 0, 3); +INSERT INTO `area` VALUES (141024, 141000, '洪洞县', 2, 0, 3); +INSERT INTO `area` VALUES (141025, 141000, '古县', 2, 0, 3); +INSERT INTO `area` VALUES (141026, 141000, '安泽县', 2, 0, 3); +INSERT INTO `area` VALUES (141027, 141000, '浮山县', 2, 0, 3); +INSERT INTO `area` VALUES (141028, 141000, '吉县', 2, 0, 3); +INSERT INTO `area` VALUES (141029, 141000, '乡宁县', 2, 0, 3); +INSERT INTO `area` VALUES (141030, 141000, '大宁县', 2, 0, 3); +INSERT INTO `area` VALUES (141031, 141000, '隰县', 2, 0, 3); +INSERT INTO `area` VALUES (141032, 141000, '永和县', 2, 0, 3); +INSERT INTO `area` VALUES (141033, 141000, '蒲县', 2, 0, 3); +INSERT INTO `area` VALUES (141034, 141000, '汾西县', 2, 0, 3); +INSERT INTO `area` VALUES (141081, 141000, '侯马市', 2, 0, 3); +INSERT INTO `area` VALUES (141082, 141000, '霍州市', 2, 0, 3); +INSERT INTO `area` VALUES (141083, 141000, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (141100, 140000, '吕梁市', 2, 0, 2); +INSERT INTO `area` VALUES (141102, 141100, '离石区', 2, 0, 3); +INSERT INTO `area` VALUES (141121, 141100, '文水县', 2, 0, 3); +INSERT INTO `area` VALUES (141122, 141100, '交城县', 2, 0, 3); +INSERT INTO `area` VALUES (141123, 141100, '兴县', 2, 0, 3); +INSERT INTO `area` VALUES (141124, 141100, '临县', 2, 0, 3); +INSERT INTO `area` VALUES (141125, 141100, '柳林县', 2, 0, 3); +INSERT INTO `area` VALUES (141126, 141100, '石楼县', 2, 0, 3); +INSERT INTO `area` VALUES (141127, 141100, '岚县', 2, 0, 3); +INSERT INTO `area` VALUES (141128, 141100, '方山县', 2, 0, 3); +INSERT INTO `area` VALUES (141129, 141100, '中阳县', 2, 0, 3); +INSERT INTO `area` VALUES (141130, 141100, '交口县', 2, 0, 3); +INSERT INTO `area` VALUES (141181, 141100, '孝义市', 2, 0, 3); +INSERT INTO `area` VALUES (141182, 141100, '汾阳市', 2, 0, 3); +INSERT INTO `area` VALUES (141183, 141100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (150000, 0, '内蒙古自治区', 2, 0, 1); +INSERT INTO `area` VALUES (150100, 150000, '呼和浩特市', 2, 0, 2); +INSERT INTO `area` VALUES (150102, 150100, '新城区', 2, 0, 3); +INSERT INTO `area` VALUES (150103, 150100, '回民区', 2, 0, 3); +INSERT INTO `area` VALUES (150104, 150100, '玉泉区', 2, 0, 3); +INSERT INTO `area` VALUES (150105, 150100, '赛罕区', 2, 0, 3); +INSERT INTO `area` VALUES (150121, 150100, '土默特左旗', 2, 0, 3); +INSERT INTO `area` VALUES (150122, 150100, '托克托县', 2, 0, 3); +INSERT INTO `area` VALUES (150123, 150100, '和林格尔县', 2, 0, 3); +INSERT INTO `area` VALUES (150124, 150100, '清水河县', 2, 0, 3); +INSERT INTO `area` VALUES (150125, 150100, '武川县', 2, 0, 3); +INSERT INTO `area` VALUES (150126, 150100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (150200, 150000, '包头市', 2, 0, 2); +INSERT INTO `area` VALUES (150202, 150200, '东河区', 2, 0, 3); +INSERT INTO `area` VALUES (150203, 150200, '昆都仑区', 2, 0, 3); +INSERT INTO `area` VALUES (150204, 150200, '青山区', 2, 0, 3); +INSERT INTO `area` VALUES (150205, 150200, '石拐区', 2, 0, 3); +INSERT INTO `area` VALUES (150206, 150200, '白云鄂博矿区', 2, 0, 3); +INSERT INTO `area` VALUES (150207, 150200, '九原区', 2, 0, 3); +INSERT INTO `area` VALUES (150221, 150200, '土默特右旗', 2, 0, 3); +INSERT INTO `area` VALUES (150222, 150200, '固阳县', 2, 0, 3); +INSERT INTO `area` VALUES (150223, 150200, '达尔罕茂明安联合旗', 2, 0, 3); +INSERT INTO `area` VALUES (150224, 150200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (150300, 150000, '乌海市', 2, 0, 2); +INSERT INTO `area` VALUES (150302, 150300, '海勃湾区', 2, 0, 3); +INSERT INTO `area` VALUES (150303, 150300, '海南区', 2, 0, 3); +INSERT INTO `area` VALUES (150304, 150300, '乌达区', 2, 0, 3); +INSERT INTO `area` VALUES (150305, 150300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (150400, 150000, '赤峰市', 2, 0, 2); +INSERT INTO `area` VALUES (150402, 150400, '红山区', 2, 0, 3); +INSERT INTO `area` VALUES (150403, 150400, '元宝山区', 2, 0, 3); +INSERT INTO `area` VALUES (150404, 150400, '松山区', 2, 0, 3); +INSERT INTO `area` VALUES (150421, 150400, '阿鲁科尔沁旗', 2, 0, 3); +INSERT INTO `area` VALUES (150422, 150400, '巴林左旗', 2, 0, 3); +INSERT INTO `area` VALUES (150423, 150400, '巴林右旗', 2, 0, 3); +INSERT INTO `area` VALUES (150424, 150400, '林西县', 2, 0, 3); +INSERT INTO `area` VALUES (150425, 150400, '克什克腾旗', 2, 0, 3); +INSERT INTO `area` VALUES (150426, 150400, '翁牛特旗', 2, 0, 3); +INSERT INTO `area` VALUES (150428, 150400, '喀喇沁旗', 2, 0, 3); +INSERT INTO `area` VALUES (150429, 150400, '宁城县', 2, 0, 3); +INSERT INTO `area` VALUES (150430, 150400, '敖汉旗', 2, 0, 3); +INSERT INTO `area` VALUES (150431, 150400, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (150500, 150000, '通辽市', 2, 0, 2); +INSERT INTO `area` VALUES (150502, 150500, '科尔沁区', 2, 0, 3); +INSERT INTO `area` VALUES (150521, 150500, '科尔沁左翼中旗', 2, 0, 3); +INSERT INTO `area` VALUES (150522, 150500, '科尔沁左翼后旗', 2, 0, 3); +INSERT INTO `area` VALUES (150523, 150500, '开鲁县', 2, 0, 3); +INSERT INTO `area` VALUES (150524, 150500, '库伦旗', 2, 0, 3); +INSERT INTO `area` VALUES (150525, 150500, '奈曼旗', 2, 0, 3); +INSERT INTO `area` VALUES (150526, 150500, '扎鲁特旗', 2, 0, 3); +INSERT INTO `area` VALUES (150581, 150500, '霍林郭勒市', 2, 0, 3); +INSERT INTO `area` VALUES (150582, 150500, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (150600, 150000, '鄂尔多斯市', 2, 0, 2); +INSERT INTO `area` VALUES (150602, 150600, '东胜区', 2, 0, 3); +INSERT INTO `area` VALUES (150621, 150600, '达拉特旗', 2, 0, 3); +INSERT INTO `area` VALUES (150622, 150600, '准格尔旗', 2, 0, 3); +INSERT INTO `area` VALUES (150623, 150600, '鄂托克前旗', 2, 0, 3); +INSERT INTO `area` VALUES (150624, 150600, '鄂托克旗', 2, 0, 3); +INSERT INTO `area` VALUES (150625, 150600, '杭锦旗', 2, 0, 3); +INSERT INTO `area` VALUES (150626, 150600, '乌审旗', 2, 0, 3); +INSERT INTO `area` VALUES (150627, 150600, '伊金霍洛旗', 2, 0, 3); +INSERT INTO `area` VALUES (150628, 150600, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (150700, 150000, '呼伦贝尔市', 2, 0, 2); +INSERT INTO `area` VALUES (150702, 150700, '海拉尔区', 2, 0, 3); +INSERT INTO `area` VALUES (150703, 150700, '扎赉诺尔区', 2, 0, 3); +INSERT INTO `area` VALUES (150721, 150700, '阿荣旗', 2, 0, 3); +INSERT INTO `area` VALUES (150722, 150700, '莫力达瓦达斡尔族自治旗', 2, 0, 3); +INSERT INTO `area` VALUES (150723, 150700, '鄂伦春自治旗', 2, 0, 3); +INSERT INTO `area` VALUES (150724, 150700, '鄂温克族自治旗', 2, 0, 3); +INSERT INTO `area` VALUES (150725, 150700, '陈巴尔虎旗', 2, 0, 3); +INSERT INTO `area` VALUES (150726, 150700, '新巴尔虎左旗', 2, 0, 3); +INSERT INTO `area` VALUES (150727, 150700, '新巴尔虎右旗', 2, 0, 3); +INSERT INTO `area` VALUES (150781, 150700, '满洲里市', 2, 0, 3); +INSERT INTO `area` VALUES (150782, 150700, '牙克石市', 2, 0, 3); +INSERT INTO `area` VALUES (150783, 150700, '扎兰屯市', 2, 0, 3); +INSERT INTO `area` VALUES (150784, 150700, '额尔古纳市', 2, 0, 3); +INSERT INTO `area` VALUES (150785, 150700, '根河市', 2, 0, 3); +INSERT INTO `area` VALUES (150786, 150700, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (150800, 150000, '巴彦淖尔市', 2, 0, 2); +INSERT INTO `area` VALUES (150802, 150800, '临河区', 2, 0, 3); +INSERT INTO `area` VALUES (150821, 150800, '五原县', 2, 0, 3); +INSERT INTO `area` VALUES (150822, 150800, '磴口县', 2, 0, 3); +INSERT INTO `area` VALUES (150823, 150800, '乌拉特前旗', 2, 0, 3); +INSERT INTO `area` VALUES (150824, 150800, '乌拉特中旗', 2, 0, 3); +INSERT INTO `area` VALUES (150825, 150800, '乌拉特后旗', 2, 0, 3); +INSERT INTO `area` VALUES (150826, 150800, '杭锦后旗', 2, 0, 3); +INSERT INTO `area` VALUES (150827, 150800, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (150900, 150000, '乌兰察布市', 2, 0, 2); +INSERT INTO `area` VALUES (150902, 150900, '集宁区', 2, 0, 3); +INSERT INTO `area` VALUES (150921, 150900, '卓资县', 2, 0, 3); +INSERT INTO `area` VALUES (150922, 150900, '化德县', 2, 0, 3); +INSERT INTO `area` VALUES (150923, 150900, '商都县', 2, 0, 3); +INSERT INTO `area` VALUES (150924, 150900, '兴和县', 2, 0, 3); +INSERT INTO `area` VALUES (150925, 150900, '凉城县', 2, 0, 3); +INSERT INTO `area` VALUES (150926, 150900, '察哈尔右翼前旗', 2, 0, 3); +INSERT INTO `area` VALUES (150927, 150900, '察哈尔右翼中旗', 2, 0, 3); +INSERT INTO `area` VALUES (150928, 150900, '察哈尔右翼后旗', 2, 0, 3); +INSERT INTO `area` VALUES (150929, 150900, '四子王旗', 2, 0, 3); +INSERT INTO `area` VALUES (150981, 150900, '丰镇市', 2, 0, 3); +INSERT INTO `area` VALUES (150982, 150900, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (152200, 150000, '兴安盟', 2, 0, 2); +INSERT INTO `area` VALUES (152201, 152200, '乌兰浩特市', 2, 0, 3); +INSERT INTO `area` VALUES (152202, 152200, '阿尔山市', 2, 0, 3); +INSERT INTO `area` VALUES (152221, 152200, '科尔沁右翼前旗', 2, 0, 3); +INSERT INTO `area` VALUES (152222, 152200, '科尔沁右翼中旗', 2, 0, 3); +INSERT INTO `area` VALUES (152223, 152200, '扎赉特旗', 2, 0, 3); +INSERT INTO `area` VALUES (152224, 152200, '突泉县', 2, 0, 3); +INSERT INTO `area` VALUES (152225, 152200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (152500, 150000, '锡林郭勒盟', 2, 0, 2); +INSERT INTO `area` VALUES (152501, 152500, '二连浩特市', 2, 0, 3); +INSERT INTO `area` VALUES (152502, 152500, '锡林浩特市', 2, 0, 3); +INSERT INTO `area` VALUES (152522, 152500, '阿巴嘎旗', 2, 0, 3); +INSERT INTO `area` VALUES (152523, 152500, '苏尼特左旗', 2, 0, 3); +INSERT INTO `area` VALUES (152524, 152500, '苏尼特右旗', 2, 0, 3); +INSERT INTO `area` VALUES (152525, 152500, '东乌珠穆沁旗', 2, 0, 3); +INSERT INTO `area` VALUES (152526, 152500, '西乌珠穆沁旗', 2, 0, 3); +INSERT INTO `area` VALUES (152527, 152500, '太仆寺旗', 2, 0, 3); +INSERT INTO `area` VALUES (152528, 152500, '镶黄旗', 2, 0, 3); +INSERT INTO `area` VALUES (152529, 152500, '正镶白旗', 2, 0, 3); +INSERT INTO `area` VALUES (152530, 152500, '正蓝旗', 2, 0, 3); +INSERT INTO `area` VALUES (152531, 152500, '多伦县', 2, 0, 3); +INSERT INTO `area` VALUES (152532, 152500, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (152900, 150000, '阿拉善盟', 2, 0, 2); +INSERT INTO `area` VALUES (152921, 152900, '阿拉善左旗', 2, 0, 3); +INSERT INTO `area` VALUES (152922, 152900, '阿拉善右旗', 2, 0, 3); +INSERT INTO `area` VALUES (152923, 152900, '额济纳旗', 2, 0, 3); +INSERT INTO `area` VALUES (152924, 152900, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (210000, 0, '辽宁省', 2, 0, 1); +INSERT INTO `area` VALUES (210100, 210000, '沈阳市', 2, 0, 2); +INSERT INTO `area` VALUES (210102, 210100, '和平区', 2, 0, 3); +INSERT INTO `area` VALUES (210103, 210100, '沈河区', 2, 0, 3); +INSERT INTO `area` VALUES (210104, 210100, '大东区', 2, 0, 3); +INSERT INTO `area` VALUES (210105, 210100, '皇姑区', 2, 0, 3); +INSERT INTO `area` VALUES (210106, 210100, '铁西区', 2, 0, 3); +INSERT INTO `area` VALUES (210111, 210100, '苏家屯区', 2, 0, 3); +INSERT INTO `area` VALUES (210112, 210100, '浑南区', 2, 0, 3); +INSERT INTO `area` VALUES (210113, 210100, '沈北新区', 2, 0, 3); +INSERT INTO `area` VALUES (210114, 210100, '于洪区', 2, 0, 3); +INSERT INTO `area` VALUES (210122, 210100, '辽中县', 2, 0, 3); +INSERT INTO `area` VALUES (210123, 210100, '康平县', 2, 0, 3); +INSERT INTO `area` VALUES (210124, 210100, '法库县', 2, 0, 3); +INSERT INTO `area` VALUES (210181, 210100, '新民市', 2, 0, 3); +INSERT INTO `area` VALUES (210182, 210100, '浑南新区', 2, 0, 3); +INSERT INTO `area` VALUES (210183, 210100, '张士开发区', 2, 0, 3); +INSERT INTO `area` VALUES (210184, 210100, '沈北新区', 2, 0, 3); +INSERT INTO `area` VALUES (210185, 210100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (210200, 210000, '大连市', 2, 0, 2); +INSERT INTO `area` VALUES (210202, 210200, '中山区', 2, 0, 3); +INSERT INTO `area` VALUES (210203, 210200, '西岗区', 2, 0, 3); +INSERT INTO `area` VALUES (210204, 210200, '沙河口区', 2, 0, 3); +INSERT INTO `area` VALUES (210211, 210200, '甘井子区', 2, 0, 3); +INSERT INTO `area` VALUES (210212, 210200, '旅顺口区', 2, 0, 3); +INSERT INTO `area` VALUES (210213, 210200, '金州区', 2, 0, 3); +INSERT INTO `area` VALUES (210224, 210200, '长海县', 2, 0, 3); +INSERT INTO `area` VALUES (210251, 210200, '开发区', 2, 0, 3); +INSERT INTO `area` VALUES (210281, 210200, '瓦房店市', 2, 0, 3); +INSERT INTO `area` VALUES (210282, 210200, '普兰店市', 2, 0, 3); +INSERT INTO `area` VALUES (210283, 210200, '庄河市', 2, 0, 3); +INSERT INTO `area` VALUES (210297, 210200, '岭前区', 2, 0, 3); +INSERT INTO `area` VALUES (210298, 210200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (210300, 210000, '鞍山市', 2, 0, 2); +INSERT INTO `area` VALUES (210302, 210300, '铁东区', 2, 0, 3); +INSERT INTO `area` VALUES (210303, 210300, '铁西区', 2, 0, 3); +INSERT INTO `area` VALUES (210304, 210300, '立山区', 2, 0, 3); +INSERT INTO `area` VALUES (210311, 210300, '千山区', 2, 0, 3); +INSERT INTO `area` VALUES (210321, 210300, '台安县', 2, 0, 3); +INSERT INTO `area` VALUES (210323, 210300, '岫岩满族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (210351, 210300, '高新区', 2, 0, 3); +INSERT INTO `area` VALUES (210381, 210300, '海城市', 2, 0, 3); +INSERT INTO `area` VALUES (210382, 210300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (210400, 210000, '抚顺市', 2, 0, 2); +INSERT INTO `area` VALUES (210402, 210400, '新抚区', 2, 0, 3); +INSERT INTO `area` VALUES (210403, 210400, '东洲区', 2, 0, 3); +INSERT INTO `area` VALUES (210404, 210400, '望花区', 2, 0, 3); +INSERT INTO `area` VALUES (210411, 210400, '顺城区', 2, 0, 3); +INSERT INTO `area` VALUES (210421, 210400, '抚顺县', 2, 0, 3); +INSERT INTO `area` VALUES (210422, 210400, '新宾满族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (210423, 210400, '清原满族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (210424, 210400, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (210500, 210000, '本溪市', 2, 0, 2); +INSERT INTO `area` VALUES (210502, 210500, '平山区', 2, 0, 3); +INSERT INTO `area` VALUES (210503, 210500, '溪湖区', 2, 0, 3); +INSERT INTO `area` VALUES (210504, 210500, '明山区', 2, 0, 3); +INSERT INTO `area` VALUES (210505, 210500, '南芬区', 2, 0, 3); +INSERT INTO `area` VALUES (210521, 210500, '本溪满族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (210522, 210500, '桓仁满族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (210523, 210500, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (210600, 210000, '丹东市', 2, 0, 2); +INSERT INTO `area` VALUES (210602, 210600, '元宝区', 2, 0, 3); +INSERT INTO `area` VALUES (210603, 210600, '振兴区', 2, 0, 3); +INSERT INTO `area` VALUES (210604, 210600, '振安区', 2, 0, 3); +INSERT INTO `area` VALUES (210624, 210600, '宽甸满族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (210681, 210600, '东港市', 2, 0, 3); +INSERT INTO `area` VALUES (210682, 210600, '凤城市', 2, 0, 3); +INSERT INTO `area` VALUES (210683, 210600, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (210700, 210000, '锦州市', 2, 0, 2); +INSERT INTO `area` VALUES (210702, 210700, '古塔区', 2, 0, 3); +INSERT INTO `area` VALUES (210703, 210700, '凌河区', 2, 0, 3); +INSERT INTO `area` VALUES (210711, 210700, '太和区', 2, 0, 3); +INSERT INTO `area` VALUES (210726, 210700, '黑山县', 2, 0, 3); +INSERT INTO `area` VALUES (210727, 210700, '义县', 2, 0, 3); +INSERT INTO `area` VALUES (210781, 210700, '凌海市', 2, 0, 3); +INSERT INTO `area` VALUES (210782, 210700, '北镇市', 2, 0, 3); +INSERT INTO `area` VALUES (210783, 210700, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (210800, 210000, '营口市', 2, 0, 2); +INSERT INTO `area` VALUES (210802, 210800, '站前区', 2, 0, 3); +INSERT INTO `area` VALUES (210803, 210800, '西市区', 2, 0, 3); +INSERT INTO `area` VALUES (210804, 210800, '鲅鱼圈区', 2, 0, 3); +INSERT INTO `area` VALUES (210811, 210800, '老边区', 2, 0, 3); +INSERT INTO `area` VALUES (210881, 210800, '盖州市', 2, 0, 3); +INSERT INTO `area` VALUES (210882, 210800, '大石桥市', 2, 0, 3); +INSERT INTO `area` VALUES (210883, 210800, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (210900, 210000, '阜新市', 2, 0, 2); +INSERT INTO `area` VALUES (210902, 210900, '海州区', 2, 0, 3); +INSERT INTO `area` VALUES (210903, 210900, '新邱区', 2, 0, 3); +INSERT INTO `area` VALUES (210904, 210900, '太平区', 2, 0, 3); +INSERT INTO `area` VALUES (210905, 210900, '清河门区', 2, 0, 3); +INSERT INTO `area` VALUES (210911, 210900, '细河区', 2, 0, 3); +INSERT INTO `area` VALUES (210921, 210900, '阜新蒙古族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (210922, 210900, '彰武县', 2, 0, 3); +INSERT INTO `area` VALUES (210923, 210900, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (211000, 210000, '辽阳市', 2, 0, 2); +INSERT INTO `area` VALUES (211002, 211000, '白塔区', 2, 0, 3); +INSERT INTO `area` VALUES (211003, 211000, '文圣区', 2, 0, 3); +INSERT INTO `area` VALUES (211004, 211000, '宏伟区', 2, 0, 3); +INSERT INTO `area` VALUES (211005, 211000, '弓长岭区', 2, 0, 3); +INSERT INTO `area` VALUES (211011, 211000, '太子河区', 2, 0, 3); +INSERT INTO `area` VALUES (211021, 211000, '辽阳县', 2, 0, 3); +INSERT INTO `area` VALUES (211081, 211000, '灯塔市', 2, 0, 3); +INSERT INTO `area` VALUES (211082, 211000, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (211100, 210000, '盘锦市', 2, 0, 2); +INSERT INTO `area` VALUES (211102, 211100, '双台子区', 2, 0, 3); +INSERT INTO `area` VALUES (211103, 211100, '兴隆台区', 2, 0, 3); +INSERT INTO `area` VALUES (211121, 211100, '大洼县', 2, 0, 3); +INSERT INTO `area` VALUES (211122, 211100, '盘山县', 2, 0, 3); +INSERT INTO `area` VALUES (211123, 211100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (211200, 210000, '铁岭市', 2, 0, 2); +INSERT INTO `area` VALUES (211202, 211200, '银州区', 2, 0, 3); +INSERT INTO `area` VALUES (211204, 211200, '清河区', 2, 0, 3); +INSERT INTO `area` VALUES (211221, 211200, '铁岭县', 2, 0, 3); +INSERT INTO `area` VALUES (211223, 211200, '西丰县', 2, 0, 3); +INSERT INTO `area` VALUES (211224, 211200, '昌图县', 2, 0, 3); +INSERT INTO `area` VALUES (211281, 211200, '调兵山市', 2, 0, 3); +INSERT INTO `area` VALUES (211282, 211200, '开原市', 2, 0, 3); +INSERT INTO `area` VALUES (211283, 211200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (211300, 210000, '朝阳市', 2, 0, 2); +INSERT INTO `area` VALUES (211302, 211300, '双塔区', 2, 0, 3); +INSERT INTO `area` VALUES (211303, 211300, '龙城区', 2, 0, 3); +INSERT INTO `area` VALUES (211321, 211300, '朝阳县', 2, 0, 3); +INSERT INTO `area` VALUES (211322, 211300, '建平县', 2, 0, 3); +INSERT INTO `area` VALUES (211324, 211300, '喀喇沁左翼蒙古族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (211381, 211300, '北票市', 2, 0, 3); +INSERT INTO `area` VALUES (211382, 211300, '凌源市', 2, 0, 3); +INSERT INTO `area` VALUES (211383, 211300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (211400, 210000, '葫芦岛市', 2, 0, 2); +INSERT INTO `area` VALUES (211402, 211400, '连山区', 2, 0, 3); +INSERT INTO `area` VALUES (211403, 211400, '龙港区', 2, 0, 3); +INSERT INTO `area` VALUES (211404, 211400, '南票区', 2, 0, 3); +INSERT INTO `area` VALUES (211421, 211400, '绥中县', 2, 0, 3); +INSERT INTO `area` VALUES (211422, 211400, '建昌县', 2, 0, 3); +INSERT INTO `area` VALUES (211481, 211400, '兴城市', 2, 0, 3); +INSERT INTO `area` VALUES (211482, 211400, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (220000, 0, '吉林省', 2, 0, 1); +INSERT INTO `area` VALUES (220100, 220000, '长春市', 2, 0, 2); +INSERT INTO `area` VALUES (220102, 220100, '南关区', 2, 0, 3); +INSERT INTO `area` VALUES (220103, 220100, '宽城区', 2, 0, 3); +INSERT INTO `area` VALUES (220104, 220100, '朝阳区', 2, 0, 3); +INSERT INTO `area` VALUES (220105, 220100, '二道区', 2, 0, 3); +INSERT INTO `area` VALUES (220106, 220100, '绿园区', 2, 0, 3); +INSERT INTO `area` VALUES (220112, 220100, '双阳区', 2, 0, 3); +INSERT INTO `area` VALUES (220113, 220100, '九台区', 2, 0, 3); +INSERT INTO `area` VALUES (220122, 220100, '农安县', 2, 0, 3); +INSERT INTO `area` VALUES (220181, 220100, '九台市', 2, 0, 3); +INSERT INTO `area` VALUES (220182, 220100, '榆树市', 2, 0, 3); +INSERT INTO `area` VALUES (220183, 220100, '德惠市', 2, 0, 3); +INSERT INTO `area` VALUES (220184, 220100, '高新技术产业开发区', 2, 0, 3); +INSERT INTO `area` VALUES (220185, 220100, '汽车产业开发区', 2, 0, 3); +INSERT INTO `area` VALUES (220186, 220100, '经济技术开发区', 2, 0, 3); +INSERT INTO `area` VALUES (220187, 220100, '净月旅游开发区', 2, 0, 3); +INSERT INTO `area` VALUES (220188, 220100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (220200, 220000, '吉林市', 2, 0, 2); +INSERT INTO `area` VALUES (220202, 220200, '昌邑区', 2, 0, 3); +INSERT INTO `area` VALUES (220203, 220200, '龙潭区', 2, 0, 3); +INSERT INTO `area` VALUES (220204, 220200, '船营区', 2, 0, 3); +INSERT INTO `area` VALUES (220211, 220200, '丰满区', 2, 0, 3); +INSERT INTO `area` VALUES (220221, 220200, '永吉县', 2, 0, 3); +INSERT INTO `area` VALUES (220281, 220200, '蛟河市', 2, 0, 3); +INSERT INTO `area` VALUES (220282, 220200, '桦甸市', 2, 0, 3); +INSERT INTO `area` VALUES (220283, 220200, '舒兰市', 2, 0, 3); +INSERT INTO `area` VALUES (220284, 220200, '磐石市', 2, 0, 3); +INSERT INTO `area` VALUES (220285, 220200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (220300, 220000, '四平市', 2, 0, 2); +INSERT INTO `area` VALUES (220302, 220300, '铁西区', 2, 0, 3); +INSERT INTO `area` VALUES (220303, 220300, '铁东区', 2, 0, 3); +INSERT INTO `area` VALUES (220322, 220300, '梨树县', 2, 0, 3); +INSERT INTO `area` VALUES (220323, 220300, '伊通满族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (220381, 220300, '公主岭市', 2, 0, 3); +INSERT INTO `area` VALUES (220382, 220300, '双辽市', 2, 0, 3); +INSERT INTO `area` VALUES (220383, 220300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (220400, 220000, '辽源市', 2, 0, 2); +INSERT INTO `area` VALUES (220402, 220400, '龙山区', 2, 0, 3); +INSERT INTO `area` VALUES (220403, 220400, '西安区', 2, 0, 3); +INSERT INTO `area` VALUES (220421, 220400, '东丰县', 2, 0, 3); +INSERT INTO `area` VALUES (220422, 220400, '东辽县', 2, 0, 3); +INSERT INTO `area` VALUES (220423, 220400, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (220500, 220000, '通化市', 2, 0, 2); +INSERT INTO `area` VALUES (220502, 220500, '东昌区', 2, 0, 3); +INSERT INTO `area` VALUES (220503, 220500, '二道江区', 2, 0, 3); +INSERT INTO `area` VALUES (220521, 220500, '通化县', 2, 0, 3); +INSERT INTO `area` VALUES (220523, 220500, '辉南县', 2, 0, 3); +INSERT INTO `area` VALUES (220524, 220500, '柳河县', 2, 0, 3); +INSERT INTO `area` VALUES (220581, 220500, '梅河口市', 2, 0, 3); +INSERT INTO `area` VALUES (220582, 220500, '集安市', 2, 0, 3); +INSERT INTO `area` VALUES (220583, 220500, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (220600, 220000, '白山市', 2, 0, 2); +INSERT INTO `area` VALUES (220602, 220600, '浑江区', 2, 0, 3); +INSERT INTO `area` VALUES (220605, 220600, '江源区', 2, 0, 3); +INSERT INTO `area` VALUES (220621, 220600, '抚松县', 2, 0, 3); +INSERT INTO `area` VALUES (220622, 220600, '靖宇县', 2, 0, 3); +INSERT INTO `area` VALUES (220623, 220600, '长白朝鲜族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (220625, 220600, '江源县', 2, 0, 3); +INSERT INTO `area` VALUES (220681, 220600, '临江市', 2, 0, 3); +INSERT INTO `area` VALUES (220682, 220600, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (220700, 220000, '松原市', 2, 0, 2); +INSERT INTO `area` VALUES (220702, 220700, '宁江区', 2, 0, 3); +INSERT INTO `area` VALUES (220721, 220700, '前郭尔罗斯蒙古族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (220722, 220700, '长岭县', 2, 0, 3); +INSERT INTO `area` VALUES (220723, 220700, '乾安县', 2, 0, 3); +INSERT INTO `area` VALUES (220724, 220700, '扶余县', 2, 0, 3); +INSERT INTO `area` VALUES (220725, 220700, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (220781, 220700, '扶余市', 2, 0, 3); +INSERT INTO `area` VALUES (220800, 220000, '白城市', 2, 0, 2); +INSERT INTO `area` VALUES (220802, 220800, '洮北区', 2, 0, 3); +INSERT INTO `area` VALUES (220821, 220800, '镇赉县', 2, 0, 3); +INSERT INTO `area` VALUES (220822, 220800, '通榆县', 2, 0, 3); +INSERT INTO `area` VALUES (220881, 220800, '洮南市', 2, 0, 3); +INSERT INTO `area` VALUES (220882, 220800, '大安市', 2, 0, 3); +INSERT INTO `area` VALUES (220883, 220800, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (222400, 220000, '延边朝鲜族自治州', 2, 0, 2); +INSERT INTO `area` VALUES (222401, 222400, '延吉市', 2, 0, 3); +INSERT INTO `area` VALUES (222402, 222400, '图们市', 2, 0, 3); +INSERT INTO `area` VALUES (222403, 222400, '敦化市', 2, 0, 3); +INSERT INTO `area` VALUES (222404, 222400, '珲春市', 2, 0, 3); +INSERT INTO `area` VALUES (222405, 222400, '龙井市', 2, 0, 3); +INSERT INTO `area` VALUES (222406, 222400, '和龙市', 2, 0, 3); +INSERT INTO `area` VALUES (222424, 222400, '汪清县', 2, 0, 3); +INSERT INTO `area` VALUES (222426, 222400, '安图县', 2, 0, 3); +INSERT INTO `area` VALUES (222427, 222400, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (230000, 0, '黑龙江省', 2, 0, 1); +INSERT INTO `area` VALUES (230100, 230000, '哈尔滨市', 2, 0, 2); +INSERT INTO `area` VALUES (230102, 230100, '道里区', 2, 0, 3); +INSERT INTO `area` VALUES (230103, 230100, '南岗区', 2, 0, 3); +INSERT INTO `area` VALUES (230104, 230100, '道外区', 2, 0, 3); +INSERT INTO `area` VALUES (230106, 230100, '香坊区', 2, 0, 3); +INSERT INTO `area` VALUES (230107, 230100, '动力区', 2, 0, 3); +INSERT INTO `area` VALUES (230108, 230100, '平房区', 2, 0, 3); +INSERT INTO `area` VALUES (230109, 230100, '松北区', 2, 0, 3); +INSERT INTO `area` VALUES (230110, 230100, '香坊区', 2, 0, 3); +INSERT INTO `area` VALUES (230111, 230100, '呼兰区', 2, 0, 3); +INSERT INTO `area` VALUES (230112, 230100, '阿城区', 2, 0, 3); +INSERT INTO `area` VALUES (230113, 230100, '双城区', 2, 0, 3); +INSERT INTO `area` VALUES (230123, 230100, '依兰县', 2, 0, 3); +INSERT INTO `area` VALUES (230124, 230100, '方正县', 2, 0, 3); +INSERT INTO `area` VALUES (230125, 230100, '宾县', 2, 0, 3); +INSERT INTO `area` VALUES (230126, 230100, '巴彦县', 2, 0, 3); +INSERT INTO `area` VALUES (230127, 230100, '木兰县', 2, 0, 3); +INSERT INTO `area` VALUES (230128, 230100, '通河县', 2, 0, 3); +INSERT INTO `area` VALUES (230129, 230100, '延寿县', 2, 0, 3); +INSERT INTO `area` VALUES (230181, 230100, '阿城市', 2, 0, 3); +INSERT INTO `area` VALUES (230182, 230100, '双城市', 2, 0, 3); +INSERT INTO `area` VALUES (230183, 230100, '尚志市', 2, 0, 3); +INSERT INTO `area` VALUES (230184, 230100, '五常市', 2, 0, 3); +INSERT INTO `area` VALUES (230185, 230100, '阿城市', 2, 0, 3); +INSERT INTO `area` VALUES (230186, 230100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (230200, 230000, '齐齐哈尔市', 2, 0, 2); +INSERT INTO `area` VALUES (230202, 230200, '龙沙区', 2, 0, 3); +INSERT INTO `area` VALUES (230203, 230200, '建华区', 2, 0, 3); +INSERT INTO `area` VALUES (230204, 230200, '铁锋区', 2, 0, 3); +INSERT INTO `area` VALUES (230205, 230200, '昂昂溪区', 2, 0, 3); +INSERT INTO `area` VALUES (230206, 230200, '富拉尔基区', 2, 0, 3); +INSERT INTO `area` VALUES (230207, 230200, '碾子山区', 2, 0, 3); +INSERT INTO `area` VALUES (230208, 230200, '梅里斯达斡尔族区', 2, 0, 3); +INSERT INTO `area` VALUES (230221, 230200, '龙江县', 2, 0, 3); +INSERT INTO `area` VALUES (230223, 230200, '依安县', 2, 0, 3); +INSERT INTO `area` VALUES (230224, 230200, '泰来县', 2, 0, 3); +INSERT INTO `area` VALUES (230225, 230200, '甘南县', 2, 0, 3); +INSERT INTO `area` VALUES (230227, 230200, '富裕县', 2, 0, 3); +INSERT INTO `area` VALUES (230229, 230200, '克山县', 2, 0, 3); +INSERT INTO `area` VALUES (230230, 230200, '克东县', 2, 0, 3); +INSERT INTO `area` VALUES (230231, 230200, '拜泉县', 2, 0, 3); +INSERT INTO `area` VALUES (230281, 230200, '讷河市', 2, 0, 3); +INSERT INTO `area` VALUES (230282, 230200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (230300, 230000, '鸡西市', 2, 0, 2); +INSERT INTO `area` VALUES (230302, 230300, '鸡冠区', 2, 0, 3); +INSERT INTO `area` VALUES (230303, 230300, '恒山区', 2, 0, 3); +INSERT INTO `area` VALUES (230304, 230300, '滴道区', 2, 0, 3); +INSERT INTO `area` VALUES (230305, 230300, '梨树区', 2, 0, 3); +INSERT INTO `area` VALUES (230306, 230300, '城子河区', 2, 0, 3); +INSERT INTO `area` VALUES (230307, 230300, '麻山区', 2, 0, 3); +INSERT INTO `area` VALUES (230321, 230300, '鸡东县', 2, 0, 3); +INSERT INTO `area` VALUES (230381, 230300, '虎林市', 2, 0, 3); +INSERT INTO `area` VALUES (230382, 230300, '密山市', 2, 0, 3); +INSERT INTO `area` VALUES (230383, 230300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (230400, 230000, '鹤岗市', 2, 0, 2); +INSERT INTO `area` VALUES (230402, 230400, '向阳区', 2, 0, 3); +INSERT INTO `area` VALUES (230403, 230400, '工农区', 2, 0, 3); +INSERT INTO `area` VALUES (230404, 230400, '南山区', 2, 0, 3); +INSERT INTO `area` VALUES (230405, 230400, '兴安区', 2, 0, 3); +INSERT INTO `area` VALUES (230406, 230400, '东山区', 2, 0, 3); +INSERT INTO `area` VALUES (230407, 230400, '兴山区', 2, 0, 3); +INSERT INTO `area` VALUES (230421, 230400, '萝北县', 2, 0, 3); +INSERT INTO `area` VALUES (230422, 230400, '绥滨县', 2, 0, 3); +INSERT INTO `area` VALUES (230423, 230400, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (230500, 230000, '双鸭山市', 2, 0, 2); +INSERT INTO `area` VALUES (230502, 230500, '尖山区', 2, 0, 3); +INSERT INTO `area` VALUES (230503, 230500, '岭东区', 2, 0, 3); +INSERT INTO `area` VALUES (230505, 230500, '四方台区', 2, 0, 3); +INSERT INTO `area` VALUES (230506, 230500, '宝山区', 2, 0, 3); +INSERT INTO `area` VALUES (230521, 230500, '集贤县', 2, 0, 3); +INSERT INTO `area` VALUES (230522, 230500, '友谊县', 2, 0, 3); +INSERT INTO `area` VALUES (230523, 230500, '宝清县', 2, 0, 3); +INSERT INTO `area` VALUES (230524, 230500, '饶河县', 2, 0, 3); +INSERT INTO `area` VALUES (230525, 230500, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (230600, 230000, '大庆市', 2, 0, 2); +INSERT INTO `area` VALUES (230602, 230600, '萨尔图区', 2, 0, 3); +INSERT INTO `area` VALUES (230603, 230600, '龙凤区', 2, 0, 3); +INSERT INTO `area` VALUES (230604, 230600, '让胡路区', 2, 0, 3); +INSERT INTO `area` VALUES (230605, 230600, '红岗区', 2, 0, 3); +INSERT INTO `area` VALUES (230606, 230600, '大同区', 2, 0, 3); +INSERT INTO `area` VALUES (230621, 230600, '肇州县', 2, 0, 3); +INSERT INTO `area` VALUES (230622, 230600, '肇源县', 2, 0, 3); +INSERT INTO `area` VALUES (230623, 230600, '林甸县', 2, 0, 3); +INSERT INTO `area` VALUES (230624, 230600, '杜尔伯特蒙古族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (230625, 230600, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (230700, 230000, '伊春市', 2, 0, 2); +INSERT INTO `area` VALUES (230702, 230700, '伊春区', 2, 0, 3); +INSERT INTO `area` VALUES (230703, 230700, '南岔区', 2, 0, 3); +INSERT INTO `area` VALUES (230704, 230700, '友好区', 2, 0, 3); +INSERT INTO `area` VALUES (230705, 230700, '西林区', 2, 0, 3); +INSERT INTO `area` VALUES (230706, 230700, '翠峦区', 2, 0, 3); +INSERT INTO `area` VALUES (230707, 230700, '新青区', 2, 0, 3); +INSERT INTO `area` VALUES (230708, 230700, '美溪区', 2, 0, 3); +INSERT INTO `area` VALUES (230709, 230700, '金山屯区', 2, 0, 3); +INSERT INTO `area` VALUES (230710, 230700, '五营区', 2, 0, 3); +INSERT INTO `area` VALUES (230711, 230700, '乌马河区', 2, 0, 3); +INSERT INTO `area` VALUES (230712, 230700, '汤旺河区', 2, 0, 3); +INSERT INTO `area` VALUES (230713, 230700, '带岭区', 2, 0, 3); +INSERT INTO `area` VALUES (230714, 230700, '乌伊岭区', 2, 0, 3); +INSERT INTO `area` VALUES (230715, 230700, '红星区', 2, 0, 3); +INSERT INTO `area` VALUES (230716, 230700, '上甘岭区', 2, 0, 3); +INSERT INTO `area` VALUES (230722, 230700, '嘉荫县', 2, 0, 3); +INSERT INTO `area` VALUES (230781, 230700, '铁力市', 2, 0, 3); +INSERT INTO `area` VALUES (230782, 230700, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (230800, 230000, '佳木斯市', 2, 0, 2); +INSERT INTO `area` VALUES (230802, 230800, '永红区', 2, 0, 3); +INSERT INTO `area` VALUES (230803, 230800, '向阳区', 2, 0, 3); +INSERT INTO `area` VALUES (230804, 230800, '前进区', 2, 0, 3); +INSERT INTO `area` VALUES (230805, 230800, '东风区', 2, 0, 3); +INSERT INTO `area` VALUES (230811, 230800, '郊区', 2, 0, 3); +INSERT INTO `area` VALUES (230822, 230800, '桦南县', 2, 0, 3); +INSERT INTO `area` VALUES (230826, 230800, '桦川县', 2, 0, 3); +INSERT INTO `area` VALUES (230828, 230800, '汤原县', 2, 0, 3); +INSERT INTO `area` VALUES (230833, 230800, '抚远县', 2, 0, 3); +INSERT INTO `area` VALUES (230881, 230800, '同江市', 2, 0, 3); +INSERT INTO `area` VALUES (230882, 230800, '富锦市', 2, 0, 3); +INSERT INTO `area` VALUES (230883, 230800, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (230900, 230000, '七台河市', 2, 0, 2); +INSERT INTO `area` VALUES (230902, 230900, '新兴区', 2, 0, 3); +INSERT INTO `area` VALUES (230903, 230900, '桃山区', 2, 0, 3); +INSERT INTO `area` VALUES (230904, 230900, '茄子河区', 2, 0, 3); +INSERT INTO `area` VALUES (230921, 230900, '勃利县', 2, 0, 3); +INSERT INTO `area` VALUES (230922, 230900, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (231000, 230000, '牡丹江市', 2, 0, 2); +INSERT INTO `area` VALUES (231002, 231000, '东安区', 2, 0, 3); +INSERT INTO `area` VALUES (231003, 231000, '阳明区', 2, 0, 3); +INSERT INTO `area` VALUES (231004, 231000, '爱民区', 2, 0, 3); +INSERT INTO `area` VALUES (231005, 231000, '西安区', 2, 0, 3); +INSERT INTO `area` VALUES (231024, 231000, '东宁县', 2, 0, 3); +INSERT INTO `area` VALUES (231025, 231000, '林口县', 2, 0, 3); +INSERT INTO `area` VALUES (231081, 231000, '绥芬河市', 2, 0, 3); +INSERT INTO `area` VALUES (231083, 231000, '海林市', 2, 0, 3); +INSERT INTO `area` VALUES (231084, 231000, '宁安市', 2, 0, 3); +INSERT INTO `area` VALUES (231085, 231000, '穆棱市', 2, 0, 3); +INSERT INTO `area` VALUES (231086, 231000, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (231100, 230000, '黑河市', 2, 0, 2); +INSERT INTO `area` VALUES (231102, 231100, '爱辉区', 2, 0, 3); +INSERT INTO `area` VALUES (231121, 231100, '嫩江县', 2, 0, 3); +INSERT INTO `area` VALUES (231123, 231100, '逊克县', 2, 0, 3); +INSERT INTO `area` VALUES (231124, 231100, '孙吴县', 2, 0, 3); +INSERT INTO `area` VALUES (231181, 231100, '北安市', 2, 0, 3); +INSERT INTO `area` VALUES (231182, 231100, '五大连池市', 2, 0, 3); +INSERT INTO `area` VALUES (231183, 231100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (231200, 230000, '绥化市', 2, 0, 2); +INSERT INTO `area` VALUES (231202, 231200, '北林区', 2, 0, 3); +INSERT INTO `area` VALUES (231221, 231200, '望奎县', 2, 0, 3); +INSERT INTO `area` VALUES (231222, 231200, '兰西县', 2, 0, 3); +INSERT INTO `area` VALUES (231223, 231200, '青冈县', 2, 0, 3); +INSERT INTO `area` VALUES (231224, 231200, '庆安县', 2, 0, 3); +INSERT INTO `area` VALUES (231225, 231200, '明水县', 2, 0, 3); +INSERT INTO `area` VALUES (231226, 231200, '绥棱县', 2, 0, 3); +INSERT INTO `area` VALUES (231281, 231200, '安达市', 2, 0, 3); +INSERT INTO `area` VALUES (231282, 231200, '肇东市', 2, 0, 3); +INSERT INTO `area` VALUES (231283, 231200, '海伦市', 2, 0, 3); +INSERT INTO `area` VALUES (231284, 231200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (232700, 230000, '大兴安岭地区', 2, 0, 2); +INSERT INTO `area` VALUES (232721, 232700, '呼玛县', 2, 0, 3); +INSERT INTO `area` VALUES (232722, 232700, '塔河县', 2, 0, 3); +INSERT INTO `area` VALUES (232723, 232700, '漠河县', 2, 0, 3); +INSERT INTO `area` VALUES (232724, 232700, '加格达奇区', 2, 0, 3); +INSERT INTO `area` VALUES (232725, 232700, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (310000, 0, '上海市', 2, 0, 1); +INSERT INTO `area` VALUES (310100, 310000, '上海市', 2, 0, 2); +INSERT INTO `area` VALUES (310101, 310100, '黄浦区', 2, 0, 3); +INSERT INTO `area` VALUES (310103, 310100, '卢湾区', 2, 0, 3); +INSERT INTO `area` VALUES (310104, 310100, '徐汇区', 2, 0, 3); +INSERT INTO `area` VALUES (310105, 310100, '长宁区', 2, 0, 3); +INSERT INTO `area` VALUES (310106, 310100, '静安区', 2, 0, 3); +INSERT INTO `area` VALUES (310107, 310100, '普陀区', 2, 0, 3); +INSERT INTO `area` VALUES (310108, 310100, '闸北区', 2, 0, 3); +INSERT INTO `area` VALUES (310109, 310100, '虹口区', 2, 0, 3); +INSERT INTO `area` VALUES (310110, 310100, '杨浦区', 2, 0, 3); +INSERT INTO `area` VALUES (310112, 310100, '闵行区', 2, 0, 3); +INSERT INTO `area` VALUES (310113, 310100, '宝山区', 2, 0, 3); +INSERT INTO `area` VALUES (310114, 310100, '嘉定区', 2, 0, 3); +INSERT INTO `area` VALUES (310115, 310100, '浦东新区', 2, 0, 3); +INSERT INTO `area` VALUES (310116, 310100, '金山区', 2, 0, 3); +INSERT INTO `area` VALUES (310117, 310100, '松江区', 2, 0, 3); +INSERT INTO `area` VALUES (310118, 310100, '青浦区', 2, 0, 3); +INSERT INTO `area` VALUES (310119, 310100, '南汇区', 2, 0, 3); +INSERT INTO `area` VALUES (310120, 310100, '奉贤区', 2, 0, 3); +INSERT INTO `area` VALUES (310152, 310100, '川沙区', 2, 0, 3); +INSERT INTO `area` VALUES (310230, 310200, '崇明县', 2, 0, 3); +INSERT INTO `area` VALUES (310231, 310100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (320000, 0, '江苏省', 2, 0, 1); +INSERT INTO `area` VALUES (320100, 320000, '南京市', 2, 0, 2); +INSERT INTO `area` VALUES (320102, 320100, '玄武区', 2, 0, 3); +INSERT INTO `area` VALUES (320103, 320100, '白下区', 2, 0, 3); +INSERT INTO `area` VALUES (320104, 320100, '秦淮区', 2, 0, 3); +INSERT INTO `area` VALUES (320105, 320100, '建邺区', 2, 0, 3); +INSERT INTO `area` VALUES (320106, 320100, '鼓楼区', 2, 0, 3); +INSERT INTO `area` VALUES (320107, 320100, '下关区', 2, 0, 3); +INSERT INTO `area` VALUES (320111, 320100, '浦口区', 2, 0, 3); +INSERT INTO `area` VALUES (320113, 320100, '栖霞区', 2, 0, 3); +INSERT INTO `area` VALUES (320114, 320100, '雨花台区', 2, 0, 3); +INSERT INTO `area` VALUES (320115, 320100, '江宁区', 2, 0, 3); +INSERT INTO `area` VALUES (320116, 320100, '六合区', 2, 0, 3); +INSERT INTO `area` VALUES (320117, 320100, '溧水区', 2, 0, 3); +INSERT INTO `area` VALUES (320118, 320100, '高淳区', 2, 0, 3); +INSERT INTO `area` VALUES (320124, 320100, '溧水县', 2, 0, 3); +INSERT INTO `area` VALUES (320125, 320100, '高淳县', 2, 0, 3); +INSERT INTO `area` VALUES (320126, 320100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (320200, 320000, '无锡市', 2, 0, 2); +INSERT INTO `area` VALUES (320202, 320200, '崇安区', 2, 0, 3); +INSERT INTO `area` VALUES (320203, 320200, '南长区', 2, 0, 3); +INSERT INTO `area` VALUES (320204, 320200, '北塘区', 2, 0, 3); +INSERT INTO `area` VALUES (320205, 320200, '锡山区', 2, 0, 3); +INSERT INTO `area` VALUES (320206, 320200, '惠山区', 2, 0, 3); +INSERT INTO `area` VALUES (320211, 320200, '滨湖区', 2, 0, 3); +INSERT INTO `area` VALUES (320281, 320200, '江阴市', 2, 0, 3); +INSERT INTO `area` VALUES (320282, 320200, '宜兴市', 2, 0, 3); +INSERT INTO `area` VALUES (320296, 320200, '新区', 2, 0, 3); +INSERT INTO `area` VALUES (320297, 320200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (320300, 320000, '徐州市', 2, 0, 2); +INSERT INTO `area` VALUES (320302, 320300, '鼓楼区', 2, 0, 3); +INSERT INTO `area` VALUES (320303, 320300, '云龙区', 2, 0, 3); +INSERT INTO `area` VALUES (320304, 320300, '九里区', 2, 0, 3); +INSERT INTO `area` VALUES (320305, 320300, '贾汪区', 2, 0, 3); +INSERT INTO `area` VALUES (320311, 320300, '泉山区', 2, 0, 3); +INSERT INTO `area` VALUES (320312, 320300, '铜山区', 2, 0, 3); +INSERT INTO `area` VALUES (320321, 320300, '丰县', 2, 0, 3); +INSERT INTO `area` VALUES (320322, 320300, '沛县', 2, 0, 3); +INSERT INTO `area` VALUES (320323, 320300, '铜山县', 2, 0, 3); +INSERT INTO `area` VALUES (320324, 320300, '睢宁县', 2, 0, 3); +INSERT INTO `area` VALUES (320381, 320300, '新沂市', 2, 0, 3); +INSERT INTO `area` VALUES (320382, 320300, '邳州市', 2, 0, 3); +INSERT INTO `area` VALUES (320383, 320300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (320400, 320000, '常州市', 2, 0, 2); +INSERT INTO `area` VALUES (320402, 320400, '天宁区', 2, 0, 3); +INSERT INTO `area` VALUES (320404, 320400, '钟楼区', 2, 0, 3); +INSERT INTO `area` VALUES (320405, 320400, '戚墅堰区', 2, 0, 3); +INSERT INTO `area` VALUES (320411, 320400, '新北区', 2, 0, 3); +INSERT INTO `area` VALUES (320412, 320400, '武进区', 2, 0, 3); +INSERT INTO `area` VALUES (320481, 320400, '溧阳市', 2, 0, 3); +INSERT INTO `area` VALUES (320482, 320400, '金坛市', 2, 0, 3); +INSERT INTO `area` VALUES (320483, 320400, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (320500, 320000, '苏州市', 2, 0, 2); +INSERT INTO `area` VALUES (320502, 320500, '沧浪区', 2, 0, 3); +INSERT INTO `area` VALUES (320503, 320500, '平江区', 2, 0, 3); +INSERT INTO `area` VALUES (320504, 320500, '金阊区', 2, 0, 3); +INSERT INTO `area` VALUES (320505, 320500, '虎丘区', 2, 0, 3); +INSERT INTO `area` VALUES (320506, 320500, '吴中区', 2, 0, 3); +INSERT INTO `area` VALUES (320507, 320500, '相城区', 2, 0, 3); +INSERT INTO `area` VALUES (320508, 320500, '姑苏区', 2, 0, 3); +INSERT INTO `area` VALUES (320509, 320500, '吴江区', 2, 0, 3); +INSERT INTO `area` VALUES (320581, 320500, '常熟市', 2, 0, 3); +INSERT INTO `area` VALUES (320582, 320500, '张家港市', 2, 0, 3); +INSERT INTO `area` VALUES (320583, 320500, '昆山市', 2, 0, 3); +INSERT INTO `area` VALUES (320584, 320500, '吴江市', 2, 0, 3); +INSERT INTO `area` VALUES (320585, 320500, '太仓市', 2, 0, 3); +INSERT INTO `area` VALUES (320594, 320500, '新区', 2, 0, 3); +INSERT INTO `area` VALUES (320595, 320500, '园区', 2, 0, 3); +INSERT INTO `area` VALUES (320596, 320500, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (320600, 320000, '南通市', 2, 0, 2); +INSERT INTO `area` VALUES (320602, 320600, '崇川区', 2, 0, 3); +INSERT INTO `area` VALUES (320611, 320600, '港闸区', 2, 0, 3); +INSERT INTO `area` VALUES (320612, 320600, '通州区', 2, 0, 3); +INSERT INTO `area` VALUES (320621, 320600, '海安县', 2, 0, 3); +INSERT INTO `area` VALUES (320623, 320600, '如东县', 2, 0, 3); +INSERT INTO `area` VALUES (320681, 320600, '启东市', 2, 0, 3); +INSERT INTO `area` VALUES (320682, 320600, '如皋市', 2, 0, 3); +INSERT INTO `area` VALUES (320683, 320600, '通州市', 2, 0, 3); +INSERT INTO `area` VALUES (320684, 320600, '海门市', 2, 0, 3); +INSERT INTO `area` VALUES (320693, 320600, '开发区', 2, 0, 3); +INSERT INTO `area` VALUES (320694, 320600, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (320700, 320000, '连云港市', 2, 0, 2); +INSERT INTO `area` VALUES (320703, 320700, '连云区', 2, 0, 3); +INSERT INTO `area` VALUES (320705, 320700, '新浦区', 2, 0, 3); +INSERT INTO `area` VALUES (320706, 320700, '海州区', 2, 0, 3); +INSERT INTO `area` VALUES (320707, 320700, '赣榆区', 2, 0, 3); +INSERT INTO `area` VALUES (320721, 320700, '赣榆县', 2, 0, 3); +INSERT INTO `area` VALUES (320722, 320700, '东海县', 2, 0, 3); +INSERT INTO `area` VALUES (320723, 320700, '灌云县', 2, 0, 3); +INSERT INTO `area` VALUES (320724, 320700, '灌南县', 2, 0, 3); +INSERT INTO `area` VALUES (320725, 320700, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (320800, 320000, '淮安市', 2, 0, 2); +INSERT INTO `area` VALUES (320802, 320800, '清河区', 2, 0, 3); +INSERT INTO `area` VALUES (320803, 320800, '淮安区', 2, 0, 3); +INSERT INTO `area` VALUES (320804, 320800, '淮阴区', 2, 0, 3); +INSERT INTO `area` VALUES (320811, 320800, '清浦区', 2, 0, 3); +INSERT INTO `area` VALUES (320826, 320800, '涟水县', 2, 0, 3); +INSERT INTO `area` VALUES (320829, 320800, '洪泽县', 2, 0, 3); +INSERT INTO `area` VALUES (320830, 320800, '盱眙县', 2, 0, 3); +INSERT INTO `area` VALUES (320831, 320800, '金湖县', 2, 0, 3); +INSERT INTO `area` VALUES (320832, 320800, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (320900, 320000, '盐城市', 2, 0, 2); +INSERT INTO `area` VALUES (320902, 320900, '亭湖区', 2, 0, 3); +INSERT INTO `area` VALUES (320903, 320900, '盐都区', 2, 0, 3); +INSERT INTO `area` VALUES (320921, 320900, '响水县', 2, 0, 3); +INSERT INTO `area` VALUES (320922, 320900, '滨海县', 2, 0, 3); +INSERT INTO `area` VALUES (320923, 320900, '阜宁县', 2, 0, 3); +INSERT INTO `area` VALUES (320924, 320900, '射阳县', 2, 0, 3); +INSERT INTO `area` VALUES (320925, 320900, '建湖县', 2, 0, 3); +INSERT INTO `area` VALUES (320981, 320900, '东台市', 2, 0, 3); +INSERT INTO `area` VALUES (320982, 320900, '大丰市', 2, 0, 3); +INSERT INTO `area` VALUES (320983, 320900, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (321000, 320000, '扬州市', 2, 0, 2); +INSERT INTO `area` VALUES (321002, 321000, '广陵区', 2, 0, 3); +INSERT INTO `area` VALUES (321003, 321000, '邗江区', 2, 0, 3); +INSERT INTO `area` VALUES (321011, 321000, '维扬区', 2, 0, 3); +INSERT INTO `area` VALUES (321012, 321000, '江都区', 2, 0, 3); +INSERT INTO `area` VALUES (321023, 321000, '宝应县', 2, 0, 3); +INSERT INTO `area` VALUES (321081, 321000, '仪征市', 2, 0, 3); +INSERT INTO `area` VALUES (321084, 321000, '高邮市', 2, 0, 3); +INSERT INTO `area` VALUES (321088, 321000, '江都市', 2, 0, 3); +INSERT INTO `area` VALUES (321092, 321000, '经济开发区', 2, 0, 3); +INSERT INTO `area` VALUES (321093, 321000, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (321100, 320000, '镇江市', 2, 0, 2); +INSERT INTO `area` VALUES (321102, 321100, '京口区', 2, 0, 3); +INSERT INTO `area` VALUES (321111, 321100, '润州区', 2, 0, 3); +INSERT INTO `area` VALUES (321112, 321100, '丹徒区', 2, 0, 3); +INSERT INTO `area` VALUES (321181, 321100, '丹阳市', 2, 0, 3); +INSERT INTO `area` VALUES (321182, 321100, '扬中市', 2, 0, 3); +INSERT INTO `area` VALUES (321183, 321100, '句容市', 2, 0, 3); +INSERT INTO `area` VALUES (321184, 321100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (321200, 320000, '泰州市', 2, 0, 2); +INSERT INTO `area` VALUES (321202, 321200, '海陵区', 2, 0, 3); +INSERT INTO `area` VALUES (321203, 321200, '高港区', 2, 0, 3); +INSERT INTO `area` VALUES (321204, 321200, '姜堰区', 2, 0, 3); +INSERT INTO `area` VALUES (321281, 321200, '兴化市', 2, 0, 3); +INSERT INTO `area` VALUES (321282, 321200, '靖江市', 2, 0, 3); +INSERT INTO `area` VALUES (321283, 321200, '泰兴市', 2, 0, 3); +INSERT INTO `area` VALUES (321284, 321200, '姜堰市', 2, 0, 3); +INSERT INTO `area` VALUES (321285, 321200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (321300, 320000, '宿迁市', 2, 0, 2); +INSERT INTO `area` VALUES (321302, 321300, '宿城区', 2, 0, 3); +INSERT INTO `area` VALUES (321311, 321300, '宿豫区', 2, 0, 3); +INSERT INTO `area` VALUES (321322, 321300, '沭阳县', 2, 0, 3); +INSERT INTO `area` VALUES (321323, 321300, '泗阳县', 2, 0, 3); +INSERT INTO `area` VALUES (321324, 321300, '泗洪县', 2, 0, 3); +INSERT INTO `area` VALUES (321325, 321300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (330000, 0, '浙江省', 2, 0, 1); +INSERT INTO `area` VALUES (330100, 330000, '杭州市', 2, 0, 2); +INSERT INTO `area` VALUES (330102, 330100, '上城区', 2, 0, 3); +INSERT INTO `area` VALUES (330103, 330100, '下城区', 2, 0, 3); +INSERT INTO `area` VALUES (330104, 330100, '江干区', 2, 0, 3); +INSERT INTO `area` VALUES (330105, 330100, '拱墅区', 2, 0, 3); +INSERT INTO `area` VALUES (330106, 330100, '西湖区', 2, 0, 3); +INSERT INTO `area` VALUES (330108, 330100, '滨江区', 2, 0, 3); +INSERT INTO `area` VALUES (330109, 330100, '萧山区', 2, 0, 3); +INSERT INTO `area` VALUES (330110, 330100, '余杭区', 2, 0, 3); +INSERT INTO `area` VALUES (330111, 330100, '富阳区', 2, 0, 3); +INSERT INTO `area` VALUES (330122, 330100, '桐庐县', 2, 0, 3); +INSERT INTO `area` VALUES (330127, 330100, '淳安县', 2, 0, 3); +INSERT INTO `area` VALUES (330182, 330100, '建德市', 2, 0, 3); +INSERT INTO `area` VALUES (330183, 330100, '富阳市', 2, 0, 3); +INSERT INTO `area` VALUES (330185, 330100, '临安市', 2, 0, 3); +INSERT INTO `area` VALUES (330186, 330100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (330200, 330000, '宁波市', 2, 0, 2); +INSERT INTO `area` VALUES (330203, 330200, '海曙区', 2, 0, 3); +INSERT INTO `area` VALUES (330204, 330200, '江东区', 2, 0, 3); +INSERT INTO `area` VALUES (330205, 330200, '江北区', 2, 0, 3); +INSERT INTO `area` VALUES (330206, 330200, '北仑区', 2, 0, 3); +INSERT INTO `area` VALUES (330211, 330200, '镇海区', 2, 0, 3); +INSERT INTO `area` VALUES (330212, 330200, '鄞州区', 2, 0, 3); +INSERT INTO `area` VALUES (330225, 330200, '象山县', 2, 0, 3); +INSERT INTO `area` VALUES (330226, 330200, '宁海县', 2, 0, 3); +INSERT INTO `area` VALUES (330281, 330200, '余姚市', 2, 0, 3); +INSERT INTO `area` VALUES (330282, 330200, '慈溪市', 2, 0, 3); +INSERT INTO `area` VALUES (330283, 330200, '奉化市', 2, 0, 3); +INSERT INTO `area` VALUES (330284, 330200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (330300, 330000, '温州市', 2, 0, 2); +INSERT INTO `area` VALUES (330302, 330300, '鹿城区', 2, 0, 3); +INSERT INTO `area` VALUES (330303, 330300, '龙湾区', 2, 0, 3); +INSERT INTO `area` VALUES (330304, 330300, '瓯海区', 2, 0, 3); +INSERT INTO `area` VALUES (330322, 330300, '洞头县', 2, 0, 3); +INSERT INTO `area` VALUES (330324, 330300, '永嘉县', 2, 0, 3); +INSERT INTO `area` VALUES (330326, 330300, '平阳县', 2, 0, 3); +INSERT INTO `area` VALUES (330327, 330300, '苍南县', 2, 0, 3); +INSERT INTO `area` VALUES (330328, 330300, '文成县', 2, 0, 3); +INSERT INTO `area` VALUES (330329, 330300, '泰顺县', 2, 0, 3); +INSERT INTO `area` VALUES (330381, 330300, '瑞安市', 2, 0, 3); +INSERT INTO `area` VALUES (330382, 330300, '乐清市', 2, 0, 3); +INSERT INTO `area` VALUES (330383, 330300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (330400, 330000, '嘉兴市', 2, 0, 2); +INSERT INTO `area` VALUES (330402, 330400, '南湖区', 2, 0, 3); +INSERT INTO `area` VALUES (330411, 330400, '秀洲区', 2, 0, 3); +INSERT INTO `area` VALUES (330421, 330400, '嘉善县', 2, 0, 3); +INSERT INTO `area` VALUES (330424, 330400, '海盐县', 2, 0, 3); +INSERT INTO `area` VALUES (330481, 330400, '海宁市', 2, 0, 3); +INSERT INTO `area` VALUES (330482, 330400, '平湖市', 2, 0, 3); +INSERT INTO `area` VALUES (330483, 330400, '桐乡市', 2, 0, 3); +INSERT INTO `area` VALUES (330484, 330400, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (330500, 330000, '湖州市', 2, 0, 2); +INSERT INTO `area` VALUES (330502, 330500, '吴兴区', 2, 0, 3); +INSERT INTO `area` VALUES (330503, 330500, '南浔区', 2, 0, 3); +INSERT INTO `area` VALUES (330521, 330500, '德清县', 2, 0, 3); +INSERT INTO `area` VALUES (330522, 330500, '长兴县', 2, 0, 3); +INSERT INTO `area` VALUES (330523, 330500, '安吉县', 2, 0, 3); +INSERT INTO `area` VALUES (330524, 330500, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (330600, 330000, '绍兴市', 2, 0, 2); +INSERT INTO `area` VALUES (330602, 330600, '越城区', 2, 0, 3); +INSERT INTO `area` VALUES (330603, 330600, '柯桥区', 2, 0, 3); +INSERT INTO `area` VALUES (330604, 330600, '上虞区', 2, 0, 3); +INSERT INTO `area` VALUES (330621, 330600, '绍兴县', 2, 0, 3); +INSERT INTO `area` VALUES (330624, 330600, '新昌县', 2, 0, 3); +INSERT INTO `area` VALUES (330681, 330600, '诸暨市', 2, 0, 3); +INSERT INTO `area` VALUES (330682, 330600, '上虞市', 2, 0, 3); +INSERT INTO `area` VALUES (330683, 330600, '嵊州市', 2, 0, 3); +INSERT INTO `area` VALUES (330684, 330600, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (330700, 330000, '金华市', 2, 0, 2); +INSERT INTO `area` VALUES (330702, 330700, '婺城区', 2, 0, 3); +INSERT INTO `area` VALUES (330703, 330700, '金东区', 2, 0, 3); +INSERT INTO `area` VALUES (330723, 330700, '武义县', 2, 0, 3); +INSERT INTO `area` VALUES (330726, 330700, '浦江县', 2, 0, 3); +INSERT INTO `area` VALUES (330727, 330700, '磐安县', 2, 0, 3); +INSERT INTO `area` VALUES (330781, 330700, '兰溪市', 2, 0, 3); +INSERT INTO `area` VALUES (330782, 330700, '义乌市', 2, 0, 3); +INSERT INTO `area` VALUES (330783, 330700, '东阳市', 2, 0, 3); +INSERT INTO `area` VALUES (330784, 330700, '永康市', 2, 0, 3); +INSERT INTO `area` VALUES (330785, 330700, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (330800, 330000, '衢州市', 2, 0, 2); +INSERT INTO `area` VALUES (330802, 330800, '柯城区', 2, 0, 3); +INSERT INTO `area` VALUES (330803, 330800, '衢江区', 2, 0, 3); +INSERT INTO `area` VALUES (330822, 330800, '常山县', 2, 0, 3); +INSERT INTO `area` VALUES (330824, 330800, '开化县', 2, 0, 3); +INSERT INTO `area` VALUES (330825, 330800, '龙游县', 2, 0, 3); +INSERT INTO `area` VALUES (330881, 330800, '江山市', 2, 0, 3); +INSERT INTO `area` VALUES (330882, 330800, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (330900, 330000, '舟山市', 2, 0, 2); +INSERT INTO `area` VALUES (330902, 330900, '定海区', 2, 0, 3); +INSERT INTO `area` VALUES (330903, 330900, '普陀区', 2, 0, 3); +INSERT INTO `area` VALUES (330921, 330900, '岱山县', 2, 0, 3); +INSERT INTO `area` VALUES (330922, 330900, '嵊泗县', 2, 0, 3); +INSERT INTO `area` VALUES (330923, 330900, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (331000, 330000, '台州市', 2, 0, 2); +INSERT INTO `area` VALUES (331002, 331000, '椒江区', 2, 0, 3); +INSERT INTO `area` VALUES (331003, 331000, '黄岩区', 2, 0, 3); +INSERT INTO `area` VALUES (331004, 331000, '路桥区', 2, 0, 3); +INSERT INTO `area` VALUES (331021, 331000, '玉环县', 2, 0, 3); +INSERT INTO `area` VALUES (331022, 331000, '三门县', 2, 0, 3); +INSERT INTO `area` VALUES (331023, 331000, '天台县', 2, 0, 3); +INSERT INTO `area` VALUES (331024, 331000, '仙居县', 2, 0, 3); +INSERT INTO `area` VALUES (331081, 331000, '温岭市', 2, 0, 3); +INSERT INTO `area` VALUES (331082, 331000, '临海市', 2, 0, 3); +INSERT INTO `area` VALUES (331083, 331000, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (331100, 330000, '丽水市', 2, 0, 2); +INSERT INTO `area` VALUES (331102, 331100, '莲都区', 2, 0, 3); +INSERT INTO `area` VALUES (331121, 331100, '青田县', 2, 0, 3); +INSERT INTO `area` VALUES (331122, 331100, '缙云县', 2, 0, 3); +INSERT INTO `area` VALUES (331123, 331100, '遂昌县', 2, 0, 3); +INSERT INTO `area` VALUES (331124, 331100, '松阳县', 2, 0, 3); +INSERT INTO `area` VALUES (331125, 331100, '云和县', 2, 0, 3); +INSERT INTO `area` VALUES (331126, 331100, '庆元县', 2, 0, 3); +INSERT INTO `area` VALUES (331127, 331100, '景宁畲族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (331181, 331100, '龙泉市', 2, 0, 3); +INSERT INTO `area` VALUES (331182, 331100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (340000, 0, '安徽省', 2, 0, 1); +INSERT INTO `area` VALUES (340100, 340000, '合肥市', 2, 0, 2); +INSERT INTO `area` VALUES (340102, 340100, '瑶海区', 2, 0, 3); +INSERT INTO `area` VALUES (340103, 340100, '庐阳区', 2, 0, 3); +INSERT INTO `area` VALUES (340104, 340100, '蜀山区', 2, 0, 3); +INSERT INTO `area` VALUES (340111, 340100, '包河区', 2, 0, 3); +INSERT INTO `area` VALUES (340121, 340100, '长丰县', 2, 0, 3); +INSERT INTO `area` VALUES (340122, 340100, '肥东县', 2, 0, 3); +INSERT INTO `area` VALUES (340123, 340100, '肥西县', 2, 0, 3); +INSERT INTO `area` VALUES (340124, 340100, '庐江县', 2, 0, 3); +INSERT INTO `area` VALUES (340151, 340100, '高新区', 2, 0, 3); +INSERT INTO `area` VALUES (340181, 340100, '巢湖市', 2, 0, 3); +INSERT INTO `area` VALUES (340191, 340100, '中区', 2, 0, 3); +INSERT INTO `area` VALUES (340192, 340100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (340200, 340000, '芜湖市', 2, 0, 2); +INSERT INTO `area` VALUES (340202, 340200, '镜湖区', 2, 0, 3); +INSERT INTO `area` VALUES (340203, 340200, '弋江区', 2, 0, 3); +INSERT INTO `area` VALUES (340207, 340200, '鸠江区', 2, 0, 3); +INSERT INTO `area` VALUES (340208, 340200, '三山区', 2, 0, 3); +INSERT INTO `area` VALUES (340221, 340200, '芜湖县', 2, 0, 3); +INSERT INTO `area` VALUES (340222, 340200, '繁昌县', 2, 0, 3); +INSERT INTO `area` VALUES (340223, 340200, '南陵县', 2, 0, 3); +INSERT INTO `area` VALUES (340224, 340200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (340225, 340200, '无为县', 2, 0, 3); +INSERT INTO `area` VALUES (340300, 340000, '蚌埠市', 2, 0, 2); +INSERT INTO `area` VALUES (340302, 340300, '龙子湖区', 2, 0, 3); +INSERT INTO `area` VALUES (340303, 340300, '蚌山区', 2, 0, 3); +INSERT INTO `area` VALUES (340304, 340300, '禹会区', 2, 0, 3); +INSERT INTO `area` VALUES (340311, 340300, '淮上区', 2, 0, 3); +INSERT INTO `area` VALUES (340321, 340300, '怀远县', 2, 0, 3); +INSERT INTO `area` VALUES (340322, 340300, '五河县', 2, 0, 3); +INSERT INTO `area` VALUES (340323, 340300, '固镇县', 2, 0, 3); +INSERT INTO `area` VALUES (340324, 340300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (340400, 340000, '淮南市', 2, 0, 2); +INSERT INTO `area` VALUES (340402, 340400, '大通区', 2, 0, 3); +INSERT INTO `area` VALUES (340403, 340400, '田家庵区', 2, 0, 3); +INSERT INTO `area` VALUES (340404, 340400, '谢家集区', 2, 0, 3); +INSERT INTO `area` VALUES (340405, 340400, '八公山区', 2, 0, 3); +INSERT INTO `area` VALUES (340406, 340400, '潘集区', 2, 0, 3); +INSERT INTO `area` VALUES (340421, 340400, '凤台县', 2, 0, 3); +INSERT INTO `area` VALUES (340422, 340400, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (340500, 340000, '马鞍山市', 2, 0, 2); +INSERT INTO `area` VALUES (340502, 340500, '金家庄区', 2, 0, 3); +INSERT INTO `area` VALUES (340503, 340500, '花山区', 2, 0, 3); +INSERT INTO `area` VALUES (340504, 340500, '雨山区', 2, 0, 3); +INSERT INTO `area` VALUES (340506, 340500, '博望区', 2, 0, 3); +INSERT INTO `area` VALUES (340521, 340500, '当涂县', 2, 0, 3); +INSERT INTO `area` VALUES (340522, 340500, '含山县', 2, 0, 3); +INSERT INTO `area` VALUES (340523, 340500, '和县', 2, 0, 3); +INSERT INTO `area` VALUES (340600, 340000, '淮北市', 2, 0, 2); +INSERT INTO `area` VALUES (340602, 340600, '杜集区', 2, 0, 3); +INSERT INTO `area` VALUES (340603, 340600, '相山区', 2, 0, 3); +INSERT INTO `area` VALUES (340604, 340600, '烈山区', 2, 0, 3); +INSERT INTO `area` VALUES (340621, 340600, '濉溪县', 2, 0, 3); +INSERT INTO `area` VALUES (340622, 340600, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (340700, 340000, '铜陵市', 2, 0, 2); +INSERT INTO `area` VALUES (340702, 340700, '铜官山区', 2, 0, 3); +INSERT INTO `area` VALUES (340703, 340700, '狮子山区', 2, 0, 3); +INSERT INTO `area` VALUES (340711, 340700, '郊区', 2, 0, 3); +INSERT INTO `area` VALUES (340721, 340700, '铜陵县', 2, 0, 3); +INSERT INTO `area` VALUES (340722, 340700, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (340800, 340000, '安庆市', 2, 0, 2); +INSERT INTO `area` VALUES (340802, 340800, '迎江区', 2, 0, 3); +INSERT INTO `area` VALUES (340803, 340800, '大观区', 2, 0, 3); +INSERT INTO `area` VALUES (340811, 340800, '宜秀区', 2, 0, 3); +INSERT INTO `area` VALUES (340822, 340800, '怀宁县', 2, 0, 3); +INSERT INTO `area` VALUES (340823, 340800, '枞阳县', 2, 0, 3); +INSERT INTO `area` VALUES (340824, 340800, '潜山县', 2, 0, 3); +INSERT INTO `area` VALUES (340825, 340800, '太湖县', 2, 0, 3); +INSERT INTO `area` VALUES (340826, 340800, '宿松县', 2, 0, 3); +INSERT INTO `area` VALUES (340827, 340800, '望江县', 2, 0, 3); +INSERT INTO `area` VALUES (340828, 340800, '岳西县', 2, 0, 3); +INSERT INTO `area` VALUES (340881, 340800, '桐城市', 2, 0, 3); +INSERT INTO `area` VALUES (340882, 340800, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (341000, 340000, '黄山市', 2, 0, 2); +INSERT INTO `area` VALUES (341002, 341000, '屯溪区', 2, 0, 3); +INSERT INTO `area` VALUES (341003, 341000, '黄山区', 2, 0, 3); +INSERT INTO `area` VALUES (341004, 341000, '徽州区', 2, 0, 3); +INSERT INTO `area` VALUES (341021, 341000, '歙县', 2, 0, 3); +INSERT INTO `area` VALUES (341022, 341000, '休宁县', 2, 0, 3); +INSERT INTO `area` VALUES (341023, 341000, '黟县', 2, 0, 3); +INSERT INTO `area` VALUES (341024, 341000, '祁门县', 2, 0, 3); +INSERT INTO `area` VALUES (341025, 341000, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (341100, 340000, '滁州市', 2, 0, 2); +INSERT INTO `area` VALUES (341102, 341100, '琅琊区', 2, 0, 3); +INSERT INTO `area` VALUES (341103, 341100, '南谯区', 2, 0, 3); +INSERT INTO `area` VALUES (341122, 341100, '来安县', 2, 0, 3); +INSERT INTO `area` VALUES (341124, 341100, '全椒县', 2, 0, 3); +INSERT INTO `area` VALUES (341125, 341100, '定远县', 2, 0, 3); +INSERT INTO `area` VALUES (341126, 341100, '凤阳县', 2, 0, 3); +INSERT INTO `area` VALUES (341181, 341100, '天长市', 2, 0, 3); +INSERT INTO `area` VALUES (341182, 341100, '明光市', 2, 0, 3); +INSERT INTO `area` VALUES (341183, 341100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (341200, 340000, '阜阳市', 2, 0, 2); +INSERT INTO `area` VALUES (341202, 341200, '颍州区', 2, 0, 3); +INSERT INTO `area` VALUES (341203, 341200, '颍东区', 2, 0, 3); +INSERT INTO `area` VALUES (341204, 341200, '颍泉区', 2, 0, 3); +INSERT INTO `area` VALUES (341221, 341200, '临泉县', 2, 0, 3); +INSERT INTO `area` VALUES (341222, 341200, '太和县', 2, 0, 3); +INSERT INTO `area` VALUES (341225, 341200, '阜南县', 2, 0, 3); +INSERT INTO `area` VALUES (341226, 341200, '颍上县', 2, 0, 3); +INSERT INTO `area` VALUES (341282, 341200, '界首市', 2, 0, 3); +INSERT INTO `area` VALUES (341283, 341200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (341300, 340000, '宿州市', 2, 0, 2); +INSERT INTO `area` VALUES (341302, 341300, '埇桥区', 2, 0, 3); +INSERT INTO `area` VALUES (341321, 341300, '砀山县', 2, 0, 3); +INSERT INTO `area` VALUES (341322, 341300, '萧县', 2, 0, 3); +INSERT INTO `area` VALUES (341323, 341300, '灵璧县', 2, 0, 3); +INSERT INTO `area` VALUES (341324, 341300, '泗县', 2, 0, 3); +INSERT INTO `area` VALUES (341325, 341300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (341400, 340100, '巢湖市', 2, 0, 3); +INSERT INTO `area` VALUES (341402, 340100, '居巢区', 2, 0, 3); +INSERT INTO `area` VALUES (341421, 340100, '庐江县', 2, 0, 3); +INSERT INTO `area` VALUES (341422, 340200, '无为县', 2, 0, 3); +INSERT INTO `area` VALUES (341423, 340500, '含山县', 2, 0, 3); +INSERT INTO `area` VALUES (341424, 340500, '和县', 2, 0, 3); +INSERT INTO `area` VALUES (341500, 340000, '六安市', 2, 0, 2); +INSERT INTO `area` VALUES (341502, 341500, '金安区', 2, 0, 3); +INSERT INTO `area` VALUES (341503, 341500, '裕安区', 2, 0, 3); +INSERT INTO `area` VALUES (341521, 341500, '寿县', 2, 0, 3); +INSERT INTO `area` VALUES (341522, 341500, '霍邱县', 2, 0, 3); +INSERT INTO `area` VALUES (341523, 341500, '舒城县', 2, 0, 3); +INSERT INTO `area` VALUES (341524, 341500, '金寨县', 2, 0, 3); +INSERT INTO `area` VALUES (341525, 341500, '霍山县', 2, 0, 3); +INSERT INTO `area` VALUES (341526, 341500, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (341600, 340000, '亳州市', 2, 0, 2); +INSERT INTO `area` VALUES (341602, 341600, '谯城区', 2, 0, 3); +INSERT INTO `area` VALUES (341621, 341600, '涡阳县', 2, 0, 3); +INSERT INTO `area` VALUES (341622, 341600, '蒙城县', 2, 0, 3); +INSERT INTO `area` VALUES (341623, 341600, '利辛县', 2, 0, 3); +INSERT INTO `area` VALUES (341624, 341600, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (341700, 340000, '池州市', 2, 0, 2); +INSERT INTO `area` VALUES (341702, 341700, '贵池区', 2, 0, 3); +INSERT INTO `area` VALUES (341721, 341700, '东至县', 2, 0, 3); +INSERT INTO `area` VALUES (341722, 341700, '石台县', 2, 0, 3); +INSERT INTO `area` VALUES (341723, 341700, '青阳县', 2, 0, 3); +INSERT INTO `area` VALUES (341724, 341700, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (341800, 340000, '宣城市', 2, 0, 2); +INSERT INTO `area` VALUES (341802, 341800, '宣州区', 2, 0, 3); +INSERT INTO `area` VALUES (341821, 341800, '郎溪县', 2, 0, 3); +INSERT INTO `area` VALUES (341822, 341800, '广德县', 2, 0, 3); +INSERT INTO `area` VALUES (341823, 341800, '泾县', 2, 0, 3); +INSERT INTO `area` VALUES (341824, 341800, '绩溪县', 2, 0, 3); +INSERT INTO `area` VALUES (341825, 341800, '旌德县', 2, 0, 3); +INSERT INTO `area` VALUES (341881, 341800, '宁国市', 2, 0, 3); +INSERT INTO `area` VALUES (341882, 341800, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (350000, 0, '福建省', 2, 0, 1); +INSERT INTO `area` VALUES (350100, 350000, '福州市', 2, 0, 2); +INSERT INTO `area` VALUES (350102, 350100, '鼓楼区', 2, 0, 3); +INSERT INTO `area` VALUES (350103, 350100, '台江区', 2, 0, 3); +INSERT INTO `area` VALUES (350104, 350100, '仓山区', 2, 0, 3); +INSERT INTO `area` VALUES (350105, 350100, '马尾区', 2, 0, 3); +INSERT INTO `area` VALUES (350111, 350100, '晋安区', 2, 0, 3); +INSERT INTO `area` VALUES (350121, 350100, '闽侯县', 2, 0, 3); +INSERT INTO `area` VALUES (350122, 350100, '连江县', 2, 0, 3); +INSERT INTO `area` VALUES (350123, 350100, '罗源县', 2, 0, 3); +INSERT INTO `area` VALUES (350124, 350100, '闽清县', 2, 0, 3); +INSERT INTO `area` VALUES (350125, 350100, '永泰县', 2, 0, 3); +INSERT INTO `area` VALUES (350128, 350100, '平潭县', 2, 0, 3); +INSERT INTO `area` VALUES (350181, 350100, '福清市', 2, 0, 3); +INSERT INTO `area` VALUES (350182, 350100, '长乐市', 2, 0, 3); +INSERT INTO `area` VALUES (350183, 350100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (350200, 350000, '厦门市', 2, 0, 2); +INSERT INTO `area` VALUES (350203, 350200, '思明区', 2, 0, 3); +INSERT INTO `area` VALUES (350205, 350200, '海沧区', 2, 0, 3); +INSERT INTO `area` VALUES (350206, 350200, '湖里区', 2, 0, 3); +INSERT INTO `area` VALUES (350211, 350200, '集美区', 2, 0, 3); +INSERT INTO `area` VALUES (350212, 350200, '同安区', 2, 0, 3); +INSERT INTO `area` VALUES (350213, 350200, '翔安区', 2, 0, 3); +INSERT INTO `area` VALUES (350214, 350200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (350300, 350000, '莆田市', 2, 0, 2); +INSERT INTO `area` VALUES (350302, 350300, '城厢区', 2, 0, 3); +INSERT INTO `area` VALUES (350303, 350300, '涵江区', 2, 0, 3); +INSERT INTO `area` VALUES (350304, 350300, '荔城区', 2, 0, 3); +INSERT INTO `area` VALUES (350305, 350300, '秀屿区', 2, 0, 3); +INSERT INTO `area` VALUES (350322, 350300, '仙游县', 2, 0, 3); +INSERT INTO `area` VALUES (350323, 350300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (350400, 350000, '三明市', 2, 0, 2); +INSERT INTO `area` VALUES (350402, 350400, '梅列区', 2, 0, 3); +INSERT INTO `area` VALUES (350403, 350400, '三元区', 2, 0, 3); +INSERT INTO `area` VALUES (350421, 350400, '明溪县', 2, 0, 3); +INSERT INTO `area` VALUES (350423, 350400, '清流县', 2, 0, 3); +INSERT INTO `area` VALUES (350424, 350400, '宁化县', 2, 0, 3); +INSERT INTO `area` VALUES (350425, 350400, '大田县', 2, 0, 3); +INSERT INTO `area` VALUES (350426, 350400, '尤溪县', 2, 0, 3); +INSERT INTO `area` VALUES (350427, 350400, '沙县', 2, 0, 3); +INSERT INTO `area` VALUES (350428, 350400, '将乐县', 2, 0, 3); +INSERT INTO `area` VALUES (350429, 350400, '泰宁县', 2, 0, 3); +INSERT INTO `area` VALUES (350430, 350400, '建宁县', 2, 0, 3); +INSERT INTO `area` VALUES (350481, 350400, '永安市', 2, 0, 3); +INSERT INTO `area` VALUES (350482, 350400, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (350500, 350000, '泉州市', 2, 0, 2); +INSERT INTO `area` VALUES (350502, 350500, '鲤城区', 2, 0, 3); +INSERT INTO `area` VALUES (350503, 350500, '丰泽区', 2, 0, 3); +INSERT INTO `area` VALUES (350504, 350500, '洛江区', 2, 0, 3); +INSERT INTO `area` VALUES (350505, 350500, '泉港区', 2, 0, 3); +INSERT INTO `area` VALUES (350521, 350500, '惠安县', 2, 0, 3); +INSERT INTO `area` VALUES (350524, 350500, '安溪县', 2, 0, 3); +INSERT INTO `area` VALUES (350525, 350500, '永春县', 2, 0, 3); +INSERT INTO `area` VALUES (350526, 350500, '德化县', 2, 0, 3); +INSERT INTO `area` VALUES (350527, 350500, '金门县', 2, 0, 3); +INSERT INTO `area` VALUES (350581, 350500, '石狮市', 2, 0, 3); +INSERT INTO `area` VALUES (350582, 350500, '晋江市', 2, 0, 3); +INSERT INTO `area` VALUES (350583, 350500, '南安市', 2, 0, 3); +INSERT INTO `area` VALUES (350584, 350500, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (350600, 350000, '漳州市', 2, 0, 2); +INSERT INTO `area` VALUES (350602, 350600, '芗城区', 2, 0, 3); +INSERT INTO `area` VALUES (350603, 350600, '龙文区', 2, 0, 3); +INSERT INTO `area` VALUES (350622, 350600, '云霄县', 2, 0, 3); +INSERT INTO `area` VALUES (350623, 350600, '漳浦县', 2, 0, 3); +INSERT INTO `area` VALUES (350624, 350600, '诏安县', 2, 0, 3); +INSERT INTO `area` VALUES (350625, 350600, '长泰县', 2, 0, 3); +INSERT INTO `area` VALUES (350626, 350600, '东山县', 2, 0, 3); +INSERT INTO `area` VALUES (350627, 350600, '南靖县', 2, 0, 3); +INSERT INTO `area` VALUES (350628, 350600, '平和县', 2, 0, 3); +INSERT INTO `area` VALUES (350629, 350600, '华安县', 2, 0, 3); +INSERT INTO `area` VALUES (350681, 350600, '龙海市', 2, 0, 3); +INSERT INTO `area` VALUES (350682, 350600, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (350700, 350000, '南平市', 2, 0, 2); +INSERT INTO `area` VALUES (350702, 350700, '延平区', 2, 0, 3); +INSERT INTO `area` VALUES (350703, 350700, '建阳区', 2, 0, 3); +INSERT INTO `area` VALUES (350721, 350700, '顺昌县', 2, 0, 3); +INSERT INTO `area` VALUES (350722, 350700, '浦城县', 2, 0, 3); +INSERT INTO `area` VALUES (350723, 350700, '光泽县', 2, 0, 3); +INSERT INTO `area` VALUES (350724, 350700, '松溪县', 2, 0, 3); +INSERT INTO `area` VALUES (350725, 350700, '政和县', 2, 0, 3); +INSERT INTO `area` VALUES (350781, 350700, '邵武市', 2, 0, 3); +INSERT INTO `area` VALUES (350782, 350700, '武夷山市', 2, 0, 3); +INSERT INTO `area` VALUES (350783, 350700, '建瓯市', 2, 0, 3); +INSERT INTO `area` VALUES (350784, 350700, '建阳市', 2, 0, 3); +INSERT INTO `area` VALUES (350785, 350700, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (350800, 350000, '龙岩市', 2, 0, 2); +INSERT INTO `area` VALUES (350802, 350800, '新罗区', 2, 0, 3); +INSERT INTO `area` VALUES (350803, 350800, '永定区', 2, 0, 3); +INSERT INTO `area` VALUES (350821, 350800, '长汀县', 2, 0, 3); +INSERT INTO `area` VALUES (350822, 350800, '永定县', 2, 0, 3); +INSERT INTO `area` VALUES (350823, 350800, '上杭县', 2, 0, 3); +INSERT INTO `area` VALUES (350824, 350800, '武平县', 2, 0, 3); +INSERT INTO `area` VALUES (350825, 350800, '连城县', 2, 0, 3); +INSERT INTO `area` VALUES (350881, 350800, '漳平市', 2, 0, 3); +INSERT INTO `area` VALUES (350882, 350800, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (350900, 350000, '宁德市', 2, 0, 2); +INSERT INTO `area` VALUES (350902, 350900, '蕉城区', 2, 0, 3); +INSERT INTO `area` VALUES (350921, 350900, '霞浦县', 2, 0, 3); +INSERT INTO `area` VALUES (350922, 350900, '古田县', 2, 0, 3); +INSERT INTO `area` VALUES (350923, 350900, '屏南县', 2, 0, 3); +INSERT INTO `area` VALUES (350924, 350900, '寿宁县', 2, 0, 3); +INSERT INTO `area` VALUES (350925, 350900, '周宁县', 2, 0, 3); +INSERT INTO `area` VALUES (350926, 350900, '柘荣县', 2, 0, 3); +INSERT INTO `area` VALUES (350981, 350900, '福安市', 2, 0, 3); +INSERT INTO `area` VALUES (350982, 350900, '福鼎市', 2, 0, 3); +INSERT INTO `area` VALUES (350983, 350900, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (360000, 0, '江西省', 2, 0, 1); +INSERT INTO `area` VALUES (360100, 360000, '南昌市', 2, 0, 2); +INSERT INTO `area` VALUES (360102, 360100, '东湖区', 2, 0, 3); +INSERT INTO `area` VALUES (360103, 360100, '西湖区', 2, 0, 3); +INSERT INTO `area` VALUES (360104, 360100, '青云谱区', 2, 0, 3); +INSERT INTO `area` VALUES (360105, 360100, '湾里区', 2, 0, 3); +INSERT INTO `area` VALUES (360111, 360100, '青山湖区', 2, 0, 3); +INSERT INTO `area` VALUES (360121, 360100, '南昌县', 2, 0, 3); +INSERT INTO `area` VALUES (360122, 360100, '新建县', 2, 0, 3); +INSERT INTO `area` VALUES (360123, 360100, '安义县', 2, 0, 3); +INSERT INTO `area` VALUES (360124, 360100, '进贤县', 2, 0, 3); +INSERT INTO `area` VALUES (360125, 360100, '红谷滩新区', 2, 0, 3); +INSERT INTO `area` VALUES (360126, 360100, '经济技术开发区', 2, 0, 3); +INSERT INTO `area` VALUES (360127, 360100, '昌北区', 2, 0, 3); +INSERT INTO `area` VALUES (360128, 360100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (360200, 360000, '景德镇市', 2, 0, 2); +INSERT INTO `area` VALUES (360202, 360200, '昌江区', 2, 0, 3); +INSERT INTO `area` VALUES (360203, 360200, '珠山区', 2, 0, 3); +INSERT INTO `area` VALUES (360222, 360200, '浮梁县', 2, 0, 3); +INSERT INTO `area` VALUES (360281, 360200, '乐平市', 2, 0, 3); +INSERT INTO `area` VALUES (360282, 360200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (360300, 360000, '萍乡市', 2, 0, 2); +INSERT INTO `area` VALUES (360302, 360300, '安源区', 2, 0, 3); +INSERT INTO `area` VALUES (360313, 360300, '湘东区', 2, 0, 3); +INSERT INTO `area` VALUES (360321, 360300, '莲花县', 2, 0, 3); +INSERT INTO `area` VALUES (360322, 360300, '上栗县', 2, 0, 3); +INSERT INTO `area` VALUES (360323, 360300, '芦溪县', 2, 0, 3); +INSERT INTO `area` VALUES (360324, 360300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (360400, 360000, '九江市', 2, 0, 2); +INSERT INTO `area` VALUES (360402, 360400, '庐山区', 2, 0, 3); +INSERT INTO `area` VALUES (360403, 360400, '浔阳区', 2, 0, 3); +INSERT INTO `area` VALUES (360421, 360400, '九江县', 2, 0, 3); +INSERT INTO `area` VALUES (360423, 360400, '武宁县', 2, 0, 3); +INSERT INTO `area` VALUES (360424, 360400, '修水县', 2, 0, 3); +INSERT INTO `area` VALUES (360425, 360400, '永修县', 2, 0, 3); +INSERT INTO `area` VALUES (360426, 360400, '德安县', 2, 0, 3); +INSERT INTO `area` VALUES (360427, 360400, '星子县', 2, 0, 3); +INSERT INTO `area` VALUES (360428, 360400, '都昌县', 2, 0, 3); +INSERT INTO `area` VALUES (360429, 360400, '湖口县', 2, 0, 3); +INSERT INTO `area` VALUES (360430, 360400, '彭泽县', 2, 0, 3); +INSERT INTO `area` VALUES (360481, 360400, '瑞昌市', 2, 0, 3); +INSERT INTO `area` VALUES (360482, 360400, '共青城市', 2, 0, 3); +INSERT INTO `area` VALUES (360500, 360000, '新余市', 2, 0, 2); +INSERT INTO `area` VALUES (360502, 360500, '渝水区', 2, 0, 3); +INSERT INTO `area` VALUES (360521, 360500, '分宜县', 2, 0, 3); +INSERT INTO `area` VALUES (360522, 360500, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (360600, 360000, '鹰潭市', 2, 0, 2); +INSERT INTO `area` VALUES (360602, 360600, '月湖区', 2, 0, 3); +INSERT INTO `area` VALUES (360622, 360600, '余江县', 2, 0, 3); +INSERT INTO `area` VALUES (360681, 360600, '贵溪市', 2, 0, 3); +INSERT INTO `area` VALUES (360682, 360600, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (360700, 360000, '赣州市', 2, 0, 2); +INSERT INTO `area` VALUES (360702, 360700, '章贡区', 2, 0, 3); +INSERT INTO `area` VALUES (360703, 360700, '南康区', 2, 0, 3); +INSERT INTO `area` VALUES (360721, 360700, '赣县', 2, 0, 3); +INSERT INTO `area` VALUES (360722, 360700, '信丰县', 2, 0, 3); +INSERT INTO `area` VALUES (360723, 360700, '大余县', 2, 0, 3); +INSERT INTO `area` VALUES (360724, 360700, '上犹县', 2, 0, 3); +INSERT INTO `area` VALUES (360725, 360700, '崇义县', 2, 0, 3); +INSERT INTO `area` VALUES (360726, 360700, '安远县', 2, 0, 3); +INSERT INTO `area` VALUES (360727, 360700, '龙南县', 2, 0, 3); +INSERT INTO `area` VALUES (360728, 360700, '定南县', 2, 0, 3); +INSERT INTO `area` VALUES (360729, 360700, '全南县', 2, 0, 3); +INSERT INTO `area` VALUES (360730, 360700, '宁都县', 2, 0, 3); +INSERT INTO `area` VALUES (360731, 360700, '于都县', 2, 0, 3); +INSERT INTO `area` VALUES (360732, 360700, '兴国县', 2, 0, 3); +INSERT INTO `area` VALUES (360733, 360700, '会昌县', 2, 0, 3); +INSERT INTO `area` VALUES (360734, 360700, '寻乌县', 2, 0, 3); +INSERT INTO `area` VALUES (360735, 360700, '石城县', 2, 0, 3); +INSERT INTO `area` VALUES (360751, 360700, '黄金区', 2, 0, 3); +INSERT INTO `area` VALUES (360781, 360700, '瑞金市', 2, 0, 3); +INSERT INTO `area` VALUES (360782, 360700, '南康市', 2, 0, 3); +INSERT INTO `area` VALUES (360783, 360700, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (360800, 360000, '吉安市', 2, 0, 2); +INSERT INTO `area` VALUES (360802, 360800, '吉州区', 2, 0, 3); +INSERT INTO `area` VALUES (360803, 360800, '青原区', 2, 0, 3); +INSERT INTO `area` VALUES (360821, 360800, '吉安县', 2, 0, 3); +INSERT INTO `area` VALUES (360822, 360800, '吉水县', 2, 0, 3); +INSERT INTO `area` VALUES (360823, 360800, '峡江县', 2, 0, 3); +INSERT INTO `area` VALUES (360824, 360800, '新干县', 2, 0, 3); +INSERT INTO `area` VALUES (360825, 360800, '永丰县', 2, 0, 3); +INSERT INTO `area` VALUES (360826, 360800, '泰和县', 2, 0, 3); +INSERT INTO `area` VALUES (360827, 360800, '遂川县', 2, 0, 3); +INSERT INTO `area` VALUES (360828, 360800, '万安县', 2, 0, 3); +INSERT INTO `area` VALUES (360829, 360800, '安福县', 2, 0, 3); +INSERT INTO `area` VALUES (360830, 360800, '永新县', 2, 0, 3); +INSERT INTO `area` VALUES (360881, 360800, '井冈山市', 2, 0, 3); +INSERT INTO `area` VALUES (360882, 360800, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (360900, 360000, '宜春市', 2, 0, 2); +INSERT INTO `area` VALUES (360902, 360900, '袁州区', 2, 0, 3); +INSERT INTO `area` VALUES (360921, 360900, '奉新县', 2, 0, 3); +INSERT INTO `area` VALUES (360922, 360900, '万载县', 2, 0, 3); +INSERT INTO `area` VALUES (360923, 360900, '上高县', 2, 0, 3); +INSERT INTO `area` VALUES (360924, 360900, '宜丰县', 2, 0, 3); +INSERT INTO `area` VALUES (360925, 360900, '靖安县', 2, 0, 3); +INSERT INTO `area` VALUES (360926, 360900, '铜鼓县', 2, 0, 3); +INSERT INTO `area` VALUES (360981, 360900, '丰城市', 2, 0, 3); +INSERT INTO `area` VALUES (360982, 360900, '樟树市', 2, 0, 3); +INSERT INTO `area` VALUES (360983, 360900, '高安市', 2, 0, 3); +INSERT INTO `area` VALUES (360984, 360900, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (361000, 360000, '抚州市', 2, 0, 2); +INSERT INTO `area` VALUES (361002, 361000, '临川区', 2, 0, 3); +INSERT INTO `area` VALUES (361021, 361000, '南城县', 2, 0, 3); +INSERT INTO `area` VALUES (361022, 361000, '黎川县', 2, 0, 3); +INSERT INTO `area` VALUES (361023, 361000, '南丰县', 2, 0, 3); +INSERT INTO `area` VALUES (361024, 361000, '崇仁县', 2, 0, 3); +INSERT INTO `area` VALUES (361025, 361000, '乐安县', 2, 0, 3); +INSERT INTO `area` VALUES (361026, 361000, '宜黄县', 2, 0, 3); +INSERT INTO `area` VALUES (361027, 361000, '金溪县', 2, 0, 3); +INSERT INTO `area` VALUES (361028, 361000, '资溪县', 2, 0, 3); +INSERT INTO `area` VALUES (361029, 361000, '东乡县', 2, 0, 3); +INSERT INTO `area` VALUES (361030, 361000, '广昌县', 2, 0, 3); +INSERT INTO `area` VALUES (361031, 361000, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (361100, 360000, '上饶市', 2, 0, 2); +INSERT INTO `area` VALUES (361102, 361100, '信州区', 2, 0, 3); +INSERT INTO `area` VALUES (361103, 361100, '广丰区', 2, 0, 3); +INSERT INTO `area` VALUES (361121, 361100, '上饶县', 2, 0, 3); +INSERT INTO `area` VALUES (361122, 361100, '广丰县', 2, 0, 3); +INSERT INTO `area` VALUES (361123, 361100, '玉山县', 2, 0, 3); +INSERT INTO `area` VALUES (361124, 361100, '铅山县', 2, 0, 3); +INSERT INTO `area` VALUES (361125, 361100, '横峰县', 2, 0, 3); +INSERT INTO `area` VALUES (361126, 361100, '弋阳县', 2, 0, 3); +INSERT INTO `area` VALUES (361127, 361100, '余干县', 2, 0, 3); +INSERT INTO `area` VALUES (361128, 361100, '鄱阳县', 2, 0, 3); +INSERT INTO `area` VALUES (361129, 361100, '万年县', 2, 0, 3); +INSERT INTO `area` VALUES (361130, 361100, '婺源县', 2, 0, 3); +INSERT INTO `area` VALUES (361181, 361100, '德兴市', 2, 0, 3); +INSERT INTO `area` VALUES (361182, 361100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (370000, 0, '山东省', 2, 0, 1); +INSERT INTO `area` VALUES (370100, 370000, '济南市', 2, 0, 2); +INSERT INTO `area` VALUES (370102, 370100, '历下区', 2, 0, 3); +INSERT INTO `area` VALUES (370103, 370100, '市中区', 2, 0, 3); +INSERT INTO `area` VALUES (370104, 370100, '槐荫区', 2, 0, 3); +INSERT INTO `area` VALUES (370105, 370100, '天桥区', 2, 0, 3); +INSERT INTO `area` VALUES (370112, 370100, '历城区', 2, 0, 3); +INSERT INTO `area` VALUES (370113, 370100, '长清区', 2, 0, 3); +INSERT INTO `area` VALUES (370124, 370100, '平阴县', 2, 0, 3); +INSERT INTO `area` VALUES (370125, 370100, '济阳县', 2, 0, 3); +INSERT INTO `area` VALUES (370126, 370100, '商河县', 2, 0, 3); +INSERT INTO `area` VALUES (370181, 370100, '章丘市', 2, 0, 3); +INSERT INTO `area` VALUES (370182, 370100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (370200, 370000, '青岛市', 2, 0, 2); +INSERT INTO `area` VALUES (370202, 370200, '市南区', 2, 0, 3); +INSERT INTO `area` VALUES (370203, 370200, '市北区', 2, 0, 3); +INSERT INTO `area` VALUES (370205, 370200, '四方区', 2, 0, 3); +INSERT INTO `area` VALUES (370211, 370200, '黄岛区', 2, 0, 3); +INSERT INTO `area` VALUES (370212, 370200, '崂山区', 2, 0, 3); +INSERT INTO `area` VALUES (370213, 370200, '李沧区', 2, 0, 3); +INSERT INTO `area` VALUES (370214, 370200, '城阳区', 2, 0, 3); +INSERT INTO `area` VALUES (370251, 370200, '开发区', 2, 0, 3); +INSERT INTO `area` VALUES (370281, 370200, '胶州市', 2, 0, 3); +INSERT INTO `area` VALUES (370282, 370200, '即墨市', 2, 0, 3); +INSERT INTO `area` VALUES (370283, 370200, '平度市', 2, 0, 3); +INSERT INTO `area` VALUES (370284, 370200, '胶南市', 2, 0, 3); +INSERT INTO `area` VALUES (370285, 370200, '莱西市', 2, 0, 3); +INSERT INTO `area` VALUES (370286, 370200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (370300, 370000, '淄博市', 2, 0, 2); +INSERT INTO `area` VALUES (370302, 370300, '淄川区', 2, 0, 3); +INSERT INTO `area` VALUES (370303, 370300, '张店区', 2, 0, 3); +INSERT INTO `area` VALUES (370304, 370300, '博山区', 2, 0, 3); +INSERT INTO `area` VALUES (370305, 370300, '临淄区', 2, 0, 3); +INSERT INTO `area` VALUES (370306, 370300, '周村区', 2, 0, 3); +INSERT INTO `area` VALUES (370321, 370300, '桓台县', 2, 0, 3); +INSERT INTO `area` VALUES (370322, 370300, '高青县', 2, 0, 3); +INSERT INTO `area` VALUES (370323, 370300, '沂源县', 2, 0, 3); +INSERT INTO `area` VALUES (370324, 370300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (370400, 370000, '枣庄市', 2, 0, 2); +INSERT INTO `area` VALUES (370402, 370400, '市中区', 2, 0, 3); +INSERT INTO `area` VALUES (370403, 370400, '薛城区', 2, 0, 3); +INSERT INTO `area` VALUES (370404, 370400, '峄城区', 2, 0, 3); +INSERT INTO `area` VALUES (370405, 370400, '台儿庄区', 2, 0, 3); +INSERT INTO `area` VALUES (370406, 370400, '山亭区', 2, 0, 3); +INSERT INTO `area` VALUES (370481, 370400, '滕州市', 2, 0, 3); +INSERT INTO `area` VALUES (370482, 370400, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (370500, 370000, '东营市', 2, 0, 2); +INSERT INTO `area` VALUES (370502, 370500, '东营区', 2, 0, 3); +INSERT INTO `area` VALUES (370503, 370500, '河口区', 2, 0, 3); +INSERT INTO `area` VALUES (370521, 370500, '垦利县', 2, 0, 3); +INSERT INTO `area` VALUES (370522, 370500, '利津县', 2, 0, 3); +INSERT INTO `area` VALUES (370523, 370500, '广饶县', 2, 0, 3); +INSERT INTO `area` VALUES (370589, 370500, '西城区', 2, 0, 3); +INSERT INTO `area` VALUES (370590, 370500, '东城区', 2, 0, 3); +INSERT INTO `area` VALUES (370591, 370500, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (370600, 370000, '烟台市', 2, 0, 2); +INSERT INTO `area` VALUES (370602, 370600, '芝罘区', 2, 0, 3); +INSERT INTO `area` VALUES (370611, 370600, '福山区', 2, 0, 3); +INSERT INTO `area` VALUES (370612, 370600, '牟平区', 2, 0, 3); +INSERT INTO `area` VALUES (370613, 370600, '莱山区', 2, 0, 3); +INSERT INTO `area` VALUES (370634, 370600, '长岛县', 2, 0, 3); +INSERT INTO `area` VALUES (370681, 370600, '龙口市', 2, 0, 3); +INSERT INTO `area` VALUES (370682, 370600, '莱阳市', 2, 0, 3); +INSERT INTO `area` VALUES (370683, 370600, '莱州市', 2, 0, 3); +INSERT INTO `area` VALUES (370684, 370600, '蓬莱市', 2, 0, 3); +INSERT INTO `area` VALUES (370685, 370600, '招远市', 2, 0, 3); +INSERT INTO `area` VALUES (370686, 370600, '栖霞市', 2, 0, 3); +INSERT INTO `area` VALUES (370687, 370600, '海阳市', 2, 0, 3); +INSERT INTO `area` VALUES (370688, 370600, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (370700, 370000, '潍坊市', 2, 0, 2); +INSERT INTO `area` VALUES (370702, 370700, '潍城区', 2, 0, 3); +INSERT INTO `area` VALUES (370703, 370700, '寒亭区', 2, 0, 3); +INSERT INTO `area` VALUES (370704, 370700, '坊子区', 2, 0, 3); +INSERT INTO `area` VALUES (370705, 370700, '奎文区', 2, 0, 3); +INSERT INTO `area` VALUES (370724, 370700, '临朐县', 2, 0, 3); +INSERT INTO `area` VALUES (370725, 370700, '昌乐县', 2, 0, 3); +INSERT INTO `area` VALUES (370751, 370700, '开发区', 2, 0, 3); +INSERT INTO `area` VALUES (370781, 370700, '青州市', 2, 0, 3); +INSERT INTO `area` VALUES (370782, 370700, '诸城市', 2, 0, 3); +INSERT INTO `area` VALUES (370783, 370700, '寿光市', 2, 0, 3); +INSERT INTO `area` VALUES (370784, 370700, '安丘市', 2, 0, 3); +INSERT INTO `area` VALUES (370785, 370700, '高密市', 2, 0, 3); +INSERT INTO `area` VALUES (370786, 370700, '昌邑市', 2, 0, 3); +INSERT INTO `area` VALUES (370787, 370700, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (370800, 370000, '济宁市', 2, 0, 2); +INSERT INTO `area` VALUES (370802, 370800, '市中区', 2, 0, 3); +INSERT INTO `area` VALUES (370811, 370800, '任城区', 2, 0, 3); +INSERT INTO `area` VALUES (370812, 370800, '兖州区', 2, 0, 3); +INSERT INTO `area` VALUES (370826, 370800, '微山县', 2, 0, 3); +INSERT INTO `area` VALUES (370827, 370800, '鱼台县', 2, 0, 3); +INSERT INTO `area` VALUES (370828, 370800, '金乡县', 2, 0, 3); +INSERT INTO `area` VALUES (370829, 370800, '嘉祥县', 2, 0, 3); +INSERT INTO `area` VALUES (370830, 370800, '汶上县', 2, 0, 3); +INSERT INTO `area` VALUES (370831, 370800, '泗水县', 2, 0, 3); +INSERT INTO `area` VALUES (370832, 370800, '梁山县', 2, 0, 3); +INSERT INTO `area` VALUES (370881, 370800, '曲阜市', 2, 0, 3); +INSERT INTO `area` VALUES (370882, 370800, '兖州市', 2, 0, 3); +INSERT INTO `area` VALUES (370883, 370800, '邹城市', 2, 0, 3); +INSERT INTO `area` VALUES (370884, 370800, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (370900, 370000, '泰安市', 2, 0, 2); +INSERT INTO `area` VALUES (370902, 370900, '泰山区', 2, 0, 3); +INSERT INTO `area` VALUES (370903, 370900, '岱岳区', 2, 0, 3); +INSERT INTO `area` VALUES (370911, 370900, '岱岳区', 2, 0, 3); +INSERT INTO `area` VALUES (370921, 370900, '宁阳县', 2, 0, 3); +INSERT INTO `area` VALUES (370923, 370900, '东平县', 2, 0, 3); +INSERT INTO `area` VALUES (370982, 370900, '新泰市', 2, 0, 3); +INSERT INTO `area` VALUES (370983, 370900, '肥城市', 2, 0, 3); +INSERT INTO `area` VALUES (370984, 370900, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (371000, 370000, '威海市', 2, 0, 2); +INSERT INTO `area` VALUES (371002, 371000, '环翠区', 2, 0, 3); +INSERT INTO `area` VALUES (371081, 371000, '文登市', 2, 0, 3); +INSERT INTO `area` VALUES (371082, 371000, '荣成市', 2, 0, 3); +INSERT INTO `area` VALUES (371083, 371000, '乳山市', 2, 0, 3); +INSERT INTO `area` VALUES (371084, 371000, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (371100, 370000, '日照市', 2, 0, 2); +INSERT INTO `area` VALUES (371102, 371100, '东港区', 2, 0, 3); +INSERT INTO `area` VALUES (371103, 371100, '岚山区', 2, 0, 3); +INSERT INTO `area` VALUES (371121, 371100, '五莲县', 2, 0, 3); +INSERT INTO `area` VALUES (371122, 371100, '莒县', 2, 0, 3); +INSERT INTO `area` VALUES (371123, 371100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (371200, 370000, '莱芜市', 2, 0, 2); +INSERT INTO `area` VALUES (371202, 371200, '莱城区', 2, 0, 3); +INSERT INTO `area` VALUES (371203, 371200, '钢城区', 2, 0, 3); +INSERT INTO `area` VALUES (371204, 371200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (371300, 370000, '临沂市', 2, 0, 2); +INSERT INTO `area` VALUES (371302, 371300, '兰山区', 2, 0, 3); +INSERT INTO `area` VALUES (371311, 371300, '罗庄区', 2, 0, 3); +INSERT INTO `area` VALUES (371312, 371300, '河东区', 2, 0, 3); +INSERT INTO `area` VALUES (371321, 371300, '沂南县', 2, 0, 3); +INSERT INTO `area` VALUES (371322, 371300, '郯城县', 2, 0, 3); +INSERT INTO `area` VALUES (371323, 371300, '沂水县', 2, 0, 3); +INSERT INTO `area` VALUES (371324, 371300, '兰陵县', 2, 0, 3); +INSERT INTO `area` VALUES (371325, 371300, '费县', 2, 0, 3); +INSERT INTO `area` VALUES (371326, 371300, '平邑县', 2, 0, 3); +INSERT INTO `area` VALUES (371327, 371300, '莒南县', 2, 0, 3); +INSERT INTO `area` VALUES (371328, 371300, '蒙阴县', 2, 0, 3); +INSERT INTO `area` VALUES (371329, 371300, '临沭县', 2, 0, 3); +INSERT INTO `area` VALUES (371330, 371300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (371400, 370000, '德州市', 2, 0, 2); +INSERT INTO `area` VALUES (371402, 371400, '德城区', 2, 0, 3); +INSERT INTO `area` VALUES (371403, 371400, '陵城区', 2, 0, 3); +INSERT INTO `area` VALUES (371421, 371400, '陵县', 2, 0, 3); +INSERT INTO `area` VALUES (371422, 371400, '宁津县', 2, 0, 3); +INSERT INTO `area` VALUES (371423, 371400, '庆云县', 2, 0, 3); +INSERT INTO `area` VALUES (371424, 371400, '临邑县', 2, 0, 3); +INSERT INTO `area` VALUES (371425, 371400, '齐河县', 2, 0, 3); +INSERT INTO `area` VALUES (371426, 371400, '平原县', 2, 0, 3); +INSERT INTO `area` VALUES (371427, 371400, '夏津县', 2, 0, 3); +INSERT INTO `area` VALUES (371428, 371400, '武城县', 2, 0, 3); +INSERT INTO `area` VALUES (371451, 371400, '开发区', 2, 0, 3); +INSERT INTO `area` VALUES (371481, 371400, '乐陵市', 2, 0, 3); +INSERT INTO `area` VALUES (371482, 371400, '禹城市', 2, 0, 3); +INSERT INTO `area` VALUES (371483, 371400, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (371500, 370000, '聊城市', 2, 0, 2); +INSERT INTO `area` VALUES (371502, 371500, '东昌府区', 2, 0, 3); +INSERT INTO `area` VALUES (371521, 371500, '阳谷县', 2, 0, 3); +INSERT INTO `area` VALUES (371522, 371500, '莘县', 2, 0, 3); +INSERT INTO `area` VALUES (371523, 371500, '茌平县', 2, 0, 3); +INSERT INTO `area` VALUES (371524, 371500, '东阿县', 2, 0, 3); +INSERT INTO `area` VALUES (371525, 371500, '冠县', 2, 0, 3); +INSERT INTO `area` VALUES (371526, 371500, '高唐县', 2, 0, 3); +INSERT INTO `area` VALUES (371581, 371500, '临清市', 2, 0, 3); +INSERT INTO `area` VALUES (371582, 371500, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (371600, 370000, '滨州市', 2, 0, 2); +INSERT INTO `area` VALUES (371602, 371600, '滨城区', 2, 0, 3); +INSERT INTO `area` VALUES (371603, 371600, '沾化区', 2, 0, 3); +INSERT INTO `area` VALUES (371621, 371600, '惠民县', 2, 0, 3); +INSERT INTO `area` VALUES (371622, 371600, '阳信县', 2, 0, 3); +INSERT INTO `area` VALUES (371623, 371600, '无棣县', 2, 0, 3); +INSERT INTO `area` VALUES (371624, 371600, '沾化县', 2, 0, 3); +INSERT INTO `area` VALUES (371625, 371600, '博兴县', 2, 0, 3); +INSERT INTO `area` VALUES (371626, 371600, '邹平县', 2, 0, 3); +INSERT INTO `area` VALUES (371627, 371600, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (371700, 370000, '菏泽市', 2, 0, 2); +INSERT INTO `area` VALUES (371702, 371700, '牡丹区', 2, 0, 3); +INSERT INTO `area` VALUES (371721, 371700, '曹县', 2, 0, 3); +INSERT INTO `area` VALUES (371722, 371700, '单县', 2, 0, 3); +INSERT INTO `area` VALUES (371723, 371700, '成武县', 2, 0, 3); +INSERT INTO `area` VALUES (371724, 371700, '巨野县', 2, 0, 3); +INSERT INTO `area` VALUES (371725, 371700, '郓城县', 2, 0, 3); +INSERT INTO `area` VALUES (371726, 371700, '鄄城县', 2, 0, 3); +INSERT INTO `area` VALUES (371727, 371700, '定陶县', 2, 0, 3); +INSERT INTO `area` VALUES (371728, 371700, '东明县', 2, 0, 3); +INSERT INTO `area` VALUES (371729, 371700, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (410000, 0, '河南省', 2, 0, 1); +INSERT INTO `area` VALUES (410100, 410000, '郑州市', 2, 0, 2); +INSERT INTO `area` VALUES (410102, 410100, '中原区', 2, 0, 3); +INSERT INTO `area` VALUES (410103, 410100, '二七区', 2, 0, 3); +INSERT INTO `area` VALUES (410104, 410100, '管城回族区', 2, 0, 3); +INSERT INTO `area` VALUES (410105, 410100, '金水区', 2, 0, 3); +INSERT INTO `area` VALUES (410106, 410100, '上街区', 2, 0, 3); +INSERT INTO `area` VALUES (410108, 410100, '惠济区', 2, 0, 3); +INSERT INTO `area` VALUES (410122, 410100, '中牟县', 2, 0, 3); +INSERT INTO `area` VALUES (410181, 410100, '巩义市', 2, 0, 3); +INSERT INTO `area` VALUES (410182, 410100, '荥阳市', 2, 0, 3); +INSERT INTO `area` VALUES (410183, 410100, '新密市', 2, 0, 3); +INSERT INTO `area` VALUES (410184, 410100, '新郑市', 2, 0, 3); +INSERT INTO `area` VALUES (410185, 410100, '登封市', 2, 0, 3); +INSERT INTO `area` VALUES (410186, 410100, '郑东新区', 2, 0, 3); +INSERT INTO `area` VALUES (410187, 410100, '高新区', 2, 0, 3); +INSERT INTO `area` VALUES (410188, 410100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (410200, 410000, '开封市', 2, 0, 2); +INSERT INTO `area` VALUES (410202, 410200, '龙亭区', 2, 0, 3); +INSERT INTO `area` VALUES (410203, 410200, '顺河回族区', 2, 0, 3); +INSERT INTO `area` VALUES (410204, 410200, '鼓楼区', 2, 0, 3); +INSERT INTO `area` VALUES (410205, 410200, '禹王台区', 2, 0, 3); +INSERT INTO `area` VALUES (410211, 410200, '金明区', 2, 0, 3); +INSERT INTO `area` VALUES (410212, 410200, '祥符区', 2, 0, 3); +INSERT INTO `area` VALUES (410221, 410200, '杞县', 2, 0, 3); +INSERT INTO `area` VALUES (410222, 410200, '通许县', 2, 0, 3); +INSERT INTO `area` VALUES (410223, 410200, '尉氏县', 2, 0, 3); +INSERT INTO `area` VALUES (410224, 410200, '开封县', 2, 0, 3); +INSERT INTO `area` VALUES (410225, 410200, '兰考县', 2, 0, 3); +INSERT INTO `area` VALUES (410226, 410200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (410300, 410000, '洛阳市', 2, 0, 2); +INSERT INTO `area` VALUES (410302, 410300, '老城区', 2, 0, 3); +INSERT INTO `area` VALUES (410303, 410300, '西工区', 2, 0, 3); +INSERT INTO `area` VALUES (410304, 410300, '瀍河回族区', 2, 0, 3); +INSERT INTO `area` VALUES (410305, 410300, '涧西区', 2, 0, 3); +INSERT INTO `area` VALUES (410306, 410300, '吉利区', 2, 0, 3); +INSERT INTO `area` VALUES (410307, 410300, '洛龙区', 2, 0, 3); +INSERT INTO `area` VALUES (410311, 410300, '洛龙区', 2, 0, 3); +INSERT INTO `area` VALUES (410322, 410300, '孟津县', 2, 0, 3); +INSERT INTO `area` VALUES (410323, 410300, '新安县', 2, 0, 3); +INSERT INTO `area` VALUES (410324, 410300, '栾川县', 2, 0, 3); +INSERT INTO `area` VALUES (410325, 410300, '嵩县', 2, 0, 3); +INSERT INTO `area` VALUES (410326, 410300, '汝阳县', 2, 0, 3); +INSERT INTO `area` VALUES (410327, 410300, '宜阳县', 2, 0, 3); +INSERT INTO `area` VALUES (410328, 410300, '洛宁县', 2, 0, 3); +INSERT INTO `area` VALUES (410329, 410300, '伊川县', 2, 0, 3); +INSERT INTO `area` VALUES (410381, 410300, '偃师市', 2, 0, 3); +INSERT INTO `area` VALUES (410400, 410000, '平顶山市', 2, 0, 2); +INSERT INTO `area` VALUES (410402, 410400, '新华区', 2, 0, 3); +INSERT INTO `area` VALUES (410403, 410400, '卫东区', 2, 0, 3); +INSERT INTO `area` VALUES (410404, 410400, '石龙区', 2, 0, 3); +INSERT INTO `area` VALUES (410411, 410400, '湛河区', 2, 0, 3); +INSERT INTO `area` VALUES (410421, 410400, '宝丰县', 2, 0, 3); +INSERT INTO `area` VALUES (410422, 410400, '叶县', 2, 0, 3); +INSERT INTO `area` VALUES (410423, 410400, '鲁山县', 2, 0, 3); +INSERT INTO `area` VALUES (410425, 410400, '郏县', 2, 0, 3); +INSERT INTO `area` VALUES (410481, 410400, '舞钢市', 2, 0, 3); +INSERT INTO `area` VALUES (410482, 410400, '汝州市', 2, 0, 3); +INSERT INTO `area` VALUES (410483, 410400, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (410500, 410000, '安阳市', 2, 0, 2); +INSERT INTO `area` VALUES (410502, 410500, '文峰区', 2, 0, 3); +INSERT INTO `area` VALUES (410503, 410500, '北关区', 2, 0, 3); +INSERT INTO `area` VALUES (410505, 410500, '殷都区', 2, 0, 3); +INSERT INTO `area` VALUES (410506, 410500, '龙安区', 2, 0, 3); +INSERT INTO `area` VALUES (410522, 410500, '安阳县', 2, 0, 3); +INSERT INTO `area` VALUES (410523, 410500, '汤阴县', 2, 0, 3); +INSERT INTO `area` VALUES (410526, 410500, '滑县', 2, 0, 3); +INSERT INTO `area` VALUES (410527, 410500, '内黄县', 2, 0, 3); +INSERT INTO `area` VALUES (410581, 410500, '林州市', 2, 0, 3); +INSERT INTO `area` VALUES (410582, 410500, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (410600, 410000, '鹤壁市', 2, 0, 2); +INSERT INTO `area` VALUES (410602, 410600, '鹤山区', 2, 0, 3); +INSERT INTO `area` VALUES (410603, 410600, '山城区', 2, 0, 3); +INSERT INTO `area` VALUES (410611, 410600, '淇滨区', 2, 0, 3); +INSERT INTO `area` VALUES (410621, 410600, '浚县', 2, 0, 3); +INSERT INTO `area` VALUES (410622, 410600, '淇县', 2, 0, 3); +INSERT INTO `area` VALUES (410623, 410600, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (410700, 410000, '新乡市', 2, 0, 2); +INSERT INTO `area` VALUES (410702, 410700, '红旗区', 2, 0, 3); +INSERT INTO `area` VALUES (410703, 410700, '卫滨区', 2, 0, 3); +INSERT INTO `area` VALUES (410704, 410700, '凤泉区', 2, 0, 3); +INSERT INTO `area` VALUES (410711, 410700, '牧野区', 2, 0, 3); +INSERT INTO `area` VALUES (410721, 410700, '新乡县', 2, 0, 3); +INSERT INTO `area` VALUES (410724, 410700, '获嘉县', 2, 0, 3); +INSERT INTO `area` VALUES (410725, 410700, '原阳县', 2, 0, 3); +INSERT INTO `area` VALUES (410726, 410700, '延津县', 2, 0, 3); +INSERT INTO `area` VALUES (410727, 410700, '封丘县', 2, 0, 3); +INSERT INTO `area` VALUES (410728, 410700, '长垣县', 2, 0, 3); +INSERT INTO `area` VALUES (410781, 410700, '卫辉市', 2, 0, 3); +INSERT INTO `area` VALUES (410782, 410700, '辉县市', 2, 0, 3); +INSERT INTO `area` VALUES (410783, 410700, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (410800, 410000, '焦作市', 2, 0, 2); +INSERT INTO `area` VALUES (410802, 410800, '解放区', 2, 0, 3); +INSERT INTO `area` VALUES (410803, 410800, '中站区', 2, 0, 3); +INSERT INTO `area` VALUES (410804, 410800, '马村区', 2, 0, 3); +INSERT INTO `area` VALUES (410811, 410800, '山阳区', 2, 0, 3); +INSERT INTO `area` VALUES (410821, 410800, '修武县', 2, 0, 3); +INSERT INTO `area` VALUES (410822, 410800, '博爱县', 2, 0, 3); +INSERT INTO `area` VALUES (410823, 410800, '武陟县', 2, 0, 3); +INSERT INTO `area` VALUES (410825, 410800, '温县', 2, 0, 3); +INSERT INTO `area` VALUES (410881, 410000, '济源市', 2, 0, 2); +INSERT INTO `area` VALUES (410882, 410800, '沁阳市', 2, 0, 3); +INSERT INTO `area` VALUES (410883, 410800, '孟州市', 2, 0, 3); +INSERT INTO `area` VALUES (410884, 410800, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (410900, 410000, '濮阳市', 2, 0, 2); +INSERT INTO `area` VALUES (410902, 410900, '华龙区', 2, 0, 3); +INSERT INTO `area` VALUES (410922, 410900, '清丰县', 2, 0, 3); +INSERT INTO `area` VALUES (410923, 410900, '南乐县', 2, 0, 3); +INSERT INTO `area` VALUES (410926, 410900, '范县', 2, 0, 3); +INSERT INTO `area` VALUES (410927, 410900, '台前县', 2, 0, 3); +INSERT INTO `area` VALUES (410928, 410900, '濮阳县', 2, 0, 3); +INSERT INTO `area` VALUES (410929, 410900, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (411000, 410000, '许昌市', 2, 0, 2); +INSERT INTO `area` VALUES (411002, 411000, '魏都区', 2, 0, 3); +INSERT INTO `area` VALUES (411023, 411000, '许昌县', 2, 0, 3); +INSERT INTO `area` VALUES (411024, 411000, '鄢陵县', 2, 0, 3); +INSERT INTO `area` VALUES (411025, 411000, '襄城县', 2, 0, 3); +INSERT INTO `area` VALUES (411081, 411000, '禹州市', 2, 0, 3); +INSERT INTO `area` VALUES (411082, 411000, '长葛市', 2, 0, 3); +INSERT INTO `area` VALUES (411083, 411000, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (411100, 410000, '漯河市', 2, 0, 2); +INSERT INTO `area` VALUES (411102, 411100, '源汇区', 2, 0, 3); +INSERT INTO `area` VALUES (411103, 411100, '郾城区', 2, 0, 3); +INSERT INTO `area` VALUES (411104, 411100, '召陵区', 2, 0, 3); +INSERT INTO `area` VALUES (411121, 411100, '舞阳县', 2, 0, 3); +INSERT INTO `area` VALUES (411122, 411100, '临颍县', 2, 0, 3); +INSERT INTO `area` VALUES (411123, 411100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (411200, 410000, '三门峡市', 2, 0, 2); +INSERT INTO `area` VALUES (411202, 411200, '湖滨区', 2, 0, 3); +INSERT INTO `area` VALUES (411203, 411200, '陕州区', 2, 0, 3); +INSERT INTO `area` VALUES (411221, 411200, '渑池县', 2, 0, 3); +INSERT INTO `area` VALUES (411222, 411200, '陕县', 2, 0, 3); +INSERT INTO `area` VALUES (411224, 411200, '卢氏县', 2, 0, 3); +INSERT INTO `area` VALUES (411281, 411200, '义马市', 2, 0, 3); +INSERT INTO `area` VALUES (411282, 411200, '灵宝市', 2, 0, 3); +INSERT INTO `area` VALUES (411283, 411200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (411300, 410000, '南阳市', 2, 0, 2); +INSERT INTO `area` VALUES (411302, 411300, '宛城区', 2, 0, 3); +INSERT INTO `area` VALUES (411303, 411300, '卧龙区', 2, 0, 3); +INSERT INTO `area` VALUES (411321, 411300, '南召县', 2, 0, 3); +INSERT INTO `area` VALUES (411322, 411300, '方城县', 2, 0, 3); +INSERT INTO `area` VALUES (411323, 411300, '西峡县', 2, 0, 3); +INSERT INTO `area` VALUES (411324, 411300, '镇平县', 2, 0, 3); +INSERT INTO `area` VALUES (411325, 411300, '内乡县', 2, 0, 3); +INSERT INTO `area` VALUES (411326, 411300, '淅川县', 2, 0, 3); +INSERT INTO `area` VALUES (411327, 411300, '社旗县', 2, 0, 3); +INSERT INTO `area` VALUES (411328, 411300, '唐河县', 2, 0, 3); +INSERT INTO `area` VALUES (411329, 411300, '新野县', 2, 0, 3); +INSERT INTO `area` VALUES (411330, 411300, '桐柏县', 2, 0, 3); +INSERT INTO `area` VALUES (411381, 411300, '邓州市', 2, 0, 3); +INSERT INTO `area` VALUES (411382, 411300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (411400, 410000, '商丘市', 2, 0, 2); +INSERT INTO `area` VALUES (411402, 411400, '梁园区', 2, 0, 3); +INSERT INTO `area` VALUES (411403, 411400, '睢阳区', 2, 0, 3); +INSERT INTO `area` VALUES (411421, 411400, '民权县', 2, 0, 3); +INSERT INTO `area` VALUES (411422, 411400, '睢县', 2, 0, 3); +INSERT INTO `area` VALUES (411423, 411400, '宁陵县', 2, 0, 3); +INSERT INTO `area` VALUES (411424, 411400, '柘城县', 2, 0, 3); +INSERT INTO `area` VALUES (411425, 411400, '虞城县', 2, 0, 3); +INSERT INTO `area` VALUES (411426, 411400, '夏邑县', 2, 0, 3); +INSERT INTO `area` VALUES (411481, 411400, '永城市', 2, 0, 3); +INSERT INTO `area` VALUES (411482, 411400, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (411500, 410000, '信阳市', 2, 0, 2); +INSERT INTO `area` VALUES (411502, 411500, '浉河区', 2, 0, 3); +INSERT INTO `area` VALUES (411503, 411500, '平桥区', 2, 0, 3); +INSERT INTO `area` VALUES (411521, 411500, '罗山县', 2, 0, 3); +INSERT INTO `area` VALUES (411522, 411500, '光山县', 2, 0, 3); +INSERT INTO `area` VALUES (411523, 411500, '新县', 2, 0, 3); +INSERT INTO `area` VALUES (411524, 411500, '商城县', 2, 0, 3); +INSERT INTO `area` VALUES (411525, 411500, '固始县', 2, 0, 3); +INSERT INTO `area` VALUES (411526, 411500, '潢川县', 2, 0, 3); +INSERT INTO `area` VALUES (411527, 411500, '淮滨县', 2, 0, 3); +INSERT INTO `area` VALUES (411528, 411500, '息县', 2, 0, 3); +INSERT INTO `area` VALUES (411529, 411500, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (411600, 410000, '周口市', 2, 0, 2); +INSERT INTO `area` VALUES (411602, 411600, '川汇区', 2, 0, 3); +INSERT INTO `area` VALUES (411621, 411600, '扶沟县', 2, 0, 3); +INSERT INTO `area` VALUES (411622, 411600, '西华县', 2, 0, 3); +INSERT INTO `area` VALUES (411623, 411600, '商水县', 2, 0, 3); +INSERT INTO `area` VALUES (411624, 411600, '沈丘县', 2, 0, 3); +INSERT INTO `area` VALUES (411625, 411600, '郸城县', 2, 0, 3); +INSERT INTO `area` VALUES (411626, 411600, '淮阳县', 2, 0, 3); +INSERT INTO `area` VALUES (411627, 411600, '太康县', 2, 0, 3); +INSERT INTO `area` VALUES (411628, 411600, '鹿邑县', 2, 0, 3); +INSERT INTO `area` VALUES (411681, 411600, '项城市', 2, 0, 3); +INSERT INTO `area` VALUES (411682, 411600, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (411700, 410000, '驻马店市', 2, 0, 2); +INSERT INTO `area` VALUES (411702, 411700, '驿城区', 2, 0, 3); +INSERT INTO `area` VALUES (411721, 411700, '西平县', 2, 0, 3); +INSERT INTO `area` VALUES (411722, 411700, '上蔡县', 2, 0, 3); +INSERT INTO `area` VALUES (411723, 411700, '平舆县', 2, 0, 3); +INSERT INTO `area` VALUES (411724, 411700, '正阳县', 2, 0, 3); +INSERT INTO `area` VALUES (411725, 411700, '确山县', 2, 0, 3); +INSERT INTO `area` VALUES (411726, 411700, '泌阳县', 2, 0, 3); +INSERT INTO `area` VALUES (411727, 411700, '汝南县', 2, 0, 3); +INSERT INTO `area` VALUES (411728, 411700, '遂平县', 2, 0, 3); +INSERT INTO `area` VALUES (411729, 411700, '新蔡县', 2, 0, 3); +INSERT INTO `area` VALUES (411730, 411700, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (419000, 410000, '省直辖县级行政区划', 2, 0, 2); +INSERT INTO `area` VALUES (419001, 419000, '济源市', 2, 0, 3); +INSERT INTO `area` VALUES (420000, 0, '湖北省', 2, 0, 1); +INSERT INTO `area` VALUES (420100, 420000, '武汉市', 2, 0, 2); +INSERT INTO `area` VALUES (420102, 420100, '江岸区', 2, 0, 3); +INSERT INTO `area` VALUES (420103, 420100, '江汉区', 2, 0, 3); +INSERT INTO `area` VALUES (420104, 420100, '硚口区', 2, 0, 3); +INSERT INTO `area` VALUES (420105, 420100, '汉阳区', 2, 0, 3); +INSERT INTO `area` VALUES (420106, 420100, '武昌区', 2, 0, 3); +INSERT INTO `area` VALUES (420107, 420100, '青山区', 2, 0, 3); +INSERT INTO `area` VALUES (420111, 420100, '洪山区', 2, 0, 3); +INSERT INTO `area` VALUES (420112, 420100, '东西湖区', 2, 0, 3); +INSERT INTO `area` VALUES (420113, 420100, '汉南区', 2, 0, 3); +INSERT INTO `area` VALUES (420114, 420100, '蔡甸区', 2, 0, 3); +INSERT INTO `area` VALUES (420115, 420100, '江夏区', 2, 0, 3); +INSERT INTO `area` VALUES (420116, 420100, '黄陂区', 2, 0, 3); +INSERT INTO `area` VALUES (420117, 420100, '新洲区', 2, 0, 3); +INSERT INTO `area` VALUES (420118, 420100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (420200, 420000, '黄石市', 2, 0, 2); +INSERT INTO `area` VALUES (420202, 420200, '黄石港区', 2, 0, 3); +INSERT INTO `area` VALUES (420203, 420200, '西塞山区', 2, 0, 3); +INSERT INTO `area` VALUES (420204, 420200, '下陆区', 2, 0, 3); +INSERT INTO `area` VALUES (420205, 420200, '铁山区', 2, 0, 3); +INSERT INTO `area` VALUES (420222, 420200, '阳新县', 2, 0, 3); +INSERT INTO `area` VALUES (420281, 420200, '大冶市', 2, 0, 3); +INSERT INTO `area` VALUES (420282, 420200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (420300, 420000, '十堰市', 2, 0, 2); +INSERT INTO `area` VALUES (420302, 420300, '茅箭区', 2, 0, 3); +INSERT INTO `area` VALUES (420303, 420300, '张湾区', 2, 0, 3); +INSERT INTO `area` VALUES (420304, 420300, '郧阳区', 2, 0, 3); +INSERT INTO `area` VALUES (420321, 420300, '郧县', 2, 0, 3); +INSERT INTO `area` VALUES (420322, 420300, '郧西县', 2, 0, 3); +INSERT INTO `area` VALUES (420323, 420300, '竹山县', 2, 0, 3); +INSERT INTO `area` VALUES (420324, 420300, '竹溪县', 2, 0, 3); +INSERT INTO `area` VALUES (420325, 420300, '房县', 2, 0, 3); +INSERT INTO `area` VALUES (420381, 420300, '丹江口市', 2, 0, 3); +INSERT INTO `area` VALUES (420382, 420300, '城区', 2, 0, 3); +INSERT INTO `area` VALUES (420383, 420300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (420500, 420000, '宜昌市', 2, 0, 2); +INSERT INTO `area` VALUES (420502, 420500, '西陵区', 2, 0, 3); +INSERT INTO `area` VALUES (420503, 420500, '伍家岗区', 2, 0, 3); +INSERT INTO `area` VALUES (420504, 420500, '点军区', 2, 0, 3); +INSERT INTO `area` VALUES (420505, 420500, '猇亭区', 2, 0, 3); +INSERT INTO `area` VALUES (420506, 420500, '夷陵区', 2, 0, 3); +INSERT INTO `area` VALUES (420525, 420500, '远安县', 2, 0, 3); +INSERT INTO `area` VALUES (420526, 420500, '兴山县', 2, 0, 3); +INSERT INTO `area` VALUES (420527, 420500, '秭归县', 2, 0, 3); +INSERT INTO `area` VALUES (420528, 420500, '长阳土家族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (420529, 420500, '五峰土家族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (420551, 420500, '葛洲坝区', 2, 0, 3); +INSERT INTO `area` VALUES (420552, 420500, '开发区', 2, 0, 3); +INSERT INTO `area` VALUES (420581, 420500, '宜都市', 2, 0, 3); +INSERT INTO `area` VALUES (420582, 420500, '当阳市', 2, 0, 3); +INSERT INTO `area` VALUES (420583, 420500, '枝江市', 2, 0, 3); +INSERT INTO `area` VALUES (420584, 420500, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (420600, 420000, '襄阳市', 2, 0, 2); +INSERT INTO `area` VALUES (420602, 420600, '襄城区', 2, 0, 3); +INSERT INTO `area` VALUES (420606, 420600, '樊城区', 2, 0, 3); +INSERT INTO `area` VALUES (420607, 420600, '襄州区', 2, 0, 3); +INSERT INTO `area` VALUES (420624, 420600, '南漳县', 2, 0, 3); +INSERT INTO `area` VALUES (420625, 420600, '谷城县', 2, 0, 3); +INSERT INTO `area` VALUES (420626, 420600, '保康县', 2, 0, 3); +INSERT INTO `area` VALUES (420682, 420600, '老河口市', 2, 0, 3); +INSERT INTO `area` VALUES (420683, 420600, '枣阳市', 2, 0, 3); +INSERT INTO `area` VALUES (420684, 420600, '宜城市', 2, 0, 3); +INSERT INTO `area` VALUES (420685, 420600, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (420700, 420000, '鄂州市', 2, 0, 2); +INSERT INTO `area` VALUES (420702, 420700, '梁子湖区', 2, 0, 3); +INSERT INTO `area` VALUES (420703, 420700, '华容区', 2, 0, 3); +INSERT INTO `area` VALUES (420704, 420700, '鄂城区', 2, 0, 3); +INSERT INTO `area` VALUES (420705, 420700, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (420800, 420000, '荆门市', 2, 0, 2); +INSERT INTO `area` VALUES (420802, 420800, '东宝区', 2, 0, 3); +INSERT INTO `area` VALUES (420804, 420800, '掇刀区', 2, 0, 3); +INSERT INTO `area` VALUES (420821, 420800, '京山县', 2, 0, 3); +INSERT INTO `area` VALUES (420822, 420800, '沙洋县', 2, 0, 3); +INSERT INTO `area` VALUES (420881, 420800, '钟祥市', 2, 0, 3); +INSERT INTO `area` VALUES (420882, 420800, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (420900, 420000, '孝感市', 2, 0, 2); +INSERT INTO `area` VALUES (420902, 420900, '孝南区', 2, 0, 3); +INSERT INTO `area` VALUES (420921, 420900, '孝昌县', 2, 0, 3); +INSERT INTO `area` VALUES (420922, 420900, '大悟县', 2, 0, 3); +INSERT INTO `area` VALUES (420923, 420900, '云梦县', 2, 0, 3); +INSERT INTO `area` VALUES (420981, 420900, '应城市', 2, 0, 3); +INSERT INTO `area` VALUES (420982, 420900, '安陆市', 2, 0, 3); +INSERT INTO `area` VALUES (420984, 420900, '汉川市', 2, 0, 3); +INSERT INTO `area` VALUES (420985, 420900, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (421000, 420000, '荆州市', 2, 0, 2); +INSERT INTO `area` VALUES (421002, 421000, '沙市区', 2, 0, 3); +INSERT INTO `area` VALUES (421003, 421000, '荆州区', 2, 0, 3); +INSERT INTO `area` VALUES (421022, 421000, '公安县', 2, 0, 3); +INSERT INTO `area` VALUES (421023, 421000, '监利县', 2, 0, 3); +INSERT INTO `area` VALUES (421024, 421000, '江陵县', 2, 0, 3); +INSERT INTO `area` VALUES (421081, 421000, '石首市', 2, 0, 3); +INSERT INTO `area` VALUES (421083, 421000, '洪湖市', 2, 0, 3); +INSERT INTO `area` VALUES (421087, 421000, '松滋市', 2, 0, 3); +INSERT INTO `area` VALUES (421088, 421000, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (421100, 420000, '黄冈市', 2, 0, 2); +INSERT INTO `area` VALUES (421102, 421100, '黄州区', 2, 0, 3); +INSERT INTO `area` VALUES (421121, 421100, '团风县', 2, 0, 3); +INSERT INTO `area` VALUES (421122, 421100, '红安县', 2, 0, 3); +INSERT INTO `area` VALUES (421123, 421100, '罗田县', 2, 0, 3); +INSERT INTO `area` VALUES (421124, 421100, '英山县', 2, 0, 3); +INSERT INTO `area` VALUES (421125, 421100, '浠水县', 2, 0, 3); +INSERT INTO `area` VALUES (421126, 421100, '蕲春县', 2, 0, 3); +INSERT INTO `area` VALUES (421127, 421100, '黄梅县', 2, 0, 3); +INSERT INTO `area` VALUES (421181, 421100, '麻城市', 2, 0, 3); +INSERT INTO `area` VALUES (421182, 421100, '武穴市', 2, 0, 3); +INSERT INTO `area` VALUES (421183, 421100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (421200, 420000, '咸宁市', 2, 0, 2); +INSERT INTO `area` VALUES (421202, 421200, '咸安区', 2, 0, 3); +INSERT INTO `area` VALUES (421221, 421200, '嘉鱼县', 2, 0, 3); +INSERT INTO `area` VALUES (421222, 421200, '通城县', 2, 0, 3); +INSERT INTO `area` VALUES (421223, 421200, '崇阳县', 2, 0, 3); +INSERT INTO `area` VALUES (421224, 421200, '通山县', 2, 0, 3); +INSERT INTO `area` VALUES (421281, 421200, '赤壁市', 2, 0, 3); +INSERT INTO `area` VALUES (421282, 421200, '温泉城区', 2, 0, 3); +INSERT INTO `area` VALUES (421283, 421200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (421300, 420000, '随州市', 2, 0, 2); +INSERT INTO `area` VALUES (421302, 421300, '曾都区', 2, 0, 3); +INSERT INTO `area` VALUES (421303, 421300, '曾都区', 2, 0, 3); +INSERT INTO `area` VALUES (421321, 421300, '随县', 2, 0, 3); +INSERT INTO `area` VALUES (421381, 421300, '广水市', 2, 0, 3); +INSERT INTO `area` VALUES (421382, 421300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (422800, 420000, '恩施土家族苗族自治州', 2, 0, 2); +INSERT INTO `area` VALUES (422801, 422800, '恩施市', 2, 0, 3); +INSERT INTO `area` VALUES (422802, 422800, '利川市', 2, 0, 3); +INSERT INTO `area` VALUES (422822, 422800, '建始县', 2, 0, 3); +INSERT INTO `area` VALUES (422823, 422800, '巴东县', 2, 0, 3); +INSERT INTO `area` VALUES (422825, 422800, '宣恩县', 2, 0, 3); +INSERT INTO `area` VALUES (422826, 422800, '咸丰县', 2, 0, 3); +INSERT INTO `area` VALUES (422827, 422800, '来凤县', 2, 0, 3); +INSERT INTO `area` VALUES (422828, 422800, '鹤峰县', 2, 0, 3); +INSERT INTO `area` VALUES (422829, 422800, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (429004, 420000, '仙桃市', 2, 0, 2); +INSERT INTO `area` VALUES (429005, 420000, '潜江市', 2, 0, 2); +INSERT INTO `area` VALUES (429006, 420000, '天门市', 2, 0, 2); +INSERT INTO `area` VALUES (429021, 420000, '神农架林区', 2, 0, 2); +INSERT INTO `area` VALUES (430000, 0, '湖南省', 2, 0, 1); +INSERT INTO `area` VALUES (430100, 430000, '长沙市', 2, 0, 2); +INSERT INTO `area` VALUES (430102, 430100, '芙蓉区', 2, 0, 3); +INSERT INTO `area` VALUES (430103, 430100, '天心区', 2, 0, 3); +INSERT INTO `area` VALUES (430104, 430100, '岳麓区', 2, 0, 3); +INSERT INTO `area` VALUES (430105, 430100, '开福区', 2, 0, 3); +INSERT INTO `area` VALUES (430111, 430100, '雨花区', 2, 0, 3); +INSERT INTO `area` VALUES (430112, 430100, '望城区', 2, 0, 3); +INSERT INTO `area` VALUES (430121, 430100, '长沙县', 2, 0, 3); +INSERT INTO `area` VALUES (430122, 430100, '望城县', 2, 0, 3); +INSERT INTO `area` VALUES (430124, 430100, '宁乡县', 2, 0, 3); +INSERT INTO `area` VALUES (430181, 430100, '浏阳市', 2, 0, 3); +INSERT INTO `area` VALUES (430182, 430100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (430200, 430000, '株洲市', 2, 0, 2); +INSERT INTO `area` VALUES (430202, 430200, '荷塘区', 2, 0, 3); +INSERT INTO `area` VALUES (430203, 430200, '芦淞区', 2, 0, 3); +INSERT INTO `area` VALUES (430204, 430200, '石峰区', 2, 0, 3); +INSERT INTO `area` VALUES (430211, 430200, '天元区', 2, 0, 3); +INSERT INTO `area` VALUES (430221, 430200, '株洲县', 2, 0, 3); +INSERT INTO `area` VALUES (430223, 430200, '攸县', 2, 0, 3); +INSERT INTO `area` VALUES (430224, 430200, '茶陵县', 2, 0, 3); +INSERT INTO `area` VALUES (430225, 430200, '炎陵县', 2, 0, 3); +INSERT INTO `area` VALUES (430281, 430200, '醴陵市', 2, 0, 3); +INSERT INTO `area` VALUES (430282, 430200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (430300, 430000, '湘潭市', 2, 0, 2); +INSERT INTO `area` VALUES (430302, 430300, '雨湖区', 2, 0, 3); +INSERT INTO `area` VALUES (430304, 430300, '岳塘区', 2, 0, 3); +INSERT INTO `area` VALUES (430321, 430300, '湘潭县', 2, 0, 3); +INSERT INTO `area` VALUES (430381, 430300, '湘乡市', 2, 0, 3); +INSERT INTO `area` VALUES (430382, 430300, '韶山市', 2, 0, 3); +INSERT INTO `area` VALUES (430383, 430300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (430400, 430000, '衡阳市', 2, 0, 2); +INSERT INTO `area` VALUES (430405, 430400, '珠晖区', 2, 0, 3); +INSERT INTO `area` VALUES (430406, 430400, '雁峰区', 2, 0, 3); +INSERT INTO `area` VALUES (430407, 430400, '石鼓区', 2, 0, 3); +INSERT INTO `area` VALUES (430408, 430400, '蒸湘区', 2, 0, 3); +INSERT INTO `area` VALUES (430412, 430400, '南岳区', 2, 0, 3); +INSERT INTO `area` VALUES (430421, 430400, '衡阳县', 2, 0, 3); +INSERT INTO `area` VALUES (430422, 430400, '衡南县', 2, 0, 3); +INSERT INTO `area` VALUES (430423, 430400, '衡山县', 2, 0, 3); +INSERT INTO `area` VALUES (430424, 430400, '衡东县', 2, 0, 3); +INSERT INTO `area` VALUES (430426, 430400, '祁东县', 2, 0, 3); +INSERT INTO `area` VALUES (430481, 430400, '耒阳市', 2, 0, 3); +INSERT INTO `area` VALUES (430482, 430400, '常宁市', 2, 0, 3); +INSERT INTO `area` VALUES (430483, 430400, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (430500, 430000, '邵阳市', 2, 0, 2); +INSERT INTO `area` VALUES (430502, 430500, '双清区', 2, 0, 3); +INSERT INTO `area` VALUES (430503, 430500, '大祥区', 2, 0, 3); +INSERT INTO `area` VALUES (430511, 430500, '北塔区', 2, 0, 3); +INSERT INTO `area` VALUES (430521, 430500, '邵东县', 2, 0, 3); +INSERT INTO `area` VALUES (430522, 430500, '新邵县', 2, 0, 3); +INSERT INTO `area` VALUES (430523, 430500, '邵阳县', 2, 0, 3); +INSERT INTO `area` VALUES (430524, 430500, '隆回县', 2, 0, 3); +INSERT INTO `area` VALUES (430525, 430500, '洞口县', 2, 0, 3); +INSERT INTO `area` VALUES (430527, 430500, '绥宁县', 2, 0, 3); +INSERT INTO `area` VALUES (430528, 430500, '新宁县', 2, 0, 3); +INSERT INTO `area` VALUES (430529, 430500, '城步苗族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (430581, 430500, '武冈市', 2, 0, 3); +INSERT INTO `area` VALUES (430582, 430500, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (430600, 430000, '岳阳市', 2, 0, 2); +INSERT INTO `area` VALUES (430602, 430600, '岳阳楼区', 2, 0, 3); +INSERT INTO `area` VALUES (430603, 430600, '云溪区', 2, 0, 3); +INSERT INTO `area` VALUES (430611, 430600, '君山区', 2, 0, 3); +INSERT INTO `area` VALUES (430621, 430600, '岳阳县', 2, 0, 3); +INSERT INTO `area` VALUES (430623, 430600, '华容县', 2, 0, 3); +INSERT INTO `area` VALUES (430624, 430600, '湘阴县', 2, 0, 3); +INSERT INTO `area` VALUES (430626, 430600, '平江县', 2, 0, 3); +INSERT INTO `area` VALUES (430681, 430600, '汨罗市', 2, 0, 3); +INSERT INTO `area` VALUES (430682, 430600, '临湘市', 2, 0, 3); +INSERT INTO `area` VALUES (430683, 430600, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (430700, 430000, '常德市', 2, 0, 2); +INSERT INTO `area` VALUES (430702, 430700, '武陵区', 2, 0, 3); +INSERT INTO `area` VALUES (430703, 430700, '鼎城区', 2, 0, 3); +INSERT INTO `area` VALUES (430721, 430700, '安乡县', 2, 0, 3); +INSERT INTO `area` VALUES (430722, 430700, '汉寿县', 2, 0, 3); +INSERT INTO `area` VALUES (430723, 430700, '澧县', 2, 0, 3); +INSERT INTO `area` VALUES (430724, 430700, '临澧县', 2, 0, 3); +INSERT INTO `area` VALUES (430725, 430700, '桃源县', 2, 0, 3); +INSERT INTO `area` VALUES (430726, 430700, '石门县', 2, 0, 3); +INSERT INTO `area` VALUES (430781, 430700, '津市市', 2, 0, 3); +INSERT INTO `area` VALUES (430782, 430700, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (430800, 430000, '张家界市', 2, 0, 2); +INSERT INTO `area` VALUES (430802, 430800, '永定区', 2, 0, 3); +INSERT INTO `area` VALUES (430811, 430800, '武陵源区', 2, 0, 3); +INSERT INTO `area` VALUES (430821, 430800, '慈利县', 2, 0, 3); +INSERT INTO `area` VALUES (430822, 430800, '桑植县', 2, 0, 3); +INSERT INTO `area` VALUES (430823, 430800, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (430900, 430000, '益阳市', 2, 0, 2); +INSERT INTO `area` VALUES (430902, 430900, '资阳区', 2, 0, 3); +INSERT INTO `area` VALUES (430903, 430900, '赫山区', 2, 0, 3); +INSERT INTO `area` VALUES (430921, 430900, '南县', 2, 0, 3); +INSERT INTO `area` VALUES (430922, 430900, '桃江县', 2, 0, 3); +INSERT INTO `area` VALUES (430923, 430900, '安化县', 2, 0, 3); +INSERT INTO `area` VALUES (430981, 430900, '沅江市', 2, 0, 3); +INSERT INTO `area` VALUES (430982, 430900, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (431000, 430000, '郴州市', 2, 0, 2); +INSERT INTO `area` VALUES (431002, 431000, '北湖区', 2, 0, 3); +INSERT INTO `area` VALUES (431003, 431000, '苏仙区', 2, 0, 3); +INSERT INTO `area` VALUES (431021, 431000, '桂阳县', 2, 0, 3); +INSERT INTO `area` VALUES (431022, 431000, '宜章县', 2, 0, 3); +INSERT INTO `area` VALUES (431023, 431000, '永兴县', 2, 0, 3); +INSERT INTO `area` VALUES (431024, 431000, '嘉禾县', 2, 0, 3); +INSERT INTO `area` VALUES (431025, 431000, '临武县', 2, 0, 3); +INSERT INTO `area` VALUES (431026, 431000, '汝城县', 2, 0, 3); +INSERT INTO `area` VALUES (431027, 431000, '桂东县', 2, 0, 3); +INSERT INTO `area` VALUES (431028, 431000, '安仁县', 2, 0, 3); +INSERT INTO `area` VALUES (431081, 431000, '资兴市', 2, 0, 3); +INSERT INTO `area` VALUES (431082, 431000, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (431100, 430000, '永州市', 2, 0, 2); +INSERT INTO `area` VALUES (431102, 431100, '零陵区', 2, 0, 3); +INSERT INTO `area` VALUES (431103, 431100, '冷水滩区', 2, 0, 3); +INSERT INTO `area` VALUES (431121, 431100, '祁阳县', 2, 0, 3); +INSERT INTO `area` VALUES (431122, 431100, '东安县', 2, 0, 3); +INSERT INTO `area` VALUES (431123, 431100, '双牌县', 2, 0, 3); +INSERT INTO `area` VALUES (431124, 431100, '道县', 2, 0, 3); +INSERT INTO `area` VALUES (431125, 431100, '江永县', 2, 0, 3); +INSERT INTO `area` VALUES (431126, 431100, '宁远县', 2, 0, 3); +INSERT INTO `area` VALUES (431127, 431100, '蓝山县', 2, 0, 3); +INSERT INTO `area` VALUES (431128, 431100, '新田县', 2, 0, 3); +INSERT INTO `area` VALUES (431129, 431100, '江华瑶族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (431130, 431100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (431200, 430000, '怀化市', 2, 0, 2); +INSERT INTO `area` VALUES (431202, 431200, '鹤城区', 2, 0, 3); +INSERT INTO `area` VALUES (431221, 431200, '中方县', 2, 0, 3); +INSERT INTO `area` VALUES (431222, 431200, '沅陵县', 2, 0, 3); +INSERT INTO `area` VALUES (431223, 431200, '辰溪县', 2, 0, 3); +INSERT INTO `area` VALUES (431224, 431200, '溆浦县', 2, 0, 3); +INSERT INTO `area` VALUES (431225, 431200, '会同县', 2, 0, 3); +INSERT INTO `area` VALUES (431226, 431200, '麻阳苗族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (431227, 431200, '新晃侗族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (431228, 431200, '芷江侗族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (431229, 431200, '靖州苗族侗族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (431230, 431200, '通道侗族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (431281, 431200, '洪江市', 2, 0, 3); +INSERT INTO `area` VALUES (431282, 431200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (431300, 430000, '娄底市', 2, 0, 2); +INSERT INTO `area` VALUES (431302, 431300, '娄星区', 2, 0, 3); +INSERT INTO `area` VALUES (431321, 431300, '双峰县', 2, 0, 3); +INSERT INTO `area` VALUES (431322, 431300, '新化县', 2, 0, 3); +INSERT INTO `area` VALUES (431381, 431300, '冷水江市', 2, 0, 3); +INSERT INTO `area` VALUES (431382, 431300, '涟源市', 2, 0, 3); +INSERT INTO `area` VALUES (431383, 431300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (433100, 430000, '湘西土家族苗族自治州', 2, 0, 2); +INSERT INTO `area` VALUES (433101, 433100, '吉首市', 2, 0, 3); +INSERT INTO `area` VALUES (433122, 433100, '泸溪县', 2, 0, 3); +INSERT INTO `area` VALUES (433123, 433100, '凤凰县', 2, 0, 3); +INSERT INTO `area` VALUES (433124, 433100, '花垣县', 2, 0, 3); +INSERT INTO `area` VALUES (433125, 433100, '保靖县', 2, 0, 3); +INSERT INTO `area` VALUES (433126, 433100, '古丈县', 2, 0, 3); +INSERT INTO `area` VALUES (433127, 433100, '永顺县', 2, 0, 3); +INSERT INTO `area` VALUES (433130, 433100, '龙山县', 2, 0, 3); +INSERT INTO `area` VALUES (433131, 433100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (440000, 0, '广东省', 2, 0, 1); +INSERT INTO `area` VALUES (440100, 440000, '广州市', 2, 0, 2); +INSERT INTO `area` VALUES (440103, 440100, '荔湾区', 2, 1, 3); +INSERT INTO `area` VALUES (440104, 440100, '越秀区', 2, 2, 3); +INSERT INTO `area` VALUES (440105, 440100, '海珠区', 2, 3, 3); +INSERT INTO `area` VALUES (440106, 440100, '天河区', 2, 0, 3); +INSERT INTO `area` VALUES (440111, 440100, '白云区', 2, 0, 3); +INSERT INTO `area` VALUES (440112, 440100, '黄埔区', 2, 4, 3); +INSERT INTO `area` VALUES (440113, 440100, '番禺区', 2, 5, 3); +INSERT INTO `area` VALUES (440114, 440100, '花都区', 2, 6, 3); +INSERT INTO `area` VALUES (440115, 440100, '南沙区', 2, 7, 3); +INSERT INTO `area` VALUES (440116, 440100, '萝岗区', 2, 0, 3); +INSERT INTO `area` VALUES (440117, 440100, '从化区', 2, 8, 3); +INSERT INTO `area` VALUES (440118, 440100, '增城区', 2, 9, 3); +INSERT INTO `area` VALUES (440183, 440100, '增城市', 2, 0, 3); +INSERT INTO `area` VALUES (440184, 440100, '从化市', 2, 0, 3); +INSERT INTO `area` VALUES (440188, 440100, '东山区', 2, 0, 3); +INSERT INTO `area` VALUES (440189, 440100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (440200, 440000, '韶关市', 2, 0, 2); +INSERT INTO `area` VALUES (440203, 440200, '武江区', 2, 0, 3); +INSERT INTO `area` VALUES (440204, 440200, '浈江区', 2, 0, 3); +INSERT INTO `area` VALUES (440205, 440200, '曲江区', 2, 0, 3); +INSERT INTO `area` VALUES (440222, 440200, '始兴县', 2, 0, 3); +INSERT INTO `area` VALUES (440224, 440200, '仁化县', 2, 0, 3); +INSERT INTO `area` VALUES (440229, 440200, '翁源县', 2, 0, 3); +INSERT INTO `area` VALUES (440232, 440200, '乳源瑶族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (440233, 440200, '新丰县', 2, 0, 3); +INSERT INTO `area` VALUES (440281, 440200, '乐昌市', 2, 0, 3); +INSERT INTO `area` VALUES (440282, 440200, '南雄市', 2, 0, 3); +INSERT INTO `area` VALUES (440283, 440200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (440300, 440000, '深圳市', 2, 0, 2); +INSERT INTO `area` VALUES (440303, 440300, '罗湖区', 2, 0, 3); +INSERT INTO `area` VALUES (440304, 440300, '福田区', 2, 0, 3); +INSERT INTO `area` VALUES (440305, 440300, '南山区', 2, 0, 3); +INSERT INTO `area` VALUES (440306, 440300, '宝安区', 2, 0, 3); +INSERT INTO `area` VALUES (440307, 440300, '龙岗区', 2, 0, 3); +INSERT INTO `area` VALUES (440308, 440300, '盐田区', 2, 0, 3); +INSERT INTO `area` VALUES (440309, 440300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (440400, 440000, '珠海市', 2, 0, 2); +INSERT INTO `area` VALUES (440402, 440400, '香洲区', 2, 0, 3); +INSERT INTO `area` VALUES (440403, 440400, '斗门区', 2, 0, 3); +INSERT INTO `area` VALUES (440404, 440400, '金湾区', 2, 0, 3); +INSERT INTO `area` VALUES (440486, 440400, '金唐区', 2, 0, 3); +INSERT INTO `area` VALUES (440487, 440400, '南湾区', 2, 0, 3); +INSERT INTO `area` VALUES (440488, 440400, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (440500, 440000, '汕头市', 2, 0, 2); +INSERT INTO `area` VALUES (440507, 440500, '龙湖区', 2, 0, 3); +INSERT INTO `area` VALUES (440511, 440500, '金平区', 2, 0, 3); +INSERT INTO `area` VALUES (440512, 440500, '濠江区', 2, 0, 3); +INSERT INTO `area` VALUES (440513, 440500, '潮阳区', 2, 0, 3); +INSERT INTO `area` VALUES (440514, 440500, '潮南区', 2, 0, 3); +INSERT INTO `area` VALUES (440515, 440500, '澄海区', 2, 0, 3); +INSERT INTO `area` VALUES (440523, 440500, '南澳县', 2, 0, 3); +INSERT INTO `area` VALUES (440524, 440500, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (440600, 440000, '佛山市', 2, 0, 2); +INSERT INTO `area` VALUES (440604, 440600, '禅城区', 2, 0, 3); +INSERT INTO `area` VALUES (440605, 440600, '南海区', 2, 0, 3); +INSERT INTO `area` VALUES (440606, 440600, '顺德区', 2, 0, 3); +INSERT INTO `area` VALUES (440607, 440600, '三水区', 2, 0, 3); +INSERT INTO `area` VALUES (440608, 440600, '高明区', 2, 0, 3); +INSERT INTO `area` VALUES (440609, 440600, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (440700, 440000, '江门市', 2, 0, 2); +INSERT INTO `area` VALUES (440703, 440700, '蓬江区', 2, 0, 3); +INSERT INTO `area` VALUES (440704, 440700, '江海区', 2, 0, 3); +INSERT INTO `area` VALUES (440705, 440700, '新会区', 2, 0, 3); +INSERT INTO `area` VALUES (440781, 440700, '台山市', 2, 0, 3); +INSERT INTO `area` VALUES (440783, 440700, '开平市', 2, 0, 3); +INSERT INTO `area` VALUES (440784, 440700, '鹤山市', 2, 0, 3); +INSERT INTO `area` VALUES (440785, 440700, '恩平市', 2, 0, 3); +INSERT INTO `area` VALUES (440786, 440700, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (440800, 440000, '湛江市', 2, 0, 2); +INSERT INTO `area` VALUES (440802, 440800, '赤坎区', 2, 0, 3); +INSERT INTO `area` VALUES (440803, 440800, '霞山区', 2, 0, 3); +INSERT INTO `area` VALUES (440804, 440800, '坡头区', 2, 0, 3); +INSERT INTO `area` VALUES (440811, 440800, '麻章区', 2, 0, 3); +INSERT INTO `area` VALUES (440823, 440800, '遂溪县', 2, 0, 3); +INSERT INTO `area` VALUES (440825, 440800, '徐闻县', 2, 0, 3); +INSERT INTO `area` VALUES (440881, 440800, '廉江市', 2, 0, 3); +INSERT INTO `area` VALUES (440882, 440800, '雷州市', 2, 0, 3); +INSERT INTO `area` VALUES (440883, 440800, '吴川市', 2, 0, 3); +INSERT INTO `area` VALUES (440884, 440800, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (440900, 440000, '茂名市', 2, 0, 2); +INSERT INTO `area` VALUES (440902, 440900, '茂南区', 2, 0, 3); +INSERT INTO `area` VALUES (440903, 440900, '茂港区', 2, 0, 3); +INSERT INTO `area` VALUES (440904, 440900, '电白区', 2, 0, 3); +INSERT INTO `area` VALUES (440923, 440900, '电白县', 2, 0, 3); +INSERT INTO `area` VALUES (440981, 440900, '高州市', 2, 0, 3); +INSERT INTO `area` VALUES (440982, 440900, '化州市', 2, 0, 3); +INSERT INTO `area` VALUES (440983, 440900, '信宜市', 2, 0, 3); +INSERT INTO `area` VALUES (440984, 440900, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (441200, 440000, '肇庆市', 2, 0, 2); +INSERT INTO `area` VALUES (441202, 441200, '端州区', 2, 0, 3); +INSERT INTO `area` VALUES (441203, 441200, '鼎湖区', 2, 0, 3); +INSERT INTO `area` VALUES (441223, 441200, '广宁县', 2, 0, 3); +INSERT INTO `area` VALUES (441224, 441200, '怀集县', 2, 0, 3); +INSERT INTO `area` VALUES (441225, 441200, '封开县', 2, 0, 3); +INSERT INTO `area` VALUES (441226, 441200, '德庆县', 2, 0, 3); +INSERT INTO `area` VALUES (441283, 441200, '高要市', 2, 0, 3); +INSERT INTO `area` VALUES (441284, 441200, '四会市', 2, 0, 3); +INSERT INTO `area` VALUES (441285, 441200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (441300, 440000, '惠州市', 2, 0, 2); +INSERT INTO `area` VALUES (441302, 441300, '惠城区', 2, 0, 3); +INSERT INTO `area` VALUES (441303, 441300, '惠阳区', 2, 0, 3); +INSERT INTO `area` VALUES (441322, 441300, '博罗县', 2, 0, 3); +INSERT INTO `area` VALUES (441323, 441300, '惠东县', 2, 0, 3); +INSERT INTO `area` VALUES (441324, 441300, '龙门县', 2, 0, 3); +INSERT INTO `area` VALUES (441325, 441300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (441400, 440000, '梅州市', 2, 0, 2); +INSERT INTO `area` VALUES (441402, 441400, '梅江区', 2, 0, 3); +INSERT INTO `area` VALUES (441403, 441400, '梅县区', 2, 0, 3); +INSERT INTO `area` VALUES (441421, 441400, '梅县', 2, 0, 3); +INSERT INTO `area` VALUES (441422, 441400, '大埔县', 2, 0, 3); +INSERT INTO `area` VALUES (441423, 441400, '丰顺县', 2, 0, 3); +INSERT INTO `area` VALUES (441424, 441400, '五华县', 2, 0, 3); +INSERT INTO `area` VALUES (441426, 441400, '平远县', 2, 0, 3); +INSERT INTO `area` VALUES (441427, 441400, '蕉岭县', 2, 0, 3); +INSERT INTO `area` VALUES (441481, 441400, '兴宁市', 2, 0, 3); +INSERT INTO `area` VALUES (441482, 441400, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (441500, 440000, '汕尾市', 2, 0, 2); +INSERT INTO `area` VALUES (441502, 441500, '城区', 2, 0, 3); +INSERT INTO `area` VALUES (441521, 441500, '海丰县', 2, 0, 3); +INSERT INTO `area` VALUES (441523, 441500, '陆河县', 2, 0, 3); +INSERT INTO `area` VALUES (441581, 441500, '陆丰市', 2, 0, 3); +INSERT INTO `area` VALUES (441582, 441500, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (441600, 440000, '河源市', 2, 0, 2); +INSERT INTO `area` VALUES (441602, 441600, '源城区', 2, 0, 3); +INSERT INTO `area` VALUES (441621, 441600, '紫金县', 2, 0, 3); +INSERT INTO `area` VALUES (441622, 441600, '龙川县', 2, 0, 3); +INSERT INTO `area` VALUES (441623, 441600, '连平县', 2, 0, 3); +INSERT INTO `area` VALUES (441624, 441600, '和平县', 2, 0, 3); +INSERT INTO `area` VALUES (441625, 441600, '东源县', 2, 0, 3); +INSERT INTO `area` VALUES (441626, 441600, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (441700, 440000, '阳江市', 2, 0, 2); +INSERT INTO `area` VALUES (441702, 441700, '江城区', 2, 0, 3); +INSERT INTO `area` VALUES (441704, 441700, '阳东区', 2, 0, 3); +INSERT INTO `area` VALUES (441721, 441700, '阳西县', 2, 0, 3); +INSERT INTO `area` VALUES (441723, 441700, '阳东县', 2, 0, 3); +INSERT INTO `area` VALUES (441781, 441700, '阳春市', 2, 0, 3); +INSERT INTO `area` VALUES (441782, 441700, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (441800, 440000, '清远市', 2, 0, 2); +INSERT INTO `area` VALUES (441802, 441800, '清城区', 2, 0, 3); +INSERT INTO `area` VALUES (441803, 441800, '清新区', 2, 0, 3); +INSERT INTO `area` VALUES (441821, 441800, '佛冈县', 2, 0, 3); +INSERT INTO `area` VALUES (441823, 441800, '阳山县', 2, 0, 3); +INSERT INTO `area` VALUES (441825, 441800, '连山壮族瑶族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (441826, 441800, '连南瑶族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (441827, 441800, '清新县', 2, 0, 3); +INSERT INTO `area` VALUES (441881, 441800, '英德市', 2, 0, 3); +INSERT INTO `area` VALUES (441882, 441800, '连州市', 2, 0, 3); +INSERT INTO `area` VALUES (441883, 441800, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (441900, 440000, '东莞市', 2, 0, 2); +INSERT INTO `area` VALUES (442000, 440000, '中山市', 2, 0, 2); +INSERT INTO `area` VALUES (445100, 440000, '潮州市', 2, 0, 2); +INSERT INTO `area` VALUES (445102, 445100, '湘桥区', 2, 0, 3); +INSERT INTO `area` VALUES (445103, 445100, '潮安区', 2, 0, 3); +INSERT INTO `area` VALUES (445121, 445100, '潮安县', 2, 0, 3); +INSERT INTO `area` VALUES (445122, 445100, '饶平县', 2, 0, 3); +INSERT INTO `area` VALUES (445185, 445100, '枫溪区', 2, 0, 3); +INSERT INTO `area` VALUES (445186, 445100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (445200, 440000, '揭阳市', 2, 0, 2); +INSERT INTO `area` VALUES (445202, 445200, '榕城区', 2, 0, 3); +INSERT INTO `area` VALUES (445203, 445200, '揭东区', 2, 0, 3); +INSERT INTO `area` VALUES (445221, 445200, '揭东县', 2, 0, 3); +INSERT INTO `area` VALUES (445222, 445200, '揭西县', 2, 0, 3); +INSERT INTO `area` VALUES (445224, 445200, '惠来县', 2, 0, 3); +INSERT INTO `area` VALUES (445281, 445200, '普宁市', 2, 0, 3); +INSERT INTO `area` VALUES (445284, 445200, '东山区', 2, 0, 3); +INSERT INTO `area` VALUES (445285, 445200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (445300, 440000, '云浮市', 2, 0, 2); +INSERT INTO `area` VALUES (445302, 445300, '云城区', 2, 0, 3); +INSERT INTO `area` VALUES (445303, 445300, '云安区', 2, 0, 3); +INSERT INTO `area` VALUES (445321, 445300, '新兴县', 2, 0, 3); +INSERT INTO `area` VALUES (445322, 445300, '郁南县', 2, 0, 3); +INSERT INTO `area` VALUES (445323, 445300, '云安县', 2, 0, 3); +INSERT INTO `area` VALUES (445381, 445300, '罗定市', 2, 0, 3); +INSERT INTO `area` VALUES (445382, 445300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (450000, 0, '广西壮族自治区', 2, 0, 1); +INSERT INTO `area` VALUES (450100, 450000, '南宁市', 2, 0, 2); +INSERT INTO `area` VALUES (450102, 450100, '兴宁区', 2, 0, 3); +INSERT INTO `area` VALUES (450103, 450100, '青秀区', 2, 0, 3); +INSERT INTO `area` VALUES (450105, 450100, '江南区', 2, 0, 3); +INSERT INTO `area` VALUES (450107, 450100, '西乡塘区', 2, 0, 3); +INSERT INTO `area` VALUES (450108, 450100, '良庆区', 2, 0, 3); +INSERT INTO `area` VALUES (450109, 450100, '邕宁区', 2, 0, 3); +INSERT INTO `area` VALUES (450110, 450100, '武鸣区', 2, 0, 3); +INSERT INTO `area` VALUES (450122, 450100, '武鸣县', 2, 0, 3); +INSERT INTO `area` VALUES (450123, 450100, '隆安县', 2, 0, 3); +INSERT INTO `area` VALUES (450124, 450100, '马山县', 2, 0, 3); +INSERT INTO `area` VALUES (450125, 450100, '上林县', 2, 0, 3); +INSERT INTO `area` VALUES (450126, 450100, '宾阳县', 2, 0, 3); +INSERT INTO `area` VALUES (450127, 450100, '横县', 2, 0, 3); +INSERT INTO `area` VALUES (450128, 450100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (450200, 450000, '柳州市', 2, 0, 2); +INSERT INTO `area` VALUES (450202, 450200, '城中区', 2, 0, 3); +INSERT INTO `area` VALUES (450203, 450200, '鱼峰区', 2, 0, 3); +INSERT INTO `area` VALUES (450204, 450200, '柳南区', 2, 0, 3); +INSERT INTO `area` VALUES (450205, 450200, '柳北区', 2, 0, 3); +INSERT INTO `area` VALUES (450221, 450200, '柳江县', 2, 0, 3); +INSERT INTO `area` VALUES (450222, 450200, '柳城县', 2, 0, 3); +INSERT INTO `area` VALUES (450223, 450200, '鹿寨县', 2, 0, 3); +INSERT INTO `area` VALUES (450224, 450200, '融安县', 2, 0, 3); +INSERT INTO `area` VALUES (450225, 450200, '融水苗族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (450226, 450200, '三江侗族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (450227, 450200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (450300, 450000, '桂林市', 2, 0, 2); +INSERT INTO `area` VALUES (450302, 450300, '秀峰区', 2, 0, 3); +INSERT INTO `area` VALUES (450303, 450300, '叠彩区', 2, 0, 3); +INSERT INTO `area` VALUES (450304, 450300, '象山区', 2, 0, 3); +INSERT INTO `area` VALUES (450305, 450300, '七星区', 2, 0, 3); +INSERT INTO `area` VALUES (450311, 450300, '雁山区', 2, 0, 3); +INSERT INTO `area` VALUES (450312, 450300, '临桂区', 2, 0, 3); +INSERT INTO `area` VALUES (450321, 450300, '阳朔县', 2, 0, 3); +INSERT INTO `area` VALUES (450322, 450300, '临桂县', 2, 0, 3); +INSERT INTO `area` VALUES (450323, 450300, '灵川县', 2, 0, 3); +INSERT INTO `area` VALUES (450324, 450300, '全州县', 2, 0, 3); +INSERT INTO `area` VALUES (450325, 450300, '兴安县', 2, 0, 3); +INSERT INTO `area` VALUES (450326, 450300, '永福县', 2, 0, 3); +INSERT INTO `area` VALUES (450327, 450300, '灌阳县', 2, 0, 3); +INSERT INTO `area` VALUES (450328, 450300, '龙胜各族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (450329, 450300, '资源县', 2, 0, 3); +INSERT INTO `area` VALUES (450330, 450300, '平乐县', 2, 0, 3); +INSERT INTO `area` VALUES (450331, 450300, '荔浦县', 2, 0, 3); +INSERT INTO `area` VALUES (450332, 450300, '恭城瑶族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (450333, 450300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (450400, 450000, '梧州市', 2, 0, 2); +INSERT INTO `area` VALUES (450403, 450400, '万秀区', 2, 0, 3); +INSERT INTO `area` VALUES (450404, 450400, '蝶山区', 2, 0, 3); +INSERT INTO `area` VALUES (450405, 450400, '长洲区', 2, 0, 3); +INSERT INTO `area` VALUES (450406, 450400, '龙圩区', 2, 0, 3); +INSERT INTO `area` VALUES (450421, 450400, '苍梧县', 2, 0, 3); +INSERT INTO `area` VALUES (450422, 450400, '藤县', 2, 0, 3); +INSERT INTO `area` VALUES (450423, 450400, '蒙山县', 2, 0, 3); +INSERT INTO `area` VALUES (450481, 450400, '岑溪市', 2, 0, 3); +INSERT INTO `area` VALUES (450482, 450400, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (450500, 450000, '北海市', 2, 0, 2); +INSERT INTO `area` VALUES (450502, 450500, '海城区', 2, 0, 3); +INSERT INTO `area` VALUES (450503, 450500, '银海区', 2, 0, 3); +INSERT INTO `area` VALUES (450512, 450500, '铁山港区', 2, 0, 3); +INSERT INTO `area` VALUES (450521, 450500, '合浦县', 2, 0, 3); +INSERT INTO `area` VALUES (450522, 450500, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (450600, 450000, '防城港市', 2, 0, 2); +INSERT INTO `area` VALUES (450602, 450600, '港口区', 2, 0, 3); +INSERT INTO `area` VALUES (450603, 450600, '防城区', 2, 0, 3); +INSERT INTO `area` VALUES (450621, 450600, '上思县', 2, 0, 3); +INSERT INTO `area` VALUES (450681, 450600, '东兴市', 2, 0, 3); +INSERT INTO `area` VALUES (450682, 450600, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (450700, 450000, '钦州市', 2, 0, 2); +INSERT INTO `area` VALUES (450702, 450700, '钦南区', 2, 0, 3); +INSERT INTO `area` VALUES (450703, 450700, '钦北区', 2, 0, 3); +INSERT INTO `area` VALUES (450721, 450700, '灵山县', 2, 0, 3); +INSERT INTO `area` VALUES (450722, 450700, '浦北县', 2, 0, 3); +INSERT INTO `area` VALUES (450723, 450700, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (450800, 450000, '贵港市', 2, 0, 2); +INSERT INTO `area` VALUES (450802, 450800, '港北区', 2, 0, 3); +INSERT INTO `area` VALUES (450803, 450800, '港南区', 2, 0, 3); +INSERT INTO `area` VALUES (450804, 450800, '覃塘区', 2, 0, 3); +INSERT INTO `area` VALUES (450821, 450800, '平南县', 2, 0, 3); +INSERT INTO `area` VALUES (450881, 450800, '桂平市', 2, 0, 3); +INSERT INTO `area` VALUES (450882, 450800, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (450900, 450000, '玉林市', 2, 0, 2); +INSERT INTO `area` VALUES (450902, 450900, '玉州区', 2, 0, 3); +INSERT INTO `area` VALUES (450903, 450900, '福绵区', 2, 0, 3); +INSERT INTO `area` VALUES (450921, 450900, '容县', 2, 0, 3); +INSERT INTO `area` VALUES (450922, 450900, '陆川县', 2, 0, 3); +INSERT INTO `area` VALUES (450923, 450900, '博白县', 2, 0, 3); +INSERT INTO `area` VALUES (450924, 450900, '兴业县', 2, 0, 3); +INSERT INTO `area` VALUES (450981, 450900, '北流市', 2, 0, 3); +INSERT INTO `area` VALUES (450982, 450900, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (451000, 450000, '百色市', 2, 0, 2); +INSERT INTO `area` VALUES (451002, 451000, '右江区', 2, 0, 3); +INSERT INTO `area` VALUES (451021, 451000, '田阳县', 2, 0, 3); +INSERT INTO `area` VALUES (451022, 451000, '田东县', 2, 0, 3); +INSERT INTO `area` VALUES (451023, 451000, '平果县', 2, 0, 3); +INSERT INTO `area` VALUES (451024, 451000, '德保县', 2, 0, 3); +INSERT INTO `area` VALUES (451025, 451000, '靖西县', 2, 0, 3); +INSERT INTO `area` VALUES (451026, 451000, '那坡县', 2, 0, 3); +INSERT INTO `area` VALUES (451027, 451000, '凌云县', 2, 0, 3); +INSERT INTO `area` VALUES (451028, 451000, '乐业县', 2, 0, 3); +INSERT INTO `area` VALUES (451029, 451000, '田林县', 2, 0, 3); +INSERT INTO `area` VALUES (451030, 451000, '西林县', 2, 0, 3); +INSERT INTO `area` VALUES (451031, 451000, '隆林各族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (451032, 451000, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (451100, 450000, '贺州市', 2, 0, 2); +INSERT INTO `area` VALUES (451102, 451100, '八步区', 2, 0, 3); +INSERT INTO `area` VALUES (451119, 451100, '平桂管理区', 2, 0, 3); +INSERT INTO `area` VALUES (451121, 451100, '昭平县', 2, 0, 3); +INSERT INTO `area` VALUES (451122, 451100, '钟山县', 2, 0, 3); +INSERT INTO `area` VALUES (451123, 451100, '富川瑶族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (451124, 451100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (451200, 450000, '河池市', 2, 0, 2); +INSERT INTO `area` VALUES (451202, 451200, '金城江区', 2, 0, 3); +INSERT INTO `area` VALUES (451221, 451200, '南丹县', 2, 0, 3); +INSERT INTO `area` VALUES (451222, 451200, '天峨县', 2, 0, 3); +INSERT INTO `area` VALUES (451223, 451200, '凤山县', 2, 0, 3); +INSERT INTO `area` VALUES (451224, 451200, '东兰县', 2, 0, 3); +INSERT INTO `area` VALUES (451225, 451200, '罗城仫佬族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (451226, 451200, '环江毛南族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (451227, 451200, '巴马瑶族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (451228, 451200, '都安瑶族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (451229, 451200, '大化瑶族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (451281, 451200, '宜州市', 2, 0, 3); +INSERT INTO `area` VALUES (451282, 451200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (451300, 450000, '来宾市', 2, 0, 2); +INSERT INTO `area` VALUES (451302, 451300, '兴宾区', 2, 0, 3); +INSERT INTO `area` VALUES (451321, 451300, '忻城县', 2, 0, 3); +INSERT INTO `area` VALUES (451322, 451300, '象州县', 2, 0, 3); +INSERT INTO `area` VALUES (451323, 451300, '武宣县', 2, 0, 3); +INSERT INTO `area` VALUES (451324, 451300, '金秀瑶族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (451381, 451300, '合山市', 2, 0, 3); +INSERT INTO `area` VALUES (451382, 451300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (451400, 450000, '崇左市', 2, 0, 2); +INSERT INTO `area` VALUES (451402, 451400, '江州区', 2, 0, 3); +INSERT INTO `area` VALUES (451421, 451400, '扶绥县', 2, 0, 3); +INSERT INTO `area` VALUES (451422, 451400, '宁明县', 2, 0, 3); +INSERT INTO `area` VALUES (451423, 451400, '龙州县', 2, 0, 3); +INSERT INTO `area` VALUES (451424, 451400, '大新县', 2, 0, 3); +INSERT INTO `area` VALUES (451425, 451400, '天等县', 2, 0, 3); +INSERT INTO `area` VALUES (451481, 451400, '凭祥市', 2, 0, 3); +INSERT INTO `area` VALUES (451482, 451400, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (460000, 0, '海南省', 2, 0, 1); +INSERT INTO `area` VALUES (460100, 460000, '海口市', 2, 0, 2); +INSERT INTO `area` VALUES (460105, 460100, '秀英区', 2, 0, 3); +INSERT INTO `area` VALUES (460106, 460100, '龙华区', 2, 0, 3); +INSERT INTO `area` VALUES (460107, 460100, '琼山区', 2, 0, 3); +INSERT INTO `area` VALUES (460108, 460100, '美兰区', 2, 0, 3); +INSERT INTO `area` VALUES (460109, 460100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (460200, 460000, '三亚市', 2, 0, 2); +INSERT INTO `area` VALUES (460202, 460200, '海棠区', 2, 0, 3); +INSERT INTO `area` VALUES (460203, 460200, '吉阳区', 2, 0, 3); +INSERT INTO `area` VALUES (460204, 460200, '天涯区', 2, 0, 3); +INSERT INTO `area` VALUES (460205, 460200, '崖州区', 2, 0, 3); +INSERT INTO `area` VALUES (460300, 460000, '三沙市', 2, 0, 2); +INSERT INTO `area` VALUES (460400, 460000, '儋州市', 2, 0, 2); +INSERT INTO `area` VALUES (469000, 460000, '省直辖县级行政区划', 2, 0, 2); +INSERT INTO `area` VALUES (469001, 469000, '五指山市', 2, 0, 3); +INSERT INTO `area` VALUES (469002, 469000, '琼海市', 2, 0, 3); +INSERT INTO `area` VALUES (469003, 460000, '儋州市', 2, 0, 2); +INSERT INTO `area` VALUES (469005, 469000, '文昌市', 2, 0, 3); +INSERT INTO `area` VALUES (469006, 469000, '万宁市', 2, 0, 3); +INSERT INTO `area` VALUES (469007, 469000, '东方市', 2, 0, 3); +INSERT INTO `area` VALUES (469021, 469000, '定安县', 2, 0, 3); +INSERT INTO `area` VALUES (469022, 469000, '屯昌县', 2, 0, 3); +INSERT INTO `area` VALUES (469023, 469000, '澄迈县', 2, 0, 3); +INSERT INTO `area` VALUES (469024, 469000, '临高县', 2, 0, 3); +INSERT INTO `area` VALUES (469025, 469000, '白沙黎族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (469026, 469000, '昌江黎族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (469027, 469000, '乐东黎族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (469028, 469000, '陵水黎族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (469029, 469000, '保亭黎族苗族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (469030, 469000, '琼中黎族苗族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (469031, 460000, '昌江黎族自治县', 2, 0, 2); +INSERT INTO `area` VALUES (469033, 460000, '乐东黎族自治县', 2, 0, 2); +INSERT INTO `area` VALUES (469034, 460000, '陵水黎族自治县', 2, 0, 2); +INSERT INTO `area` VALUES (469035, 460000, '保亭黎族苗族自治县', 2, 0, 2); +INSERT INTO `area` VALUES (469036, 460000, '琼中黎族苗族自治县', 2, 0, 2); +INSERT INTO `area` VALUES (469037, 460000, '西沙群岛', 2, 0, 2); +INSERT INTO `area` VALUES (469038, 460000, '南沙群岛', 2, 0, 2); +INSERT INTO `area` VALUES (469039, 460000, '中沙群岛的岛礁及其海域', 2, 0, 2); +INSERT INTO `area` VALUES (471004, 410300, '高新区', 2, 0, 3); +INSERT INTO `area` VALUES (471005, 410300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (500000, 0, '重庆市', 2, 0, 1); +INSERT INTO `area` VALUES (500100, 500000, '重庆市', 2, 0, 2); +INSERT INTO `area` VALUES (500101, 500100, '万州区', 2, 0, 3); +INSERT INTO `area` VALUES (500102, 500100, '涪陵区', 2, 0, 3); +INSERT INTO `area` VALUES (500103, 500100, '渝中区', 2, 0, 3); +INSERT INTO `area` VALUES (500104, 500100, '大渡口区', 2, 0, 3); +INSERT INTO `area` VALUES (500105, 500100, '江北区', 2, 0, 3); +INSERT INTO `area` VALUES (500106, 500100, '沙坪坝区', 2, 0, 3); +INSERT INTO `area` VALUES (500107, 500100, '九龙坡区', 2, 0, 3); +INSERT INTO `area` VALUES (500108, 500100, '南岸区', 2, 0, 3); +INSERT INTO `area` VALUES (500109, 500100, '北碚区', 2, 0, 3); +INSERT INTO `area` VALUES (500110, 500100, '綦江区', 2, 0, 3); +INSERT INTO `area` VALUES (500111, 500100, '大足区', 2, 0, 3); +INSERT INTO `area` VALUES (500112, 500100, '渝北区', 2, 0, 3); +INSERT INTO `area` VALUES (500113, 500100, '巴南区', 2, 0, 3); +INSERT INTO `area` VALUES (500114, 500100, '黔江区', 2, 0, 3); +INSERT INTO `area` VALUES (500115, 500100, '长寿区', 2, 0, 3); +INSERT INTO `area` VALUES (500116, 500100, '江津区', 2, 0, 3); +INSERT INTO `area` VALUES (500117, 500100, '合川区', 2, 0, 3); +INSERT INTO `area` VALUES (500118, 500100, '永川区', 2, 0, 3); +INSERT INTO `area` VALUES (500119, 500100, '南川区', 2, 0, 3); +INSERT INTO `area` VALUES (500120, 500100, '璧山区', 2, 0, 3); +INSERT INTO `area` VALUES (500151, 500100, '铜梁区', 2, 0, 3); +INSERT INTO `area` VALUES (500222, 500100, '綦江县', 2, 0, 3); +INSERT INTO `area` VALUES (500223, 500200, '潼南县', 2, 0, 3); +INSERT INTO `area` VALUES (500224, 500100, '铜梁县', 2, 0, 3); +INSERT INTO `area` VALUES (500225, 500100, '大足县', 2, 0, 3); +INSERT INTO `area` VALUES (500226, 500200, '荣昌县', 2, 0, 3); +INSERT INTO `area` VALUES (500227, 500100, '璧山县', 2, 0, 3); +INSERT INTO `area` VALUES (500228, 500200, '梁平县', 2, 0, 3); +INSERT INTO `area` VALUES (500229, 500200, '城口县', 2, 0, 3); +INSERT INTO `area` VALUES (500230, 500200, '丰都县', 2, 0, 3); +INSERT INTO `area` VALUES (500231, 500200, '垫江县', 2, 0, 3); +INSERT INTO `area` VALUES (500232, 500200, '武隆县', 2, 0, 3); +INSERT INTO `area` VALUES (500233, 500200, '忠县', 2, 0, 3); +INSERT INTO `area` VALUES (500234, 500200, '开县', 2, 0, 3); +INSERT INTO `area` VALUES (500235, 500200, '云阳县', 2, 0, 3); +INSERT INTO `area` VALUES (500236, 500200, '奉节县', 2, 0, 3); +INSERT INTO `area` VALUES (500237, 500200, '巫山县', 2, 0, 3); +INSERT INTO `area` VALUES (500238, 500200, '巫溪县', 2, 0, 3); +INSERT INTO `area` VALUES (500240, 500200, '石柱土家族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (500241, 500200, '秀山土家族苗族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (500242, 500200, '酉阳土家族苗族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (500243, 500200, '彭水苗族土家族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (500381, 500100, '江津区', 2, 0, 3); +INSERT INTO `area` VALUES (500382, 500100, '合川区', 2, 0, 3); +INSERT INTO `area` VALUES (500383, 500100, '永川区', 2, 0, 3); +INSERT INTO `area` VALUES (500384, 500100, '南川区', 2, 0, 3); +INSERT INTO `area` VALUES (500385, 500100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (510000, 0, '四川省', 2, 0, 1); +INSERT INTO `area` VALUES (510100, 510000, '成都市', 2, 0, 2); +INSERT INTO `area` VALUES (510104, 510100, '锦江区', 2, 0, 3); +INSERT INTO `area` VALUES (510105, 510100, '青羊区', 2, 0, 3); +INSERT INTO `area` VALUES (510106, 510100, '金牛区', 2, 0, 3); +INSERT INTO `area` VALUES (510107, 510100, '武侯区', 2, 0, 3); +INSERT INTO `area` VALUES (510108, 510100, '成华区', 2, 0, 3); +INSERT INTO `area` VALUES (510112, 510100, '龙泉驿区', 2, 0, 3); +INSERT INTO `area` VALUES (510113, 510100, '青白江区', 2, 0, 3); +INSERT INTO `area` VALUES (510114, 510100, '新都区', 2, 0, 3); +INSERT INTO `area` VALUES (510115, 510100, '温江区', 2, 0, 3); +INSERT INTO `area` VALUES (510121, 510100, '金堂县', 2, 0, 3); +INSERT INTO `area` VALUES (510122, 510100, '双流县', 2, 0, 3); +INSERT INTO `area` VALUES (510124, 510100, '郫县', 2, 0, 3); +INSERT INTO `area` VALUES (510129, 510100, '大邑县', 2, 0, 3); +INSERT INTO `area` VALUES (510131, 510100, '蒲江县', 2, 0, 3); +INSERT INTO `area` VALUES (510132, 510100, '新津县', 2, 0, 3); +INSERT INTO `area` VALUES (510181, 510100, '都江堰市', 2, 0, 3); +INSERT INTO `area` VALUES (510182, 510100, '彭州市', 2, 0, 3); +INSERT INTO `area` VALUES (510183, 510100, '邛崃市', 2, 0, 3); +INSERT INTO `area` VALUES (510184, 510100, '崇州市', 2, 0, 3); +INSERT INTO `area` VALUES (510185, 510100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (510300, 510000, '自贡市', 2, 0, 2); +INSERT INTO `area` VALUES (510302, 510300, '自流井区', 2, 0, 3); +INSERT INTO `area` VALUES (510303, 510300, '贡井区', 2, 0, 3); +INSERT INTO `area` VALUES (510304, 510300, '大安区', 2, 0, 3); +INSERT INTO `area` VALUES (510311, 510300, '沿滩区', 2, 0, 3); +INSERT INTO `area` VALUES (510321, 510300, '荣县', 2, 0, 3); +INSERT INTO `area` VALUES (510322, 510300, '富顺县', 2, 0, 3); +INSERT INTO `area` VALUES (510323, 510300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (510400, 510000, '攀枝花市', 2, 0, 2); +INSERT INTO `area` VALUES (510402, 510400, '东区', 2, 0, 3); +INSERT INTO `area` VALUES (510403, 510400, '西区', 2, 0, 3); +INSERT INTO `area` VALUES (510411, 510400, '仁和区', 2, 0, 3); +INSERT INTO `area` VALUES (510421, 510400, '米易县', 2, 0, 3); +INSERT INTO `area` VALUES (510422, 510400, '盐边县', 2, 0, 3); +INSERT INTO `area` VALUES (510423, 510400, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (510500, 510000, '泸州市', 2, 0, 2); +INSERT INTO `area` VALUES (510502, 510500, '江阳区', 2, 0, 3); +INSERT INTO `area` VALUES (510503, 510500, '纳溪区', 2, 0, 3); +INSERT INTO `area` VALUES (510504, 510500, '龙马潭区', 2, 0, 3); +INSERT INTO `area` VALUES (510521, 510500, '泸县', 2, 0, 3); +INSERT INTO `area` VALUES (510522, 510500, '合江县', 2, 0, 3); +INSERT INTO `area` VALUES (510524, 510500, '叙永县', 2, 0, 3); +INSERT INTO `area` VALUES (510525, 510500, '古蔺县', 2, 0, 3); +INSERT INTO `area` VALUES (510526, 510500, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (510600, 510000, '德阳市', 2, 0, 2); +INSERT INTO `area` VALUES (510603, 510600, '旌阳区', 2, 0, 3); +INSERT INTO `area` VALUES (510623, 510600, '中江县', 2, 0, 3); +INSERT INTO `area` VALUES (510626, 510600, '罗江县', 2, 0, 3); +INSERT INTO `area` VALUES (510681, 510600, '广汉市', 2, 0, 3); +INSERT INTO `area` VALUES (510682, 510600, '什邡市', 2, 0, 3); +INSERT INTO `area` VALUES (510683, 510600, '绵竹市', 2, 0, 3); +INSERT INTO `area` VALUES (510684, 510600, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (510700, 510000, '绵阳市', 2, 0, 2); +INSERT INTO `area` VALUES (510703, 510700, '涪城区', 2, 0, 3); +INSERT INTO `area` VALUES (510704, 510700, '游仙区', 2, 0, 3); +INSERT INTO `area` VALUES (510722, 510700, '三台县', 2, 0, 3); +INSERT INTO `area` VALUES (510723, 510700, '盐亭县', 2, 0, 3); +INSERT INTO `area` VALUES (510724, 510700, '安县', 2, 0, 3); +INSERT INTO `area` VALUES (510725, 510700, '梓潼县', 2, 0, 3); +INSERT INTO `area` VALUES (510726, 510700, '北川羌族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (510727, 510700, '平武县', 2, 0, 3); +INSERT INTO `area` VALUES (510751, 510700, '高新区', 2, 0, 3); +INSERT INTO `area` VALUES (510781, 510700, '江油市', 2, 0, 3); +INSERT INTO `area` VALUES (510782, 510700, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (510800, 510000, '广元市', 2, 0, 2); +INSERT INTO `area` VALUES (510802, 510800, '利州区', 2, 0, 3); +INSERT INTO `area` VALUES (510811, 510800, '昭化区', 2, 0, 3); +INSERT INTO `area` VALUES (510812, 510800, '朝天区', 2, 0, 3); +INSERT INTO `area` VALUES (510821, 510800, '旺苍县', 2, 0, 3); +INSERT INTO `area` VALUES (510822, 510800, '青川县', 2, 0, 3); +INSERT INTO `area` VALUES (510823, 510800, '剑阁县', 2, 0, 3); +INSERT INTO `area` VALUES (510824, 510800, '苍溪县', 2, 0, 3); +INSERT INTO `area` VALUES (510825, 510800, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (510900, 510000, '遂宁市', 2, 0, 2); +INSERT INTO `area` VALUES (510903, 510900, '船山区', 2, 0, 3); +INSERT INTO `area` VALUES (510904, 510900, '安居区', 2, 0, 3); +INSERT INTO `area` VALUES (510921, 510900, '蓬溪县', 2, 0, 3); +INSERT INTO `area` VALUES (510922, 510900, '射洪县', 2, 0, 3); +INSERT INTO `area` VALUES (510923, 510900, '大英县', 2, 0, 3); +INSERT INTO `area` VALUES (510924, 510900, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (511000, 510000, '内江市', 2, 0, 2); +INSERT INTO `area` VALUES (511002, 511000, '市中区', 2, 0, 3); +INSERT INTO `area` VALUES (511011, 511000, '东兴区', 2, 0, 3); +INSERT INTO `area` VALUES (511024, 511000, '威远县', 2, 0, 3); +INSERT INTO `area` VALUES (511025, 511000, '资中县', 2, 0, 3); +INSERT INTO `area` VALUES (511028, 511000, '隆昌县', 2, 0, 3); +INSERT INTO `area` VALUES (511029, 511000, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (511100, 510000, '乐山市', 2, 0, 2); +INSERT INTO `area` VALUES (511102, 511100, '市中区', 2, 0, 3); +INSERT INTO `area` VALUES (511111, 511100, '沙湾区', 2, 0, 3); +INSERT INTO `area` VALUES (511112, 511100, '五通桥区', 2, 0, 3); +INSERT INTO `area` VALUES (511113, 511100, '金口河区', 2, 0, 3); +INSERT INTO `area` VALUES (511123, 511100, '犍为县', 2, 0, 3); +INSERT INTO `area` VALUES (511124, 511100, '井研县', 2, 0, 3); +INSERT INTO `area` VALUES (511126, 511100, '夹江县', 2, 0, 3); +INSERT INTO `area` VALUES (511129, 511100, '沐川县', 2, 0, 3); +INSERT INTO `area` VALUES (511132, 511100, '峨边彝族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (511133, 511100, '马边彝族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (511181, 511100, '峨眉山市', 2, 0, 3); +INSERT INTO `area` VALUES (511182, 511100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (511300, 510000, '南充市', 2, 0, 2); +INSERT INTO `area` VALUES (511302, 511300, '顺庆区', 2, 0, 3); +INSERT INTO `area` VALUES (511303, 511300, '高坪区', 2, 0, 3); +INSERT INTO `area` VALUES (511304, 511300, '嘉陵区', 2, 0, 3); +INSERT INTO `area` VALUES (511321, 511300, '南部县', 2, 0, 3); +INSERT INTO `area` VALUES (511322, 511300, '营山县', 2, 0, 3); +INSERT INTO `area` VALUES (511323, 511300, '蓬安县', 2, 0, 3); +INSERT INTO `area` VALUES (511324, 511300, '仪陇县', 2, 0, 3); +INSERT INTO `area` VALUES (511325, 511300, '西充县', 2, 0, 3); +INSERT INTO `area` VALUES (511381, 511300, '阆中市', 2, 0, 3); +INSERT INTO `area` VALUES (511382, 511300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (511400, 510000, '眉山市', 2, 0, 2); +INSERT INTO `area` VALUES (511402, 511400, '东坡区', 2, 0, 3); +INSERT INTO `area` VALUES (511403, 511400, '彭山区', 2, 0, 3); +INSERT INTO `area` VALUES (511421, 511400, '仁寿县', 2, 0, 3); +INSERT INTO `area` VALUES (511422, 511400, '彭山县', 2, 0, 3); +INSERT INTO `area` VALUES (511423, 511400, '洪雅县', 2, 0, 3); +INSERT INTO `area` VALUES (511424, 511400, '丹棱县', 2, 0, 3); +INSERT INTO `area` VALUES (511425, 511400, '青神县', 2, 0, 3); +INSERT INTO `area` VALUES (511426, 511400, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (511500, 510000, '宜宾市', 2, 0, 2); +INSERT INTO `area` VALUES (511502, 511500, '翠屏区', 2, 0, 3); +INSERT INTO `area` VALUES (511503, 511500, '南溪区', 2, 0, 3); +INSERT INTO `area` VALUES (511521, 511500, '宜宾县', 2, 0, 3); +INSERT INTO `area` VALUES (511522, 511500, '南溪县', 2, 0, 3); +INSERT INTO `area` VALUES (511523, 511500, '江安县', 2, 0, 3); +INSERT INTO `area` VALUES (511524, 511500, '长宁县', 2, 0, 3); +INSERT INTO `area` VALUES (511525, 511500, '高县', 2, 0, 3); +INSERT INTO `area` VALUES (511526, 511500, '珙县', 2, 0, 3); +INSERT INTO `area` VALUES (511527, 511500, '筠连县', 2, 0, 3); +INSERT INTO `area` VALUES (511528, 511500, '兴文县', 2, 0, 3); +INSERT INTO `area` VALUES (511529, 511500, '屏山县', 2, 0, 3); +INSERT INTO `area` VALUES (511530, 511500, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (511600, 510000, '广安市', 2, 0, 2); +INSERT INTO `area` VALUES (511602, 511600, '广安区', 2, 0, 3); +INSERT INTO `area` VALUES (511603, 511600, '前锋区', 2, 0, 3); +INSERT INTO `area` VALUES (511621, 511600, '岳池县', 2, 0, 3); +INSERT INTO `area` VALUES (511622, 511600, '武胜县', 2, 0, 3); +INSERT INTO `area` VALUES (511623, 511600, '邻水县', 2, 0, 3); +INSERT INTO `area` VALUES (511681, 511600, '华蓥市', 2, 0, 3); +INSERT INTO `area` VALUES (511682, 511600, '市辖区', 2, 0, 3); +INSERT INTO `area` VALUES (511683, 511600, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (511700, 510000, '达州市', 2, 0, 2); +INSERT INTO `area` VALUES (511702, 511700, '通川区', 2, 0, 3); +INSERT INTO `area` VALUES (511703, 511700, '达川区', 2, 0, 3); +INSERT INTO `area` VALUES (511721, 511700, '达县', 2, 0, 3); +INSERT INTO `area` VALUES (511722, 511700, '宣汉县', 2, 0, 3); +INSERT INTO `area` VALUES (511723, 511700, '开江县', 2, 0, 3); +INSERT INTO `area` VALUES (511724, 511700, '大竹县', 2, 0, 3); +INSERT INTO `area` VALUES (511725, 511700, '渠县', 2, 0, 3); +INSERT INTO `area` VALUES (511781, 511700, '万源市', 2, 0, 3); +INSERT INTO `area` VALUES (511782, 511700, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (511800, 510000, '雅安市', 2, 0, 2); +INSERT INTO `area` VALUES (511802, 511800, '雨城区', 2, 0, 3); +INSERT INTO `area` VALUES (511803, 511800, '名山区', 2, 0, 3); +INSERT INTO `area` VALUES (511821, 511800, '名山县', 2, 0, 3); +INSERT INTO `area` VALUES (511822, 511800, '荥经县', 2, 0, 3); +INSERT INTO `area` VALUES (511823, 511800, '汉源县', 2, 0, 3); +INSERT INTO `area` VALUES (511824, 511800, '石棉县', 2, 0, 3); +INSERT INTO `area` VALUES (511825, 511800, '天全县', 2, 0, 3); +INSERT INTO `area` VALUES (511826, 511800, '芦山县', 2, 0, 3); +INSERT INTO `area` VALUES (511827, 511800, '宝兴县', 2, 0, 3); +INSERT INTO `area` VALUES (511828, 511800, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (511900, 510000, '巴中市', 2, 0, 2); +INSERT INTO `area` VALUES (511902, 511900, '巴州区', 2, 0, 3); +INSERT INTO `area` VALUES (511903, 511900, '恩阳区', 2, 0, 3); +INSERT INTO `area` VALUES (511921, 511900, '通江县', 2, 0, 3); +INSERT INTO `area` VALUES (511922, 511900, '南江县', 2, 0, 3); +INSERT INTO `area` VALUES (511923, 511900, '平昌县', 2, 0, 3); +INSERT INTO `area` VALUES (511924, 511900, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (512000, 510000, '资阳市', 2, 0, 2); +INSERT INTO `area` VALUES (512002, 512000, '雁江区', 2, 0, 3); +INSERT INTO `area` VALUES (512021, 512000, '安岳县', 2, 0, 3); +INSERT INTO `area` VALUES (512022, 512000, '乐至县', 2, 0, 3); +INSERT INTO `area` VALUES (512081, 512000, '简阳市', 2, 0, 3); +INSERT INTO `area` VALUES (512082, 512000, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (513200, 510000, '阿坝藏族羌族自治州', 2, 0, 2); +INSERT INTO `area` VALUES (513221, 513200, '汶川县', 2, 0, 3); +INSERT INTO `area` VALUES (513222, 513200, '理县', 2, 0, 3); +INSERT INTO `area` VALUES (513223, 513200, '茂县', 2, 0, 3); +INSERT INTO `area` VALUES (513224, 513200, '松潘县', 2, 0, 3); +INSERT INTO `area` VALUES (513225, 513200, '九寨沟县', 2, 0, 3); +INSERT INTO `area` VALUES (513226, 513200, '金川县', 2, 0, 3); +INSERT INTO `area` VALUES (513227, 513200, '小金县', 2, 0, 3); +INSERT INTO `area` VALUES (513228, 513200, '黑水县', 2, 0, 3); +INSERT INTO `area` VALUES (513229, 513200, '马尔康县', 2, 0, 3); +INSERT INTO `area` VALUES (513230, 513200, '壤塘县', 2, 0, 3); +INSERT INTO `area` VALUES (513231, 513200, '阿坝县', 2, 0, 3); +INSERT INTO `area` VALUES (513232, 513200, '若尔盖县', 2, 0, 3); +INSERT INTO `area` VALUES (513233, 513200, '红原县', 2, 0, 3); +INSERT INTO `area` VALUES (513234, 513200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (513300, 510000, '甘孜藏族自治州', 2, 0, 2); +INSERT INTO `area` VALUES (513301, 513300, '康定市', 2, 0, 3); +INSERT INTO `area` VALUES (513321, 513300, '康定县', 2, 0, 3); +INSERT INTO `area` VALUES (513322, 513300, '泸定县', 2, 0, 3); +INSERT INTO `area` VALUES (513323, 513300, '丹巴县', 2, 0, 3); +INSERT INTO `area` VALUES (513324, 513300, '九龙县', 2, 0, 3); +INSERT INTO `area` VALUES (513325, 513300, '雅江县', 2, 0, 3); +INSERT INTO `area` VALUES (513326, 513300, '道孚县', 2, 0, 3); +INSERT INTO `area` VALUES (513327, 513300, '炉霍县', 2, 0, 3); +INSERT INTO `area` VALUES (513328, 513300, '甘孜县', 2, 0, 3); +INSERT INTO `area` VALUES (513329, 513300, '新龙县', 2, 0, 3); +INSERT INTO `area` VALUES (513330, 513300, '德格县', 2, 0, 3); +INSERT INTO `area` VALUES (513331, 513300, '白玉县', 2, 0, 3); +INSERT INTO `area` VALUES (513332, 513300, '石渠县', 2, 0, 3); +INSERT INTO `area` VALUES (513333, 513300, '色达县', 2, 0, 3); +INSERT INTO `area` VALUES (513334, 513300, '理塘县', 2, 0, 3); +INSERT INTO `area` VALUES (513335, 513300, '巴塘县', 2, 0, 3); +INSERT INTO `area` VALUES (513336, 513300, '乡城县', 2, 0, 3); +INSERT INTO `area` VALUES (513337, 513300, '稻城县', 2, 0, 3); +INSERT INTO `area` VALUES (513338, 513300, '得荣县', 2, 0, 3); +INSERT INTO `area` VALUES (513339, 513300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (513400, 510000, '凉山彝族自治州', 2, 0, 2); +INSERT INTO `area` VALUES (513401, 513400, '西昌市', 2, 0, 3); +INSERT INTO `area` VALUES (513422, 513400, '木里藏族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (513423, 513400, '盐源县', 2, 0, 3); +INSERT INTO `area` VALUES (513424, 513400, '德昌县', 2, 0, 3); +INSERT INTO `area` VALUES (513425, 513400, '会理县', 2, 0, 3); +INSERT INTO `area` VALUES (513426, 513400, '会东县', 2, 0, 3); +INSERT INTO `area` VALUES (513427, 513400, '宁南县', 2, 0, 3); +INSERT INTO `area` VALUES (513428, 513400, '普格县', 2, 0, 3); +INSERT INTO `area` VALUES (513429, 513400, '布拖县', 2, 0, 3); +INSERT INTO `area` VALUES (513430, 513400, '金阳县', 2, 0, 3); +INSERT INTO `area` VALUES (513431, 513400, '昭觉县', 2, 0, 3); +INSERT INTO `area` VALUES (513432, 513400, '喜德县', 2, 0, 3); +INSERT INTO `area` VALUES (513433, 513400, '冕宁县', 2, 0, 3); +INSERT INTO `area` VALUES (513434, 513400, '越西县', 2, 0, 3); +INSERT INTO `area` VALUES (513435, 513400, '甘洛县', 2, 0, 3); +INSERT INTO `area` VALUES (513436, 513400, '美姑县', 2, 0, 3); +INSERT INTO `area` VALUES (513437, 513400, '雷波县', 2, 0, 3); +INSERT INTO `area` VALUES (513438, 513400, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (520000, 0, '贵州省', 2, 0, 1); +INSERT INTO `area` VALUES (520100, 520000, '贵阳市', 2, 0, 2); +INSERT INTO `area` VALUES (520102, 520100, '南明区', 2, 0, 3); +INSERT INTO `area` VALUES (520103, 520100, '云岩区', 2, 0, 3); +INSERT INTO `area` VALUES (520111, 520100, '花溪区', 2, 0, 3); +INSERT INTO `area` VALUES (520112, 520100, '乌当区', 2, 0, 3); +INSERT INTO `area` VALUES (520113, 520100, '白云区', 2, 0, 3); +INSERT INTO `area` VALUES (520114, 520100, '小河区', 2, 0, 3); +INSERT INTO `area` VALUES (520115, 520100, '观山湖区', 2, 0, 3); +INSERT INTO `area` VALUES (520121, 520100, '开阳县', 2, 0, 3); +INSERT INTO `area` VALUES (520122, 520100, '息烽县', 2, 0, 3); +INSERT INTO `area` VALUES (520123, 520100, '修文县', 2, 0, 3); +INSERT INTO `area` VALUES (520151, 520100, '金阳开发区', 2, 0, 3); +INSERT INTO `area` VALUES (520181, 520100, '清镇市', 2, 0, 3); +INSERT INTO `area` VALUES (520182, 520100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (520200, 520000, '六盘水市', 2, 0, 2); +INSERT INTO `area` VALUES (520201, 520200, '钟山区', 2, 0, 3); +INSERT INTO `area` VALUES (520203, 520200, '六枝特区', 2, 0, 3); +INSERT INTO `area` VALUES (520221, 520200, '水城县', 2, 0, 3); +INSERT INTO `area` VALUES (520222, 520200, '盘县', 2, 0, 3); +INSERT INTO `area` VALUES (520223, 520200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (520300, 520000, '遵义市', 2, 0, 2); +INSERT INTO `area` VALUES (520302, 520300, '红花岗区', 2, 0, 3); +INSERT INTO `area` VALUES (520303, 520300, '汇川区', 2, 0, 3); +INSERT INTO `area` VALUES (520321, 520300, '遵义县', 2, 0, 3); +INSERT INTO `area` VALUES (520322, 520300, '桐梓县', 2, 0, 3); +INSERT INTO `area` VALUES (520323, 520300, '绥阳县', 2, 0, 3); +INSERT INTO `area` VALUES (520324, 520300, '正安县', 2, 0, 3); +INSERT INTO `area` VALUES (520325, 520300, '道真仡佬族苗族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (520326, 520300, '务川仡佬族苗族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (520327, 520300, '凤冈县', 2, 0, 3); +INSERT INTO `area` VALUES (520328, 520300, '湄潭县', 2, 0, 3); +INSERT INTO `area` VALUES (520329, 520300, '余庆县', 2, 0, 3); +INSERT INTO `area` VALUES (520330, 520300, '习水县', 2, 0, 3); +INSERT INTO `area` VALUES (520381, 520300, '赤水市', 2, 0, 3); +INSERT INTO `area` VALUES (520382, 520300, '仁怀市', 2, 0, 3); +INSERT INTO `area` VALUES (520383, 520300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (520400, 520000, '安顺市', 2, 0, 2); +INSERT INTO `area` VALUES (520402, 520400, '西秀区', 2, 0, 3); +INSERT INTO `area` VALUES (520403, 520400, '平坝区', 2, 0, 3); +INSERT INTO `area` VALUES (520421, 520400, '平坝县', 2, 0, 3); +INSERT INTO `area` VALUES (520422, 520400, '普定县', 2, 0, 3); +INSERT INTO `area` VALUES (520423, 520400, '镇宁布依族苗族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (520424, 520400, '关岭布依族苗族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (520425, 520400, '紫云苗族布依族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (520426, 520400, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (520500, 520000, '毕节市', 2, 0, 2); +INSERT INTO `area` VALUES (520502, 520500, '七星关区', 2, 0, 3); +INSERT INTO `area` VALUES (520521, 520500, '大方县', 2, 0, 3); +INSERT INTO `area` VALUES (520522, 520500, '黔西县', 2, 0, 3); +INSERT INTO `area` VALUES (520523, 520500, '金沙县', 2, 0, 3); +INSERT INTO `area` VALUES (520524, 520500, '织金县', 2, 0, 3); +INSERT INTO `area` VALUES (520525, 520500, '纳雍县', 2, 0, 3); +INSERT INTO `area` VALUES (520526, 520500, '威宁彝族回族苗族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (520527, 520500, '赫章县', 2, 0, 3); +INSERT INTO `area` VALUES (520600, 520000, '铜仁市', 2, 0, 2); +INSERT INTO `area` VALUES (520602, 520600, '碧江区', 2, 0, 3); +INSERT INTO `area` VALUES (520603, 520600, '万山区', 2, 0, 3); +INSERT INTO `area` VALUES (520621, 520600, '江口县', 2, 0, 3); +INSERT INTO `area` VALUES (520622, 520600, '玉屏侗族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (520623, 520600, '石阡县', 2, 0, 3); +INSERT INTO `area` VALUES (520624, 520600, '思南县', 2, 0, 3); +INSERT INTO `area` VALUES (520625, 520600, '印江土家族苗族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (520626, 520600, '德江县', 2, 0, 3); +INSERT INTO `area` VALUES (520627, 520600, '沿河土家族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (520628, 520600, '松桃苗族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (522200, 520000, '铜仁地区', 2, 0, 2); +INSERT INTO `area` VALUES (522201, 522200, '铜仁市', 2, 0, 3); +INSERT INTO `area` VALUES (522222, 522200, '江口县', 2, 0, 3); +INSERT INTO `area` VALUES (522223, 522200, '玉屏侗族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (522224, 522200, '石阡县', 2, 0, 3); +INSERT INTO `area` VALUES (522225, 522200, '思南县', 2, 0, 3); +INSERT INTO `area` VALUES (522226, 522200, '印江土家族苗族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (522227, 522200, '德江县', 2, 0, 3); +INSERT INTO `area` VALUES (522228, 522200, '沿河土家族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (522229, 522200, '松桃苗族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (522230, 522200, '万山特区', 2, 0, 3); +INSERT INTO `area` VALUES (522231, 522200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (522300, 520000, '黔西南布依族苗族自治州', 2, 0, 2); +INSERT INTO `area` VALUES (522301, 522300, '兴义市', 2, 0, 3); +INSERT INTO `area` VALUES (522322, 522300, '兴仁县', 2, 0, 3); +INSERT INTO `area` VALUES (522323, 522300, '普安县', 2, 0, 3); +INSERT INTO `area` VALUES (522324, 522300, '晴隆县', 2, 0, 3); +INSERT INTO `area` VALUES (522325, 522300, '贞丰县', 2, 0, 3); +INSERT INTO `area` VALUES (522326, 522300, '望谟县', 2, 0, 3); +INSERT INTO `area` VALUES (522327, 522300, '册亨县', 2, 0, 3); +INSERT INTO `area` VALUES (522328, 522300, '安龙县', 2, 0, 3); +INSERT INTO `area` VALUES (522329, 522300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (522400, 520000, '毕节地区', 2, 0, 2); +INSERT INTO `area` VALUES (522401, 522400, '毕节市', 2, 0, 3); +INSERT INTO `area` VALUES (522422, 522400, '大方县', 2, 0, 3); +INSERT INTO `area` VALUES (522423, 522400, '黔西县', 2, 0, 3); +INSERT INTO `area` VALUES (522424, 522400, '金沙县', 2, 0, 3); +INSERT INTO `area` VALUES (522425, 522400, '织金县', 2, 0, 3); +INSERT INTO `area` VALUES (522426, 522400, '纳雍县', 2, 0, 3); +INSERT INTO `area` VALUES (522427, 522400, '威宁彝族回族苗族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (522428, 522400, '赫章县', 2, 0, 3); +INSERT INTO `area` VALUES (522429, 522400, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (522600, 520000, '黔东南苗族侗族自治州', 2, 0, 2); +INSERT INTO `area` VALUES (522601, 522600, '凯里市', 2, 0, 3); +INSERT INTO `area` VALUES (522622, 522600, '黄平县', 2, 0, 3); +INSERT INTO `area` VALUES (522623, 522600, '施秉县', 2, 0, 3); +INSERT INTO `area` VALUES (522624, 522600, '三穗县', 2, 0, 3); +INSERT INTO `area` VALUES (522625, 522600, '镇远县', 2, 0, 3); +INSERT INTO `area` VALUES (522626, 522600, '岑巩县', 2, 0, 3); +INSERT INTO `area` VALUES (522627, 522600, '天柱县', 2, 0, 3); +INSERT INTO `area` VALUES (522628, 522600, '锦屏县', 2, 0, 3); +INSERT INTO `area` VALUES (522629, 522600, '剑河县', 2, 0, 3); +INSERT INTO `area` VALUES (522630, 522600, '台江县', 2, 0, 3); +INSERT INTO `area` VALUES (522631, 522600, '黎平县', 2, 0, 3); +INSERT INTO `area` VALUES (522632, 522600, '榕江县', 2, 0, 3); +INSERT INTO `area` VALUES (522633, 522600, '从江县', 2, 0, 3); +INSERT INTO `area` VALUES (522634, 522600, '雷山县', 2, 0, 3); +INSERT INTO `area` VALUES (522635, 522600, '麻江县', 2, 0, 3); +INSERT INTO `area` VALUES (522636, 522600, '丹寨县', 2, 0, 3); +INSERT INTO `area` VALUES (522637, 522600, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (522700, 520000, '黔南布依族苗族自治州', 2, 0, 2); +INSERT INTO `area` VALUES (522701, 522700, '都匀市', 2, 0, 3); +INSERT INTO `area` VALUES (522702, 522700, '福泉市', 2, 0, 3); +INSERT INTO `area` VALUES (522722, 522700, '荔波县', 2, 0, 3); +INSERT INTO `area` VALUES (522723, 522700, '贵定县', 2, 0, 3); +INSERT INTO `area` VALUES (522725, 522700, '瓮安县', 2, 0, 3); +INSERT INTO `area` VALUES (522726, 522700, '独山县', 2, 0, 3); +INSERT INTO `area` VALUES (522727, 522700, '平塘县', 2, 0, 3); +INSERT INTO `area` VALUES (522728, 522700, '罗甸县', 2, 0, 3); +INSERT INTO `area` VALUES (522729, 522700, '长顺县', 2, 0, 3); +INSERT INTO `area` VALUES (522730, 522700, '龙里县', 2, 0, 3); +INSERT INTO `area` VALUES (522731, 522700, '惠水县', 2, 0, 3); +INSERT INTO `area` VALUES (522732, 522700, '三都水族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (522733, 522700, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (530000, 0, '云南省', 2, 0, 1); +INSERT INTO `area` VALUES (530100, 530000, '昆明市', 2, 0, 2); +INSERT INTO `area` VALUES (530102, 530100, '五华区', 2, 0, 3); +INSERT INTO `area` VALUES (530103, 530100, '盘龙区', 2, 0, 3); +INSERT INTO `area` VALUES (530111, 530100, '官渡区', 2, 0, 3); +INSERT INTO `area` VALUES (530112, 530100, '西山区', 2, 0, 3); +INSERT INTO `area` VALUES (530113, 530100, '东川区', 2, 0, 3); +INSERT INTO `area` VALUES (530114, 530100, '呈贡区', 2, 0, 3); +INSERT INTO `area` VALUES (530121, 530100, '呈贡县', 2, 0, 3); +INSERT INTO `area` VALUES (530122, 530100, '晋宁县', 2, 0, 3); +INSERT INTO `area` VALUES (530124, 530100, '富民县', 2, 0, 3); +INSERT INTO `area` VALUES (530125, 530100, '宜良县', 2, 0, 3); +INSERT INTO `area` VALUES (530126, 530100, '石林彝族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (530127, 530100, '嵩明县', 2, 0, 3); +INSERT INTO `area` VALUES (530128, 530100, '禄劝彝族苗族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (530129, 530100, '寻甸回族彝族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (530181, 530100, '安宁市', 2, 0, 3); +INSERT INTO `area` VALUES (530182, 530100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (530300, 530000, '曲靖市', 2, 0, 2); +INSERT INTO `area` VALUES (530302, 530300, '麒麟区', 2, 0, 3); +INSERT INTO `area` VALUES (530321, 530300, '马龙县', 2, 0, 3); +INSERT INTO `area` VALUES (530322, 530300, '陆良县', 2, 0, 3); +INSERT INTO `area` VALUES (530323, 530300, '师宗县', 2, 0, 3); +INSERT INTO `area` VALUES (530324, 530300, '罗平县', 2, 0, 3); +INSERT INTO `area` VALUES (530325, 530300, '富源县', 2, 0, 3); +INSERT INTO `area` VALUES (530326, 530300, '会泽县', 2, 0, 3); +INSERT INTO `area` VALUES (530328, 530300, '沾益县', 2, 0, 3); +INSERT INTO `area` VALUES (530381, 530300, '宣威市', 2, 0, 3); +INSERT INTO `area` VALUES (530382, 530300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (530400, 530000, '玉溪市', 2, 0, 2); +INSERT INTO `area` VALUES (530402, 530400, '红塔区', 2, 0, 3); +INSERT INTO `area` VALUES (530421, 530400, '江川县', 2, 0, 3); +INSERT INTO `area` VALUES (530422, 530400, '澄江县', 2, 0, 3); +INSERT INTO `area` VALUES (530423, 530400, '通海县', 2, 0, 3); +INSERT INTO `area` VALUES (530424, 530400, '华宁县', 2, 0, 3); +INSERT INTO `area` VALUES (530425, 530400, '易门县', 2, 0, 3); +INSERT INTO `area` VALUES (530426, 530400, '峨山彝族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (530427, 530400, '新平彝族傣族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (530428, 530400, '元江哈尼族彝族傣族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (530429, 530400, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (530500, 530000, '保山市', 2, 0, 2); +INSERT INTO `area` VALUES (530502, 530500, '隆阳区', 2, 0, 3); +INSERT INTO `area` VALUES (530521, 530500, '施甸县', 2, 0, 3); +INSERT INTO `area` VALUES (530522, 530500, '腾冲县', 2, 0, 3); +INSERT INTO `area` VALUES (530523, 530500, '龙陵县', 2, 0, 3); +INSERT INTO `area` VALUES (530524, 530500, '昌宁县', 2, 0, 3); +INSERT INTO `area` VALUES (530525, 530500, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (530600, 530000, '昭通市', 2, 0, 2); +INSERT INTO `area` VALUES (530602, 530600, '昭阳区', 2, 0, 3); +INSERT INTO `area` VALUES (530621, 530600, '鲁甸县', 2, 0, 3); +INSERT INTO `area` VALUES (530622, 530600, '巧家县', 2, 0, 3); +INSERT INTO `area` VALUES (530623, 530600, '盐津县', 2, 0, 3); +INSERT INTO `area` VALUES (530624, 530600, '大关县', 2, 0, 3); +INSERT INTO `area` VALUES (530625, 530600, '永善县', 2, 0, 3); +INSERT INTO `area` VALUES (530626, 530600, '绥江县', 2, 0, 3); +INSERT INTO `area` VALUES (530627, 530600, '镇雄县', 2, 0, 3); +INSERT INTO `area` VALUES (530628, 530600, '彝良县', 2, 0, 3); +INSERT INTO `area` VALUES (530629, 530600, '威信县', 2, 0, 3); +INSERT INTO `area` VALUES (530630, 530600, '水富县', 2, 0, 3); +INSERT INTO `area` VALUES (530631, 530600, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (530700, 530000, '丽江市', 2, 0, 2); +INSERT INTO `area` VALUES (530702, 530700, '古城区', 2, 0, 3); +INSERT INTO `area` VALUES (530721, 530700, '玉龙纳西族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (530722, 530700, '永胜县', 2, 0, 3); +INSERT INTO `area` VALUES (530723, 530700, '华坪县', 2, 0, 3); +INSERT INTO `area` VALUES (530724, 530700, '宁蒗彝族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (530725, 530700, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (530800, 530000, '普洱市', 2, 0, 2); +INSERT INTO `area` VALUES (530802, 530800, '思茅区', 2, 0, 3); +INSERT INTO `area` VALUES (530821, 530800, '宁洱哈尼族彝族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (530822, 530800, '墨江哈尼族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (530823, 530800, '景东彝族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (530824, 530800, '景谷傣族彝族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (530825, 530800, '镇沅彝族哈尼族拉祜族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (530826, 530800, '江城哈尼族彝族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (530827, 530800, '孟连傣族拉祜族佤族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (530828, 530800, '澜沧拉祜族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (530829, 530800, '西盟佤族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (530830, 530800, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (530900, 530000, '临沧市', 2, 0, 2); +INSERT INTO `area` VALUES (530902, 530900, '临翔区', 2, 0, 3); +INSERT INTO `area` VALUES (530921, 530900, '凤庆县', 2, 0, 3); +INSERT INTO `area` VALUES (530922, 530900, '云县', 2, 0, 3); +INSERT INTO `area` VALUES (530923, 530900, '永德县', 2, 0, 3); +INSERT INTO `area` VALUES (530924, 530900, '镇康县', 2, 0, 3); +INSERT INTO `area` VALUES (530925, 530900, '双江拉祜族佤族布朗族傣族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (530926, 530900, '耿马傣族佤族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (530927, 530900, '沧源佤族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (530928, 530900, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (532300, 530000, '楚雄彝族自治州', 2, 0, 2); +INSERT INTO `area` VALUES (532301, 532300, '楚雄市', 2, 0, 3); +INSERT INTO `area` VALUES (532322, 532300, '双柏县', 2, 0, 3); +INSERT INTO `area` VALUES (532323, 532300, '牟定县', 2, 0, 3); +INSERT INTO `area` VALUES (532324, 532300, '南华县', 2, 0, 3); +INSERT INTO `area` VALUES (532325, 532300, '姚安县', 2, 0, 3); +INSERT INTO `area` VALUES (532326, 532300, '大姚县', 2, 0, 3); +INSERT INTO `area` VALUES (532327, 532300, '永仁县', 2, 0, 3); +INSERT INTO `area` VALUES (532328, 532300, '元谋县', 2, 0, 3); +INSERT INTO `area` VALUES (532329, 532300, '武定县', 2, 0, 3); +INSERT INTO `area` VALUES (532331, 532300, '禄丰县', 2, 0, 3); +INSERT INTO `area` VALUES (532332, 532300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (532500, 530000, '红河哈尼族彝族自治州', 2, 0, 2); +INSERT INTO `area` VALUES (532501, 532500, '个旧市', 2, 0, 3); +INSERT INTO `area` VALUES (532502, 532500, '开远市', 2, 0, 3); +INSERT INTO `area` VALUES (532503, 532500, '蒙自市', 2, 0, 3); +INSERT INTO `area` VALUES (532504, 532500, '弥勒市', 2, 0, 3); +INSERT INTO `area` VALUES (532522, 532500, '蒙自县', 2, 0, 3); +INSERT INTO `area` VALUES (532523, 532500, '屏边苗族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (532524, 532500, '建水县', 2, 0, 3); +INSERT INTO `area` VALUES (532525, 532500, '石屏县', 2, 0, 3); +INSERT INTO `area` VALUES (532526, 532500, '弥勒县', 2, 0, 3); +INSERT INTO `area` VALUES (532527, 532500, '泸西县', 2, 0, 3); +INSERT INTO `area` VALUES (532528, 532500, '元阳县', 2, 0, 3); +INSERT INTO `area` VALUES (532529, 532500, '红河县', 2, 0, 3); +INSERT INTO `area` VALUES (532530, 532500, '金平苗族瑶族傣族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (532531, 532500, '绿春县', 2, 0, 3); +INSERT INTO `area` VALUES (532532, 532500, '河口瑶族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (532533, 532500, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (532600, 530000, '文山壮族苗族自治州', 2, 0, 2); +INSERT INTO `area` VALUES (532601, 532600, '文山市', 2, 0, 3); +INSERT INTO `area` VALUES (532621, 532600, '文山县', 2, 0, 3); +INSERT INTO `area` VALUES (532622, 532600, '砚山县', 2, 0, 3); +INSERT INTO `area` VALUES (532623, 532600, '西畴县', 2, 0, 3); +INSERT INTO `area` VALUES (532624, 532600, '麻栗坡县', 2, 0, 3); +INSERT INTO `area` VALUES (532625, 532600, '马关县', 2, 0, 3); +INSERT INTO `area` VALUES (532626, 532600, '丘北县', 2, 0, 3); +INSERT INTO `area` VALUES (532627, 532600, '广南县', 2, 0, 3); +INSERT INTO `area` VALUES (532628, 532600, '富宁县', 2, 0, 3); +INSERT INTO `area` VALUES (532629, 532600, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (532800, 530000, '西双版纳傣族自治州', 2, 0, 2); +INSERT INTO `area` VALUES (532801, 532800, '景洪市', 2, 0, 3); +INSERT INTO `area` VALUES (532822, 532800, '勐海县', 2, 0, 3); +INSERT INTO `area` VALUES (532823, 532800, '勐腊县', 2, 0, 3); +INSERT INTO `area` VALUES (532824, 532800, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (532900, 530000, '大理白族自治州', 2, 0, 2); +INSERT INTO `area` VALUES (532901, 532900, '大理市', 2, 0, 3); +INSERT INTO `area` VALUES (532922, 532900, '漾濞彝族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (532923, 532900, '祥云县', 2, 0, 3); +INSERT INTO `area` VALUES (532924, 532900, '宾川县', 2, 0, 3); +INSERT INTO `area` VALUES (532925, 532900, '弥渡县', 2, 0, 3); +INSERT INTO `area` VALUES (532926, 532900, '南涧彝族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (532927, 532900, '巍山彝族回族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (532928, 532900, '永平县', 2, 0, 3); +INSERT INTO `area` VALUES (532929, 532900, '云龙县', 2, 0, 3); +INSERT INTO `area` VALUES (532930, 532900, '洱源县', 2, 0, 3); +INSERT INTO `area` VALUES (532931, 532900, '剑川县', 2, 0, 3); +INSERT INTO `area` VALUES (532932, 532900, '鹤庆县', 2, 0, 3); +INSERT INTO `area` VALUES (532933, 532900, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (533100, 530000, '德宏傣族景颇族自治州', 2, 0, 2); +INSERT INTO `area` VALUES (533102, 533100, '瑞丽市', 2, 0, 3); +INSERT INTO `area` VALUES (533103, 533100, '芒市', 2, 0, 3); +INSERT INTO `area` VALUES (533122, 533100, '梁河县', 2, 0, 3); +INSERT INTO `area` VALUES (533123, 533100, '盈江县', 2, 0, 3); +INSERT INTO `area` VALUES (533124, 533100, '陇川县', 2, 0, 3); +INSERT INTO `area` VALUES (533125, 533100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (533300, 530000, '怒江傈僳族自治州', 2, 0, 2); +INSERT INTO `area` VALUES (533321, 533300, '泸水县', 2, 0, 3); +INSERT INTO `area` VALUES (533323, 533300, '福贡县', 2, 0, 3); +INSERT INTO `area` VALUES (533324, 533300, '贡山独龙族怒族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (533325, 533300, '兰坪白族普米族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (533326, 533300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (533400, 530000, '迪庆藏族自治州', 2, 0, 2); +INSERT INTO `area` VALUES (533401, 533400, '香格里拉市', 2, 0, 3); +INSERT INTO `area` VALUES (533421, 533400, '香格里拉县', 2, 0, 3); +INSERT INTO `area` VALUES (533422, 533400, '德钦县', 2, 0, 3); +INSERT INTO `area` VALUES (533423, 533400, '维西傈僳族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (533424, 533400, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (540000, 0, '西藏自治区', 2, 0, 1); +INSERT INTO `area` VALUES (540100, 540000, '拉萨市', 2, 0, 2); +INSERT INTO `area` VALUES (540102, 540100, '城关区', 2, 0, 3); +INSERT INTO `area` VALUES (540121, 540100, '林周县', 2, 0, 3); +INSERT INTO `area` VALUES (540122, 540100, '当雄县', 2, 0, 3); +INSERT INTO `area` VALUES (540123, 540100, '尼木县', 2, 0, 3); +INSERT INTO `area` VALUES (540124, 540100, '曲水县', 2, 0, 3); +INSERT INTO `area` VALUES (540125, 540100, '堆龙德庆县', 2, 0, 3); +INSERT INTO `area` VALUES (540126, 540100, '达孜县', 2, 0, 3); +INSERT INTO `area` VALUES (540127, 540100, '墨竹工卡县', 2, 0, 3); +INSERT INTO `area` VALUES (540128, 540100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (540200, 540000, '日喀则市', 2, 0, 2); +INSERT INTO `area` VALUES (540202, 540200, '桑珠孜区', 2, 0, 3); +INSERT INTO `area` VALUES (540221, 540200, '南木林县', 2, 0, 3); +INSERT INTO `area` VALUES (540222, 540200, '江孜县', 2, 0, 3); +INSERT INTO `area` VALUES (540223, 540200, '定日县', 2, 0, 3); +INSERT INTO `area` VALUES (540224, 540200, '萨迦县', 2, 0, 3); +INSERT INTO `area` VALUES (540225, 540200, '拉孜县', 2, 0, 3); +INSERT INTO `area` VALUES (540226, 540200, '昂仁县', 2, 0, 3); +INSERT INTO `area` VALUES (540227, 540200, '谢通门县', 2, 0, 3); +INSERT INTO `area` VALUES (540228, 540200, '白朗县', 2, 0, 3); +INSERT INTO `area` VALUES (540229, 540200, '仁布县', 2, 0, 3); +INSERT INTO `area` VALUES (540230, 540200, '康马县', 2, 0, 3); +INSERT INTO `area` VALUES (540231, 540200, '定结县', 2, 0, 3); +INSERT INTO `area` VALUES (540232, 540200, '仲巴县', 2, 0, 3); +INSERT INTO `area` VALUES (540233, 540200, '亚东县', 2, 0, 3); +INSERT INTO `area` VALUES (540234, 540200, '吉隆县', 2, 0, 3); +INSERT INTO `area` VALUES (540235, 540200, '聂拉木县', 2, 0, 3); +INSERT INTO `area` VALUES (540236, 540200, '萨嘎县', 2, 0, 3); +INSERT INTO `area` VALUES (540237, 540200, '岗巴县', 2, 0, 3); +INSERT INTO `area` VALUES (540300, 540000, '昌都市', 2, 0, 2); +INSERT INTO `area` VALUES (540302, 540300, '卡若区', 2, 0, 3); +INSERT INTO `area` VALUES (540321, 540300, '江达县', 2, 0, 3); +INSERT INTO `area` VALUES (540322, 540300, '贡觉县', 2, 0, 3); +INSERT INTO `area` VALUES (540323, 540300, '类乌齐县', 2, 0, 3); +INSERT INTO `area` VALUES (540324, 540300, '丁青县', 2, 0, 3); +INSERT INTO `area` VALUES (540325, 540300, '察雅县', 2, 0, 3); +INSERT INTO `area` VALUES (540326, 540300, '八宿县', 2, 0, 3); +INSERT INTO `area` VALUES (540327, 540300, '左贡县', 2, 0, 3); +INSERT INTO `area` VALUES (540328, 540300, '芒康县', 2, 0, 3); +INSERT INTO `area` VALUES (540329, 540300, '洛隆县', 2, 0, 3); +INSERT INTO `area` VALUES (540330, 540300, '边坝县', 2, 0, 3); +INSERT INTO `area` VALUES (540400, 540000, '林芝市', 2, 0, 2); +INSERT INTO `area` VALUES (540402, 540400, '巴宜区', 2, 0, 3); +INSERT INTO `area` VALUES (540421, 540400, '工布江达县', 2, 0, 3); +INSERT INTO `area` VALUES (540422, 540400, '米林县', 2, 0, 3); +INSERT INTO `area` VALUES (540423, 540400, '墨脱县', 2, 0, 3); +INSERT INTO `area` VALUES (540424, 540400, '波密县', 2, 0, 3); +INSERT INTO `area` VALUES (540425, 540400, '察隅县', 2, 0, 3); +INSERT INTO `area` VALUES (540426, 540400, '朗县', 2, 0, 3); +INSERT INTO `area` VALUES (542100, 540000, '昌都地区', 2, 0, 2); +INSERT INTO `area` VALUES (542121, 542100, '昌都县', 2, 0, 3); +INSERT INTO `area` VALUES (542122, 542100, '江达县', 2, 0, 3); +INSERT INTO `area` VALUES (542123, 542100, '贡觉县', 2, 0, 3); +INSERT INTO `area` VALUES (542124, 542100, '类乌齐县', 2, 0, 3); +INSERT INTO `area` VALUES (542125, 542100, '丁青县', 2, 0, 3); +INSERT INTO `area` VALUES (542126, 542100, '察雅县', 2, 0, 3); +INSERT INTO `area` VALUES (542127, 542100, '八宿县', 2, 0, 3); +INSERT INTO `area` VALUES (542128, 542100, '左贡县', 2, 0, 3); +INSERT INTO `area` VALUES (542129, 542100, '芒康县', 2, 0, 3); +INSERT INTO `area` VALUES (542132, 542100, '洛隆县', 2, 0, 3); +INSERT INTO `area` VALUES (542133, 542100, '边坝县', 2, 0, 3); +INSERT INTO `area` VALUES (542134, 542100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (542200, 540000, '山南地区', 2, 0, 2); +INSERT INTO `area` VALUES (542221, 542200, '乃东县', 2, 0, 3); +INSERT INTO `area` VALUES (542222, 542200, '扎囊县', 2, 0, 3); +INSERT INTO `area` VALUES (542223, 542200, '贡嘎县', 2, 0, 3); +INSERT INTO `area` VALUES (542224, 542200, '桑日县', 2, 0, 3); +INSERT INTO `area` VALUES (542225, 542200, '琼结县', 2, 0, 3); +INSERT INTO `area` VALUES (542226, 542200, '曲松县', 2, 0, 3); +INSERT INTO `area` VALUES (542227, 542200, '措美县', 2, 0, 3); +INSERT INTO `area` VALUES (542228, 542200, '洛扎县', 2, 0, 3); +INSERT INTO `area` VALUES (542229, 542200, '加查县', 2, 0, 3); +INSERT INTO `area` VALUES (542231, 542200, '隆子县', 2, 0, 3); +INSERT INTO `area` VALUES (542232, 542200, '错那县', 2, 0, 3); +INSERT INTO `area` VALUES (542233, 542200, '浪卡子县', 2, 0, 3); +INSERT INTO `area` VALUES (542234, 542200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (542300, 540000, '日喀则地区', 2, 0, 2); +INSERT INTO `area` VALUES (542301, 542300, '日喀则市', 2, 0, 3); +INSERT INTO `area` VALUES (542322, 542300, '南木林县', 2, 0, 3); +INSERT INTO `area` VALUES (542323, 542300, '江孜县', 2, 0, 3); +INSERT INTO `area` VALUES (542324, 542300, '定日县', 2, 0, 3); +INSERT INTO `area` VALUES (542325, 542300, '萨迦县', 2, 0, 3); +INSERT INTO `area` VALUES (542326, 542300, '拉孜县', 2, 0, 3); +INSERT INTO `area` VALUES (542327, 542300, '昂仁县', 2, 0, 3); +INSERT INTO `area` VALUES (542328, 542300, '谢通门县', 2, 0, 3); +INSERT INTO `area` VALUES (542329, 542300, '白朗县', 2, 0, 3); +INSERT INTO `area` VALUES (542330, 542300, '仁布县', 2, 0, 3); +INSERT INTO `area` VALUES (542331, 542300, '康马县', 2, 0, 3); +INSERT INTO `area` VALUES (542332, 542300, '定结县', 2, 0, 3); +INSERT INTO `area` VALUES (542333, 542300, '仲巴县', 2, 0, 3); +INSERT INTO `area` VALUES (542334, 542300, '亚东县', 2, 0, 3); +INSERT INTO `area` VALUES (542335, 542300, '吉隆县', 2, 0, 3); +INSERT INTO `area` VALUES (542336, 542300, '聂拉木县', 2, 0, 3); +INSERT INTO `area` VALUES (542337, 542300, '萨嘎县', 2, 0, 3); +INSERT INTO `area` VALUES (542338, 542300, '岗巴县', 2, 0, 3); +INSERT INTO `area` VALUES (542339, 542300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (542400, 540000, '那曲地区', 2, 0, 2); +INSERT INTO `area` VALUES (542421, 542400, '那曲县', 2, 0, 3); +INSERT INTO `area` VALUES (542422, 542400, '嘉黎县', 2, 0, 3); +INSERT INTO `area` VALUES (542423, 542400, '比如县', 2, 0, 3); +INSERT INTO `area` VALUES (542424, 542400, '聂荣县', 2, 0, 3); +INSERT INTO `area` VALUES (542425, 542400, '安多县', 2, 0, 3); +INSERT INTO `area` VALUES (542426, 542400, '申扎县', 2, 0, 3); +INSERT INTO `area` VALUES (542427, 542400, '索县', 2, 0, 3); +INSERT INTO `area` VALUES (542428, 542400, '班戈县', 2, 0, 3); +INSERT INTO `area` VALUES (542429, 542400, '巴青县', 2, 0, 3); +INSERT INTO `area` VALUES (542430, 542400, '尼玛县', 2, 0, 3); +INSERT INTO `area` VALUES (542431, 542400, '双湖县', 2, 0, 3); +INSERT INTO `area` VALUES (542500, 540000, '阿里地区', 2, 0, 2); +INSERT INTO `area` VALUES (542521, 542500, '普兰县', 2, 0, 3); +INSERT INTO `area` VALUES (542522, 542500, '札达县', 2, 0, 3); +INSERT INTO `area` VALUES (542523, 542500, '噶尔县', 2, 0, 3); +INSERT INTO `area` VALUES (542524, 542500, '日土县', 2, 0, 3); +INSERT INTO `area` VALUES (542525, 542500, '革吉县', 2, 0, 3); +INSERT INTO `area` VALUES (542526, 542500, '改则县', 2, 0, 3); +INSERT INTO `area` VALUES (542527, 542500, '措勤县', 2, 0, 3); +INSERT INTO `area` VALUES (542528, 542500, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (542600, 540000, '林芝地区', 2, 0, 2); +INSERT INTO `area` VALUES (542621, 542600, '林芝县', 2, 0, 3); +INSERT INTO `area` VALUES (542622, 542600, '工布江达县', 2, 0, 3); +INSERT INTO `area` VALUES (542623, 542600, '米林县', 2, 0, 3); +INSERT INTO `area` VALUES (542624, 542600, '墨脱县', 2, 0, 3); +INSERT INTO `area` VALUES (542625, 542600, '波密县', 2, 0, 3); +INSERT INTO `area` VALUES (542626, 542600, '察隅县', 2, 0, 3); +INSERT INTO `area` VALUES (542627, 542600, '朗县', 2, 0, 3); +INSERT INTO `area` VALUES (542628, 542600, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (610000, 0, '陕西省', 2, 0, 1); +INSERT INTO `area` VALUES (610100, 610000, '西安市', 2, 0, 2); +INSERT INTO `area` VALUES (610102, 610100, '新城区', 2, 0, 3); +INSERT INTO `area` VALUES (610103, 610100, '碑林区', 2, 0, 3); +INSERT INTO `area` VALUES (610104, 610100, '莲湖区', 2, 0, 3); +INSERT INTO `area` VALUES (610111, 610100, '灞桥区', 2, 0, 3); +INSERT INTO `area` VALUES (610112, 610100, '未央区', 2, 0, 3); +INSERT INTO `area` VALUES (610113, 610100, '雁塔区', 2, 0, 3); +INSERT INTO `area` VALUES (610114, 610100, '阎良区', 2, 0, 3); +INSERT INTO `area` VALUES (610115, 610100, '临潼区', 2, 0, 3); +INSERT INTO `area` VALUES (610116, 610100, '长安区', 2, 0, 3); +INSERT INTO `area` VALUES (610117, 610100, '高陵区', 2, 0, 3); +INSERT INTO `area` VALUES (610122, 610100, '蓝田县', 2, 0, 3); +INSERT INTO `area` VALUES (610124, 610100, '周至县', 2, 0, 3); +INSERT INTO `area` VALUES (610125, 610100, '户县', 2, 0, 3); +INSERT INTO `area` VALUES (610126, 610100, '高陵县', 2, 0, 3); +INSERT INTO `area` VALUES (610127, 610100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (610200, 610000, '铜川市', 2, 0, 2); +INSERT INTO `area` VALUES (610202, 610200, '王益区', 2, 0, 3); +INSERT INTO `area` VALUES (610203, 610200, '印台区', 2, 0, 3); +INSERT INTO `area` VALUES (610204, 610200, '耀州区', 2, 0, 3); +INSERT INTO `area` VALUES (610222, 610200, '宜君县', 2, 0, 3); +INSERT INTO `area` VALUES (610223, 610200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (610300, 610000, '宝鸡市', 2, 0, 2); +INSERT INTO `area` VALUES (610302, 610300, '渭滨区', 2, 0, 3); +INSERT INTO `area` VALUES (610303, 610300, '金台区', 2, 0, 3); +INSERT INTO `area` VALUES (610304, 610300, '陈仓区', 2, 0, 3); +INSERT INTO `area` VALUES (610322, 610300, '凤翔县', 2, 0, 3); +INSERT INTO `area` VALUES (610323, 610300, '岐山县', 2, 0, 3); +INSERT INTO `area` VALUES (610324, 610300, '扶风县', 2, 0, 3); +INSERT INTO `area` VALUES (610326, 610300, '眉县', 2, 0, 3); +INSERT INTO `area` VALUES (610327, 610300, '陇县', 2, 0, 3); +INSERT INTO `area` VALUES (610328, 610300, '千阳县', 2, 0, 3); +INSERT INTO `area` VALUES (610329, 610300, '麟游县', 2, 0, 3); +INSERT INTO `area` VALUES (610330, 610300, '凤县', 2, 0, 3); +INSERT INTO `area` VALUES (610331, 610300, '太白县', 2, 0, 3); +INSERT INTO `area` VALUES (610332, 610300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (610400, 610000, '咸阳市', 2, 0, 2); +INSERT INTO `area` VALUES (610402, 610400, '秦都区', 2, 0, 3); +INSERT INTO `area` VALUES (610403, 610400, '杨陵区', 2, 0, 3); +INSERT INTO `area` VALUES (610404, 610400, '渭城区', 2, 0, 3); +INSERT INTO `area` VALUES (610422, 610400, '三原县', 2, 0, 3); +INSERT INTO `area` VALUES (610423, 610400, '泾阳县', 2, 0, 3); +INSERT INTO `area` VALUES (610424, 610400, '乾县', 2, 0, 3); +INSERT INTO `area` VALUES (610425, 610400, '礼泉县', 2, 0, 3); +INSERT INTO `area` VALUES (610426, 610400, '永寿县', 2, 0, 3); +INSERT INTO `area` VALUES (610427, 610400, '彬县', 2, 0, 3); +INSERT INTO `area` VALUES (610428, 610400, '长武县', 2, 0, 3); +INSERT INTO `area` VALUES (610429, 610400, '旬邑县', 2, 0, 3); +INSERT INTO `area` VALUES (610430, 610400, '淳化县', 2, 0, 3); +INSERT INTO `area` VALUES (610431, 610400, '武功县', 2, 0, 3); +INSERT INTO `area` VALUES (610481, 610400, '兴平市', 2, 0, 3); +INSERT INTO `area` VALUES (610482, 610400, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (610500, 610000, '渭南市', 2, 0, 2); +INSERT INTO `area` VALUES (610502, 610500, '临渭区', 2, 0, 3); +INSERT INTO `area` VALUES (610521, 610500, '华县', 2, 0, 3); +INSERT INTO `area` VALUES (610522, 610500, '潼关县', 2, 0, 3); +INSERT INTO `area` VALUES (610523, 610500, '大荔县', 2, 0, 3); +INSERT INTO `area` VALUES (610524, 610500, '合阳县', 2, 0, 3); +INSERT INTO `area` VALUES (610525, 610500, '澄城县', 2, 0, 3); +INSERT INTO `area` VALUES (610526, 610500, '蒲城县', 2, 0, 3); +INSERT INTO `area` VALUES (610527, 610500, '白水县', 2, 0, 3); +INSERT INTO `area` VALUES (610528, 610500, '富平县', 2, 0, 3); +INSERT INTO `area` VALUES (610581, 610500, '韩城市', 2, 0, 3); +INSERT INTO `area` VALUES (610582, 610500, '华阴市', 2, 0, 3); +INSERT INTO `area` VALUES (610583, 610500, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (610600, 610000, '延安市', 2, 0, 2); +INSERT INTO `area` VALUES (610602, 610600, '宝塔区', 2, 0, 3); +INSERT INTO `area` VALUES (610621, 610600, '延长县', 2, 0, 3); +INSERT INTO `area` VALUES (610622, 610600, '延川县', 2, 0, 3); +INSERT INTO `area` VALUES (610623, 610600, '子长县', 2, 0, 3); +INSERT INTO `area` VALUES (610624, 610600, '安塞县', 2, 0, 3); +INSERT INTO `area` VALUES (610625, 610600, '志丹县', 2, 0, 3); +INSERT INTO `area` VALUES (610626, 610600, '吴起县', 2, 0, 3); +INSERT INTO `area` VALUES (610627, 610600, '甘泉县', 2, 0, 3); +INSERT INTO `area` VALUES (610628, 610600, '富县', 2, 0, 3); +INSERT INTO `area` VALUES (610629, 610600, '洛川县', 2, 0, 3); +INSERT INTO `area` VALUES (610630, 610600, '宜川县', 2, 0, 3); +INSERT INTO `area` VALUES (610631, 610600, '黄龙县', 2, 0, 3); +INSERT INTO `area` VALUES (610632, 610600, '黄陵县', 2, 0, 3); +INSERT INTO `area` VALUES (610633, 610600, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (610700, 610000, '汉中市', 2, 0, 2); +INSERT INTO `area` VALUES (610702, 610700, '汉台区', 2, 0, 3); +INSERT INTO `area` VALUES (610721, 610700, '南郑县', 2, 0, 3); +INSERT INTO `area` VALUES (610722, 610700, '城固县', 2, 0, 3); +INSERT INTO `area` VALUES (610723, 610700, '洋县', 2, 0, 3); +INSERT INTO `area` VALUES (610724, 610700, '西乡县', 2, 0, 3); +INSERT INTO `area` VALUES (610725, 610700, '勉县', 2, 0, 3); +INSERT INTO `area` VALUES (610726, 610700, '宁强县', 2, 0, 3); +INSERT INTO `area` VALUES (610727, 610700, '略阳县', 2, 0, 3); +INSERT INTO `area` VALUES (610728, 610700, '镇巴县', 2, 0, 3); +INSERT INTO `area` VALUES (610729, 610700, '留坝县', 2, 0, 3); +INSERT INTO `area` VALUES (610730, 610700, '佛坪县', 2, 0, 3); +INSERT INTO `area` VALUES (610731, 610700, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (610800, 610000, '榆林市', 2, 0, 2); +INSERT INTO `area` VALUES (610802, 610800, '榆阳区', 2, 0, 3); +INSERT INTO `area` VALUES (610821, 610800, '神木县', 2, 0, 3); +INSERT INTO `area` VALUES (610822, 610800, '府谷县', 2, 0, 3); +INSERT INTO `area` VALUES (610823, 610800, '横山县', 2, 0, 3); +INSERT INTO `area` VALUES (610824, 610800, '靖边县', 2, 0, 3); +INSERT INTO `area` VALUES (610825, 610800, '定边县', 2, 0, 3); +INSERT INTO `area` VALUES (610826, 610800, '绥德县', 2, 0, 3); +INSERT INTO `area` VALUES (610827, 610800, '米脂县', 2, 0, 3); +INSERT INTO `area` VALUES (610828, 610800, '佳县', 2, 0, 3); +INSERT INTO `area` VALUES (610829, 610800, '吴堡县', 2, 0, 3); +INSERT INTO `area` VALUES (610830, 610800, '清涧县', 2, 0, 3); +INSERT INTO `area` VALUES (610831, 610800, '子洲县', 2, 0, 3); +INSERT INTO `area` VALUES (610832, 610800, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (610900, 610000, '安康市', 2, 0, 2); +INSERT INTO `area` VALUES (610902, 610900, '汉滨区', 2, 0, 3); +INSERT INTO `area` VALUES (610921, 610900, '汉阴县', 2, 0, 3); +INSERT INTO `area` VALUES (610922, 610900, '石泉县', 2, 0, 3); +INSERT INTO `area` VALUES (610923, 610900, '宁陕县', 2, 0, 3); +INSERT INTO `area` VALUES (610924, 610900, '紫阳县', 2, 0, 3); +INSERT INTO `area` VALUES (610925, 610900, '岚皋县', 2, 0, 3); +INSERT INTO `area` VALUES (610926, 610900, '平利县', 2, 0, 3); +INSERT INTO `area` VALUES (610927, 610900, '镇坪县', 2, 0, 3); +INSERT INTO `area` VALUES (610928, 610900, '旬阳县', 2, 0, 3); +INSERT INTO `area` VALUES (610929, 610900, '白河县', 2, 0, 3); +INSERT INTO `area` VALUES (610930, 610900, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (611000, 610000, '商洛市', 2, 0, 2); +INSERT INTO `area` VALUES (611002, 611000, '商州区', 2, 0, 3); +INSERT INTO `area` VALUES (611021, 611000, '洛南县', 2, 0, 3); +INSERT INTO `area` VALUES (611022, 611000, '丹凤县', 2, 0, 3); +INSERT INTO `area` VALUES (611023, 611000, '商南县', 2, 0, 3); +INSERT INTO `area` VALUES (611024, 611000, '山阳县', 2, 0, 3); +INSERT INTO `area` VALUES (611025, 611000, '镇安县', 2, 0, 3); +INSERT INTO `area` VALUES (611026, 611000, '柞水县', 2, 0, 3); +INSERT INTO `area` VALUES (611027, 611000, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (620000, 0, '甘肃省', 2, 0, 1); +INSERT INTO `area` VALUES (620100, 620000, '兰州市', 2, 0, 2); +INSERT INTO `area` VALUES (620102, 620100, '城关区', 2, 0, 3); +INSERT INTO `area` VALUES (620103, 620100, '七里河区', 2, 0, 3); +INSERT INTO `area` VALUES (620104, 620100, '西固区', 2, 0, 3); +INSERT INTO `area` VALUES (620105, 620100, '安宁区', 2, 0, 3); +INSERT INTO `area` VALUES (620111, 620100, '红古区', 2, 0, 3); +INSERT INTO `area` VALUES (620121, 620100, '永登县', 2, 0, 3); +INSERT INTO `area` VALUES (620122, 620100, '皋兰县', 2, 0, 3); +INSERT INTO `area` VALUES (620123, 620100, '榆中县', 2, 0, 3); +INSERT INTO `area` VALUES (620124, 620100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (620200, 620000, '嘉峪关市', 2, 0, 2); +INSERT INTO `area` VALUES (620300, 620000, '金昌市', 2, 0, 2); +INSERT INTO `area` VALUES (620302, 620300, '金川区', 2, 0, 3); +INSERT INTO `area` VALUES (620321, 620300, '永昌县', 2, 0, 3); +INSERT INTO `area` VALUES (620322, 620300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (620400, 620000, '白银市', 2, 0, 2); +INSERT INTO `area` VALUES (620402, 620400, '白银区', 2, 0, 3); +INSERT INTO `area` VALUES (620403, 620400, '平川区', 2, 0, 3); +INSERT INTO `area` VALUES (620421, 620400, '靖远县', 2, 0, 3); +INSERT INTO `area` VALUES (620422, 620400, '会宁县', 2, 0, 3); +INSERT INTO `area` VALUES (620423, 620400, '景泰县', 2, 0, 3); +INSERT INTO `area` VALUES (620424, 620400, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (620500, 620000, '天水市', 2, 0, 2); +INSERT INTO `area` VALUES (620502, 620500, '秦州区', 2, 0, 3); +INSERT INTO `area` VALUES (620503, 620500, '麦积区', 2, 0, 3); +INSERT INTO `area` VALUES (620521, 620500, '清水县', 2, 0, 3); +INSERT INTO `area` VALUES (620522, 620500, '秦安县', 2, 0, 3); +INSERT INTO `area` VALUES (620523, 620500, '甘谷县', 2, 0, 3); +INSERT INTO `area` VALUES (620524, 620500, '武山县', 2, 0, 3); +INSERT INTO `area` VALUES (620525, 620500, '张家川回族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (620526, 620500, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (620600, 620000, '武威市', 2, 0, 2); +INSERT INTO `area` VALUES (620602, 620600, '凉州区', 2, 0, 3); +INSERT INTO `area` VALUES (620621, 620600, '民勤县', 2, 0, 3); +INSERT INTO `area` VALUES (620622, 620600, '古浪县', 2, 0, 3); +INSERT INTO `area` VALUES (620623, 620600, '天祝藏族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (620624, 620600, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (620700, 620000, '张掖市', 2, 0, 2); +INSERT INTO `area` VALUES (620702, 620700, '甘州区', 2, 0, 3); +INSERT INTO `area` VALUES (620721, 620700, '肃南裕固族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (620722, 620700, '民乐县', 2, 0, 3); +INSERT INTO `area` VALUES (620723, 620700, '临泽县', 2, 0, 3); +INSERT INTO `area` VALUES (620724, 620700, '高台县', 2, 0, 3); +INSERT INTO `area` VALUES (620725, 620700, '山丹县', 2, 0, 3); +INSERT INTO `area` VALUES (620726, 620700, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (620800, 620000, '平凉市', 2, 0, 2); +INSERT INTO `area` VALUES (620802, 620800, '崆峒区', 2, 0, 3); +INSERT INTO `area` VALUES (620821, 620800, '泾川县', 2, 0, 3); +INSERT INTO `area` VALUES (620822, 620800, '灵台县', 2, 0, 3); +INSERT INTO `area` VALUES (620823, 620800, '崇信县', 2, 0, 3); +INSERT INTO `area` VALUES (620824, 620800, '华亭县', 2, 0, 3); +INSERT INTO `area` VALUES (620825, 620800, '庄浪县', 2, 0, 3); +INSERT INTO `area` VALUES (620826, 620800, '静宁县', 2, 0, 3); +INSERT INTO `area` VALUES (620827, 620800, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (620900, 620000, '酒泉市', 2, 0, 2); +INSERT INTO `area` VALUES (620902, 620900, '肃州区', 2, 0, 3); +INSERT INTO `area` VALUES (620921, 620900, '金塔县', 2, 0, 3); +INSERT INTO `area` VALUES (620922, 620900, '瓜州县', 2, 0, 3); +INSERT INTO `area` VALUES (620923, 620900, '肃北蒙古族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (620924, 620900, '阿克塞哈萨克族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (620981, 620900, '玉门市', 2, 0, 3); +INSERT INTO `area` VALUES (620982, 620900, '敦煌市', 2, 0, 3); +INSERT INTO `area` VALUES (620983, 620900, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (621000, 620000, '庆阳市', 2, 0, 2); +INSERT INTO `area` VALUES (621002, 621000, '西峰区', 2, 0, 3); +INSERT INTO `area` VALUES (621021, 621000, '庆城县', 2, 0, 3); +INSERT INTO `area` VALUES (621022, 621000, '环县', 2, 0, 3); +INSERT INTO `area` VALUES (621023, 621000, '华池县', 2, 0, 3); +INSERT INTO `area` VALUES (621024, 621000, '合水县', 2, 0, 3); +INSERT INTO `area` VALUES (621025, 621000, '正宁县', 2, 0, 3); +INSERT INTO `area` VALUES (621026, 621000, '宁县', 2, 0, 3); +INSERT INTO `area` VALUES (621027, 621000, '镇原县', 2, 0, 3); +INSERT INTO `area` VALUES (621028, 621000, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (621100, 620000, '定西市', 2, 0, 2); +INSERT INTO `area` VALUES (621102, 621100, '安定区', 2, 0, 3); +INSERT INTO `area` VALUES (621121, 621100, '通渭县', 2, 0, 3); +INSERT INTO `area` VALUES (621122, 621100, '陇西县', 2, 0, 3); +INSERT INTO `area` VALUES (621123, 621100, '渭源县', 2, 0, 3); +INSERT INTO `area` VALUES (621124, 621100, '临洮县', 2, 0, 3); +INSERT INTO `area` VALUES (621125, 621100, '漳县', 2, 0, 3); +INSERT INTO `area` VALUES (621126, 621100, '岷县', 2, 0, 3); +INSERT INTO `area` VALUES (621127, 621100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (621200, 620000, '陇南市', 2, 0, 2); +INSERT INTO `area` VALUES (621202, 621200, '武都区', 2, 0, 3); +INSERT INTO `area` VALUES (621221, 621200, '成县', 2, 0, 3); +INSERT INTO `area` VALUES (621222, 621200, '文县', 2, 0, 3); +INSERT INTO `area` VALUES (621223, 621200, '宕昌县', 2, 0, 3); +INSERT INTO `area` VALUES (621224, 621200, '康县', 2, 0, 3); +INSERT INTO `area` VALUES (621225, 621200, '西和县', 2, 0, 3); +INSERT INTO `area` VALUES (621226, 621200, '礼县', 2, 0, 3); +INSERT INTO `area` VALUES (621227, 621200, '徽县', 2, 0, 3); +INSERT INTO `area` VALUES (621228, 621200, '两当县', 2, 0, 3); +INSERT INTO `area` VALUES (621229, 621200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (622900, 620000, '临夏回族自治州', 2, 0, 2); +INSERT INTO `area` VALUES (622901, 622900, '临夏市', 2, 0, 3); +INSERT INTO `area` VALUES (622921, 622900, '临夏县', 2, 0, 3); +INSERT INTO `area` VALUES (622922, 622900, '康乐县', 2, 0, 3); +INSERT INTO `area` VALUES (622923, 622900, '永靖县', 2, 0, 3); +INSERT INTO `area` VALUES (622924, 622900, '广河县', 2, 0, 3); +INSERT INTO `area` VALUES (622925, 622900, '和政县', 2, 0, 3); +INSERT INTO `area` VALUES (622926, 622900, '东乡族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (622927, 622900, '积石山保安族东乡族撒拉族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (622928, 622900, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (623000, 620000, '甘南藏族自治州', 2, 0, 2); +INSERT INTO `area` VALUES (623001, 623000, '合作市', 2, 0, 3); +INSERT INTO `area` VALUES (623021, 623000, '临潭县', 2, 0, 3); +INSERT INTO `area` VALUES (623022, 623000, '卓尼县', 2, 0, 3); +INSERT INTO `area` VALUES (623023, 623000, '舟曲县', 2, 0, 3); +INSERT INTO `area` VALUES (623024, 623000, '迭部县', 2, 0, 3); +INSERT INTO `area` VALUES (623025, 623000, '玛曲县', 2, 0, 3); +INSERT INTO `area` VALUES (623026, 623000, '碌曲县', 2, 0, 3); +INSERT INTO `area` VALUES (623027, 623000, '夏河县', 2, 0, 3); +INSERT INTO `area` VALUES (623028, 623000, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (630000, 0, '青海省', 2, 0, 1); +INSERT INTO `area` VALUES (630100, 630000, '西宁市', 2, 0, 2); +INSERT INTO `area` VALUES (630102, 630100, '城东区', 2, 0, 3); +INSERT INTO `area` VALUES (630103, 630100, '城中区', 2, 0, 3); +INSERT INTO `area` VALUES (630104, 630100, '城西区', 2, 0, 3); +INSERT INTO `area` VALUES (630105, 630100, '城北区', 2, 0, 3); +INSERT INTO `area` VALUES (630121, 630100, '大通回族土族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (630122, 630100, '湟中县', 2, 0, 3); +INSERT INTO `area` VALUES (630123, 630100, '湟源县', 2, 0, 3); +INSERT INTO `area` VALUES (630124, 630100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (630200, 630000, '海东市', 2, 0, 2); +INSERT INTO `area` VALUES (630202, 630200, '乐都区', 2, 0, 3); +INSERT INTO `area` VALUES (630203, 630200, '平安区', 2, 0, 3); +INSERT INTO `area` VALUES (630222, 630200, '民和回族土族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (630223, 630200, '互助土族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (630224, 630200, '化隆回族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (630225, 630200, '循化撒拉族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (632100, 630000, '海东地区', 2, 0, 2); +INSERT INTO `area` VALUES (632121, 632100, '平安县', 2, 0, 3); +INSERT INTO `area` VALUES (632122, 632100, '民和回族土族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (632123, 632100, '乐都县', 2, 0, 3); +INSERT INTO `area` VALUES (632126, 632100, '互助土族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (632127, 632100, '化隆回族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (632128, 632100, '循化撒拉族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (632129, 632100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (632200, 630000, '海北藏族自治州', 2, 0, 2); +INSERT INTO `area` VALUES (632221, 632200, '门源回族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (632222, 632200, '祁连县', 2, 0, 3); +INSERT INTO `area` VALUES (632223, 632200, '海晏县', 2, 0, 3); +INSERT INTO `area` VALUES (632224, 632200, '刚察县', 2, 0, 3); +INSERT INTO `area` VALUES (632225, 632200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (632300, 630000, '黄南藏族自治州', 2, 0, 2); +INSERT INTO `area` VALUES (632321, 632300, '同仁县', 2, 0, 3); +INSERT INTO `area` VALUES (632322, 632300, '尖扎县', 2, 0, 3); +INSERT INTO `area` VALUES (632323, 632300, '泽库县', 2, 0, 3); +INSERT INTO `area` VALUES (632324, 632300, '河南蒙古族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (632325, 632300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (632500, 630000, '海南藏族自治州', 2, 0, 2); +INSERT INTO `area` VALUES (632521, 632500, '共和县', 2, 0, 3); +INSERT INTO `area` VALUES (632522, 632500, '同德县', 2, 0, 3); +INSERT INTO `area` VALUES (632523, 632500, '贵德县', 2, 0, 3); +INSERT INTO `area` VALUES (632524, 632500, '兴海县', 2, 0, 3); +INSERT INTO `area` VALUES (632525, 632500, '贵南县', 2, 0, 3); +INSERT INTO `area` VALUES (632526, 632500, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (632600, 630000, '果洛藏族自治州', 2, 0, 2); +INSERT INTO `area` VALUES (632621, 632600, '玛沁县', 2, 0, 3); +INSERT INTO `area` VALUES (632622, 632600, '班玛县', 2, 0, 3); +INSERT INTO `area` VALUES (632623, 632600, '甘德县', 2, 0, 3); +INSERT INTO `area` VALUES (632624, 632600, '达日县', 2, 0, 3); +INSERT INTO `area` VALUES (632625, 632600, '久治县', 2, 0, 3); +INSERT INTO `area` VALUES (632626, 632600, '玛多县', 2, 0, 3); +INSERT INTO `area` VALUES (632627, 632600, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (632700, 630000, '玉树藏族自治州', 2, 0, 2); +INSERT INTO `area` VALUES (632701, 632700, '玉树市', 2, 0, 3); +INSERT INTO `area` VALUES (632721, 632700, '玉树县', 2, 0, 3); +INSERT INTO `area` VALUES (632722, 632700, '杂多县', 2, 0, 3); +INSERT INTO `area` VALUES (632723, 632700, '称多县', 2, 0, 3); +INSERT INTO `area` VALUES (632724, 632700, '治多县', 2, 0, 3); +INSERT INTO `area` VALUES (632725, 632700, '囊谦县', 2, 0, 3); +INSERT INTO `area` VALUES (632726, 632700, '曲麻莱县', 2, 0, 3); +INSERT INTO `area` VALUES (632727, 632700, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (632800, 630000, '海西蒙古族藏族自治州', 2, 0, 2); +INSERT INTO `area` VALUES (632801, 632800, '格尔木市', 2, 0, 3); +INSERT INTO `area` VALUES (632802, 632800, '德令哈市', 2, 0, 3); +INSERT INTO `area` VALUES (632821, 632800, '乌兰县', 2, 0, 3); +INSERT INTO `area` VALUES (632822, 632800, '都兰县', 2, 0, 3); +INSERT INTO `area` VALUES (632823, 632800, '天峻县', 2, 0, 3); +INSERT INTO `area` VALUES (632824, 632800, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (640000, 0, '宁夏回族自治区', 2, 0, 1); +INSERT INTO `area` VALUES (640100, 640000, '银川市', 2, 0, 2); +INSERT INTO `area` VALUES (640104, 640100, '兴庆区', 2, 0, 3); +INSERT INTO `area` VALUES (640105, 640100, '西夏区', 2, 0, 3); +INSERT INTO `area` VALUES (640106, 640100, '金凤区', 2, 0, 3); +INSERT INTO `area` VALUES (640121, 640100, '永宁县', 2, 0, 3); +INSERT INTO `area` VALUES (640122, 640100, '贺兰县', 2, 0, 3); +INSERT INTO `area` VALUES (640181, 640100, '灵武市', 2, 0, 3); +INSERT INTO `area` VALUES (640182, 640100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (640200, 640000, '石嘴山市', 2, 0, 2); +INSERT INTO `area` VALUES (640202, 640200, '大武口区', 2, 0, 3); +INSERT INTO `area` VALUES (640205, 640200, '惠农区', 2, 0, 3); +INSERT INTO `area` VALUES (640221, 640200, '平罗县', 2, 0, 3); +INSERT INTO `area` VALUES (640222, 640200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (640300, 640000, '吴忠市', 2, 0, 2); +INSERT INTO `area` VALUES (640302, 640300, '利通区', 2, 0, 3); +INSERT INTO `area` VALUES (640303, 640300, '红寺堡区', 2, 0, 3); +INSERT INTO `area` VALUES (640323, 640300, '盐池县', 2, 0, 3); +INSERT INTO `area` VALUES (640324, 640300, '同心县', 2, 0, 3); +INSERT INTO `area` VALUES (640381, 640300, '青铜峡市', 2, 0, 3); +INSERT INTO `area` VALUES (640382, 640300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (640400, 640000, '固原市', 2, 0, 2); +INSERT INTO `area` VALUES (640402, 640400, '原州区', 2, 0, 3); +INSERT INTO `area` VALUES (640422, 640400, '西吉县', 2, 0, 3); +INSERT INTO `area` VALUES (640423, 640400, '隆德县', 2, 0, 3); +INSERT INTO `area` VALUES (640424, 640400, '泾源县', 2, 0, 3); +INSERT INTO `area` VALUES (640425, 640400, '彭阳县', 2, 0, 3); +INSERT INTO `area` VALUES (640426, 640400, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (640500, 640000, '中卫市', 2, 0, 2); +INSERT INTO `area` VALUES (640502, 640500, '沙坡头区', 2, 0, 3); +INSERT INTO `area` VALUES (640521, 640500, '中宁县', 2, 0, 3); +INSERT INTO `area` VALUES (640522, 640500, '海原县', 2, 0, 3); +INSERT INTO `area` VALUES (640523, 640500, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (650000, 0, '新疆维吾尔自治区', 2, 0, 1); +INSERT INTO `area` VALUES (650100, 650000, '乌鲁木齐市', 2, 0, 2); +INSERT INTO `area` VALUES (650102, 650100, '天山区', 2, 0, 3); +INSERT INTO `area` VALUES (650103, 650100, '沙依巴克区', 2, 0, 3); +INSERT INTO `area` VALUES (650104, 650100, '新市区', 2, 0, 3); +INSERT INTO `area` VALUES (650105, 650100, '水磨沟区', 2, 0, 3); +INSERT INTO `area` VALUES (650106, 650100, '头屯河区', 2, 0, 3); +INSERT INTO `area` VALUES (650107, 650100, '达坂城区', 2, 0, 3); +INSERT INTO `area` VALUES (650108, 650100, '东山区', 2, 0, 3); +INSERT INTO `area` VALUES (650109, 650100, '米东区', 2, 0, 3); +INSERT INTO `area` VALUES (650121, 650100, '乌鲁木齐县', 2, 0, 3); +INSERT INTO `area` VALUES (650122, 650100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (650200, 650000, '克拉玛依市', 2, 0, 2); +INSERT INTO `area` VALUES (650202, 650200, '独山子区', 2, 0, 3); +INSERT INTO `area` VALUES (650203, 650200, '克拉玛依区', 2, 0, 3); +INSERT INTO `area` VALUES (650204, 650200, '白碱滩区', 2, 0, 3); +INSERT INTO `area` VALUES (650205, 650200, '乌尔禾区', 2, 0, 3); +INSERT INTO `area` VALUES (650206, 650200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (650400, 650000, '吐鲁番市', 2, 0, 2); +INSERT INTO `area` VALUES (650402, 650400, '高昌区', 2, 0, 3); +INSERT INTO `area` VALUES (650421, 650400, '鄯善县', 2, 0, 3); +INSERT INTO `area` VALUES (650422, 650400, '托克逊县', 2, 0, 3); +INSERT INTO `area` VALUES (652100, 650000, '吐鲁番地区', 2, 0, 2); +INSERT INTO `area` VALUES (652101, 652100, '吐鲁番市', 2, 0, 3); +INSERT INTO `area` VALUES (652122, 652100, '鄯善县', 2, 0, 3); +INSERT INTO `area` VALUES (652123, 652100, '托克逊县', 2, 0, 3); +INSERT INTO `area` VALUES (652124, 652100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (652200, 650000, '哈密地区', 2, 0, 2); +INSERT INTO `area` VALUES (652201, 652200, '哈密市', 2, 0, 3); +INSERT INTO `area` VALUES (652222, 652200, '巴里坤哈萨克自治县', 2, 0, 3); +INSERT INTO `area` VALUES (652223, 652200, '伊吾县', 2, 0, 3); +INSERT INTO `area` VALUES (652224, 652200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (652300, 650000, '昌吉回族自治州', 2, 0, 2); +INSERT INTO `area` VALUES (652301, 652300, '昌吉市', 2, 0, 3); +INSERT INTO `area` VALUES (652302, 652300, '阜康市', 2, 0, 3); +INSERT INTO `area` VALUES (652303, 652300, '米泉市', 2, 0, 3); +INSERT INTO `area` VALUES (652323, 652300, '呼图壁县', 2, 0, 3); +INSERT INTO `area` VALUES (652324, 652300, '玛纳斯县', 2, 0, 3); +INSERT INTO `area` VALUES (652325, 652300, '奇台县', 2, 0, 3); +INSERT INTO `area` VALUES (652327, 652300, '吉木萨尔县', 2, 0, 3); +INSERT INTO `area` VALUES (652328, 652300, '木垒哈萨克自治县', 2, 0, 3); +INSERT INTO `area` VALUES (652329, 652300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (652700, 650000, '博尔塔拉蒙古自治州', 2, 0, 2); +INSERT INTO `area` VALUES (652701, 652700, '博乐市', 2, 0, 3); +INSERT INTO `area` VALUES (652702, 652700, '阿拉山口市', 2, 0, 3); +INSERT INTO `area` VALUES (652722, 652700, '精河县', 2, 0, 3); +INSERT INTO `area` VALUES (652723, 652700, '温泉县', 2, 0, 3); +INSERT INTO `area` VALUES (652724, 652700, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (652800, 650000, '巴音郭楞蒙古自治州', 2, 0, 2); +INSERT INTO `area` VALUES (652801, 652800, '库尔勒市', 2, 0, 3); +INSERT INTO `area` VALUES (652822, 652800, '轮台县', 2, 0, 3); +INSERT INTO `area` VALUES (652823, 652800, '尉犁县', 2, 0, 3); +INSERT INTO `area` VALUES (652824, 652800, '若羌县', 2, 0, 3); +INSERT INTO `area` VALUES (652825, 652800, '且末县', 2, 0, 3); +INSERT INTO `area` VALUES (652826, 652800, '焉耆回族自治县', 2, 0, 3); +INSERT INTO `area` VALUES (652827, 652800, '和静县', 2, 0, 3); +INSERT INTO `area` VALUES (652828, 652800, '和硕县', 2, 0, 3); +INSERT INTO `area` VALUES (652829, 652800, '博湖县', 2, 0, 3); +INSERT INTO `area` VALUES (652830, 652800, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (652900, 650000, '阿克苏地区', 2, 0, 2); +INSERT INTO `area` VALUES (652901, 652900, '阿克苏市', 2, 0, 3); +INSERT INTO `area` VALUES (652922, 652900, '温宿县', 2, 0, 3); +INSERT INTO `area` VALUES (652923, 652900, '库车县', 2, 0, 3); +INSERT INTO `area` VALUES (652924, 652900, '沙雅县', 2, 0, 3); +INSERT INTO `area` VALUES (652925, 652900, '新和县', 2, 0, 3); +INSERT INTO `area` VALUES (652926, 652900, '拜城县', 2, 0, 3); +INSERT INTO `area` VALUES (652927, 652900, '乌什县', 2, 0, 3); +INSERT INTO `area` VALUES (652928, 652900, '阿瓦提县', 2, 0, 3); +INSERT INTO `area` VALUES (652929, 652900, '柯坪县', 2, 0, 3); +INSERT INTO `area` VALUES (652930, 652900, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (653000, 650000, '克孜勒苏柯尔克孜自治州', 2, 0, 2); +INSERT INTO `area` VALUES (653001, 653000, '阿图什市', 2, 0, 3); +INSERT INTO `area` VALUES (653022, 653000, '阿克陶县', 2, 0, 3); +INSERT INTO `area` VALUES (653023, 653000, '阿合奇县', 2, 0, 3); +INSERT INTO `area` VALUES (653024, 653000, '乌恰县', 2, 0, 3); +INSERT INTO `area` VALUES (653025, 653000, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (653100, 650000, '喀什地区', 2, 0, 2); +INSERT INTO `area` VALUES (653101, 653100, '喀什市', 2, 0, 3); +INSERT INTO `area` VALUES (653121, 653100, '疏附县', 2, 0, 3); +INSERT INTO `area` VALUES (653122, 653100, '疏勒县', 2, 0, 3); +INSERT INTO `area` VALUES (653123, 653100, '英吉沙县', 2, 0, 3); +INSERT INTO `area` VALUES (653124, 653100, '泽普县', 2, 0, 3); +INSERT INTO `area` VALUES (653125, 653100, '莎车县', 2, 0, 3); +INSERT INTO `area` VALUES (653126, 653100, '叶城县', 2, 0, 3); +INSERT INTO `area` VALUES (653127, 653100, '麦盖提县', 2, 0, 3); +INSERT INTO `area` VALUES (653128, 653100, '岳普湖县', 2, 0, 3); +INSERT INTO `area` VALUES (653129, 653100, '伽师县', 2, 0, 3); +INSERT INTO `area` VALUES (653130, 653100, '巴楚县', 2, 0, 3); +INSERT INTO `area` VALUES (653131, 653100, '塔什库尔干塔吉克自治县', 2, 0, 3); +INSERT INTO `area` VALUES (653132, 653100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (653200, 650000, '和田地区', 2, 0, 2); +INSERT INTO `area` VALUES (653201, 653200, '和田市', 2, 0, 3); +INSERT INTO `area` VALUES (653221, 653200, '和田县', 2, 0, 3); +INSERT INTO `area` VALUES (653222, 653200, '墨玉县', 2, 0, 3); +INSERT INTO `area` VALUES (653223, 653200, '皮山县', 2, 0, 3); +INSERT INTO `area` VALUES (653224, 653200, '洛浦县', 2, 0, 3); +INSERT INTO `area` VALUES (653225, 653200, '策勒县', 2, 0, 3); +INSERT INTO `area` VALUES (653226, 653200, '于田县', 2, 0, 3); +INSERT INTO `area` VALUES (653227, 653200, '民丰县', 2, 0, 3); +INSERT INTO `area` VALUES (653228, 653200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (654000, 650000, '伊犁哈萨克自治州', 2, 0, 2); +INSERT INTO `area` VALUES (654002, 654000, '伊宁市', 2, 0, 3); +INSERT INTO `area` VALUES (654003, 654000, '奎屯市', 2, 0, 3); +INSERT INTO `area` VALUES (654004, 654000, '霍尔果斯市', 2, 0, 3); +INSERT INTO `area` VALUES (654005, 654000, '(新源市)', 2, 0, 3); +INSERT INTO `area` VALUES (654021, 654000, '伊宁县', 2, 0, 3); +INSERT INTO `area` VALUES (654022, 654000, '察布查尔锡伯自治县', 2, 0, 3); +INSERT INTO `area` VALUES (654023, 654000, '霍城县', 2, 0, 3); +INSERT INTO `area` VALUES (654024, 654000, '巩留县', 2, 0, 3); +INSERT INTO `area` VALUES (654025, 654000, '新源县', 2, 0, 3); +INSERT INTO `area` VALUES (654026, 654000, '昭苏县', 2, 0, 3); +INSERT INTO `area` VALUES (654027, 654000, '特克斯县', 2, 0, 3); +INSERT INTO `area` VALUES (654028, 654000, '尼勒克县', 2, 0, 3); +INSERT INTO `area` VALUES (654029, 654000, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (654200, 650000, '塔城地区', 2, 0, 2); +INSERT INTO `area` VALUES (654201, 654200, '塔城市', 2, 0, 3); +INSERT INTO `area` VALUES (654202, 654200, '乌苏市', 2, 0, 3); +INSERT INTO `area` VALUES (654221, 654200, '额敏县', 2, 0, 3); +INSERT INTO `area` VALUES (654223, 654200, '沙湾县', 2, 0, 3); +INSERT INTO `area` VALUES (654224, 654200, '托里县', 2, 0, 3); +INSERT INTO `area` VALUES (654225, 654200, '裕民县', 2, 0, 3); +INSERT INTO `area` VALUES (654226, 654200, '和布克赛尔蒙古自治县', 2, 0, 3); +INSERT INTO `area` VALUES (654227, 654200, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (654300, 650000, '阿勒泰地区', 2, 0, 2); +INSERT INTO `area` VALUES (654301, 654300, '阿勒泰市', 2, 0, 3); +INSERT INTO `area` VALUES (654321, 654300, '布尔津县', 2, 0, 3); +INSERT INTO `area` VALUES (654322, 654300, '富蕴县', 2, 0, 3); +INSERT INTO `area` VALUES (654323, 654300, '福海县', 2, 0, 3); +INSERT INTO `area` VALUES (654324, 654300, '哈巴河县', 2, 0, 3); +INSERT INTO `area` VALUES (654325, 654300, '青河县', 2, 0, 3); +INSERT INTO `area` VALUES (654326, 654300, '吉木乃县', 2, 0, 3); +INSERT INTO `area` VALUES (654327, 654300, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (659000, 650000, '自治区直辖县级行政区划', 2, 0, 2); +INSERT INTO `area` VALUES (659001, 659000, '石河子市', 2, 0, 3); +INSERT INTO `area` VALUES (659002, 659000, '阿拉尔市', 2, 0, 3); +INSERT INTO `area` VALUES (659003, 659000, '图木舒克市', 2, 0, 3); +INSERT INTO `area` VALUES (659004, 659000, '五家渠市', 2, 0, 3); +INSERT INTO `area` VALUES (659005, 659000, '北屯市', 2, 0, 3); +INSERT INTO `area` VALUES (659006, 659000, '铁门关市', 2, 0, 3); +INSERT INTO `area` VALUES (659007, 659000, '双河市', 2, 0, 3); +INSERT INTO `area` VALUES (659008, 659000, '可克达拉市', 2, 0, 3); +INSERT INTO `area` VALUES (659009, 659000, '(胡杨河市)', 2, 0, 3); +INSERT INTO `area` VALUES (710000, 0, '台湾省', 2, 0, 1); +INSERT INTO `area` VALUES (710100, 710000, '台北市', 2, 0, 2); +INSERT INTO `area` VALUES (710101, 710100, '松山区', 2, 0, 3); +INSERT INTO `area` VALUES (710102, 710100, '信义区', 2, 0, 3); +INSERT INTO `area` VALUES (710103, 710100, '大安区', 2, 0, 3); +INSERT INTO `area` VALUES (710104, 710100, '中山区', 2, 0, 3); +INSERT INTO `area` VALUES (710105, 710100, '中正区', 2, 0, 3); +INSERT INTO `area` VALUES (710106, 710100, '大同区', 2, 0, 3); +INSERT INTO `area` VALUES (710107, 710100, '万华区', 2, 0, 3); +INSERT INTO `area` VALUES (710108, 710100, '文山区', 2, 0, 3); +INSERT INTO `area` VALUES (710109, 710100, '南港区', 2, 0, 3); +INSERT INTO `area` VALUES (710110, 710100, '内湖区', 2, 0, 3); +INSERT INTO `area` VALUES (710111, 710100, '士林区', 2, 0, 3); +INSERT INTO `area` VALUES (710112, 710100, '北投区', 2, 0, 3); +INSERT INTO `area` VALUES (710113, 710100, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (710200, 710000, '高雄市', 2, 0, 2); +INSERT INTO `area` VALUES (710201, 710200, '盐埕区', 2, 0, 3); +INSERT INTO `area` VALUES (710202, 710200, '鼓山区', 2, 0, 3); +INSERT INTO `area` VALUES (710203, 710200, '左营区', 2, 0, 3); +INSERT INTO `area` VALUES (710204, 710200, '楠梓区', 2, 0, 3); +INSERT INTO `area` VALUES (710205, 710200, '三民区', 2, 0, 3); +INSERT INTO `area` VALUES (710206, 710200, '新兴区', 2, 0, 3); +INSERT INTO `area` VALUES (710207, 710200, '前金区', 2, 0, 3); +INSERT INTO `area` VALUES (710208, 710200, '苓雅区', 2, 0, 3); +INSERT INTO `area` VALUES (710209, 710200, '前镇区', 2, 0, 3); +INSERT INTO `area` VALUES (710210, 710200, '旗津区', 2, 0, 3); +INSERT INTO `area` VALUES (710211, 710200, '小港区', 2, 0, 3); +INSERT INTO `area` VALUES (710212, 710200, '凤山区', 2, 0, 3); +INSERT INTO `area` VALUES (710213, 710200, '林园区', 2, 0, 3); +INSERT INTO `area` VALUES (710214, 710200, '大寮区', 2, 0, 3); +INSERT INTO `area` VALUES (710215, 710200, '大树区', 2, 0, 3); +INSERT INTO `area` VALUES (710216, 710200, '大社区', 2, 0, 3); +INSERT INTO `area` VALUES (710217, 710200, '仁武区', 2, 0, 3); +INSERT INTO `area` VALUES (710218, 710200, '鸟松区', 2, 0, 3); +INSERT INTO `area` VALUES (710219, 710200, '冈山区', 2, 0, 3); +INSERT INTO `area` VALUES (710220, 710200, '桥头区', 2, 0, 3); +INSERT INTO `area` VALUES (710221, 710200, '燕巢区', 2, 0, 3); +INSERT INTO `area` VALUES (710222, 710200, '田寮区', 2, 0, 3); +INSERT INTO `area` VALUES (710223, 710200, '阿莲区', 2, 0, 3); +INSERT INTO `area` VALUES (710224, 710200, '路竹区', 2, 0, 3); +INSERT INTO `area` VALUES (710225, 710200, '湖内区', 2, 0, 3); +INSERT INTO `area` VALUES (710226, 710200, '茄萣区', 2, 0, 3); +INSERT INTO `area` VALUES (710227, 710200, '永安区', 2, 0, 3); +INSERT INTO `area` VALUES (710228, 710200, '弥陀区', 2, 0, 3); +INSERT INTO `area` VALUES (710229, 710200, '梓官区', 2, 0, 3); +INSERT INTO `area` VALUES (710230, 710200, '旗山区', 2, 0, 3); +INSERT INTO `area` VALUES (710231, 710200, '美浓区', 2, 0, 3); +INSERT INTO `area` VALUES (710232, 710200, '六龟区', 2, 0, 3); +INSERT INTO `area` VALUES (710233, 710200, '甲仙区', 2, 0, 3); +INSERT INTO `area` VALUES (710234, 710200, '杉林区', 2, 0, 3); +INSERT INTO `area` VALUES (710235, 710200, '内门区', 2, 0, 3); +INSERT INTO `area` VALUES (710236, 710200, '茂林区', 2, 0, 3); +INSERT INTO `area` VALUES (710237, 710200, '桃源区', 2, 0, 3); +INSERT INTO `area` VALUES (710238, 710200, '那玛夏区', 2, 0, 3); +INSERT INTO `area` VALUES (710300, 710000, '基隆市', 2, 0, 2); +INSERT INTO `area` VALUES (710301, 710300, '中正区', 2, 0, 3); +INSERT INTO `area` VALUES (710302, 710300, '七堵区', 2, 0, 3); +INSERT INTO `area` VALUES (710303, 710300, '暖暖区', 2, 0, 3); +INSERT INTO `area` VALUES (710304, 710300, '仁爱区', 2, 0, 3); +INSERT INTO `area` VALUES (710305, 710300, '中山区', 2, 0, 3); +INSERT INTO `area` VALUES (710306, 710300, '安乐区', 2, 0, 3); +INSERT INTO `area` VALUES (710307, 710300, '信义区', 2, 0, 3); +INSERT INTO `area` VALUES (710400, 710000, '台中市', 2, 0, 2); +INSERT INTO `area` VALUES (710401, 710400, '中区', 2, 0, 3); +INSERT INTO `area` VALUES (710402, 710400, '东区', 2, 0, 3); +INSERT INTO `area` VALUES (710403, 710400, '南区', 2, 0, 3); +INSERT INTO `area` VALUES (710404, 710400, '西区', 2, 0, 3); +INSERT INTO `area` VALUES (710405, 710400, '北区', 2, 0, 3); +INSERT INTO `area` VALUES (710406, 710400, '西屯区', 2, 0, 3); +INSERT INTO `area` VALUES (710407, 710400, '南屯区', 2, 0, 3); +INSERT INTO `area` VALUES (710408, 710400, '北屯区', 2, 0, 3); +INSERT INTO `area` VALUES (710409, 710400, '丰原区', 2, 0, 3); +INSERT INTO `area` VALUES (710410, 710400, '东势区', 2, 0, 3); +INSERT INTO `area` VALUES (710411, 710400, '大甲区', 2, 0, 3); +INSERT INTO `area` VALUES (710412, 710400, '清水区', 2, 0, 3); +INSERT INTO `area` VALUES (710413, 710400, '沙鹿区', 2, 0, 3); +INSERT INTO `area` VALUES (710414, 710400, '梧栖区', 2, 0, 3); +INSERT INTO `area` VALUES (710415, 710400, '后里区', 2, 0, 3); +INSERT INTO `area` VALUES (710416, 710400, '神冈区', 2, 0, 3); +INSERT INTO `area` VALUES (710417, 710400, '潭子区', 2, 0, 3); +INSERT INTO `area` VALUES (710418, 710400, '大雅区', 2, 0, 3); +INSERT INTO `area` VALUES (710419, 710400, '新社区', 2, 0, 3); +INSERT INTO `area` VALUES (710420, 710400, '石冈区', 2, 0, 3); +INSERT INTO `area` VALUES (710421, 710400, '外埔区', 2, 0, 3); +INSERT INTO `area` VALUES (710422, 710400, '大安区', 2, 0, 3); +INSERT INTO `area` VALUES (710423, 710400, '乌日区', 2, 0, 3); +INSERT INTO `area` VALUES (710424, 710400, '大肚区', 2, 0, 3); +INSERT INTO `area` VALUES (710425, 710400, '龙井区', 2, 0, 3); +INSERT INTO `area` VALUES (710426, 710400, '雾峰区', 2, 0, 3); +INSERT INTO `area` VALUES (710427, 710400, '太平区', 2, 0, 3); +INSERT INTO `area` VALUES (710428, 710400, '大里区', 2, 0, 3); +INSERT INTO `area` VALUES (710429, 710400, '和平区', 2, 0, 3); +INSERT INTO `area` VALUES (710500, 710000, '台南市', 2, 0, 2); +INSERT INTO `area` VALUES (710501, 710500, '东区', 2, 0, 3); +INSERT INTO `area` VALUES (710502, 710500, '南区', 2, 0, 3); +INSERT INTO `area` VALUES (710504, 710500, '北区', 2, 0, 3); +INSERT INTO `area` VALUES (710506, 710500, '安南区', 2, 0, 3); +INSERT INTO `area` VALUES (710507, 710500, '安平区', 2, 0, 3); +INSERT INTO `area` VALUES (710508, 710500, '中西区', 2, 0, 3); +INSERT INTO `area` VALUES (710509, 710500, '新营区', 2, 0, 3); +INSERT INTO `area` VALUES (710510, 710500, '盐水区', 2, 0, 3); +INSERT INTO `area` VALUES (710511, 710500, '白河区', 2, 0, 3); +INSERT INTO `area` VALUES (710512, 710500, '柳营区', 2, 0, 3); +INSERT INTO `area` VALUES (710513, 710500, '后壁区', 2, 0, 3); +INSERT INTO `area` VALUES (710514, 710500, '东山区', 2, 0, 3); +INSERT INTO `area` VALUES (710515, 710500, '麻豆区', 2, 0, 3); +INSERT INTO `area` VALUES (710516, 710500, '下营区', 2, 0, 3); +INSERT INTO `area` VALUES (710517, 710500, '六甲区', 2, 0, 3); +INSERT INTO `area` VALUES (710518, 710500, '官田区', 2, 0, 3); +INSERT INTO `area` VALUES (710519, 710500, '大内区', 2, 0, 3); +INSERT INTO `area` VALUES (710520, 710500, '佳里区', 2, 0, 3); +INSERT INTO `area` VALUES (710521, 710500, '学甲区', 2, 0, 3); +INSERT INTO `area` VALUES (710522, 710500, '西港区', 2, 0, 3); +INSERT INTO `area` VALUES (710523, 710500, '七股区', 2, 0, 3); +INSERT INTO `area` VALUES (710524, 710500, '将军区', 2, 0, 3); +INSERT INTO `area` VALUES (710525, 710500, '北门区', 2, 0, 3); +INSERT INTO `area` VALUES (710526, 710500, '新化区', 2, 0, 3); +INSERT INTO `area` VALUES (710527, 710500, '善化区', 2, 0, 3); +INSERT INTO `area` VALUES (710528, 710500, '新市区', 2, 0, 3); +INSERT INTO `area` VALUES (710529, 710500, '安定区', 2, 0, 3); +INSERT INTO `area` VALUES (710530, 710500, '山上区', 2, 0, 3); +INSERT INTO `area` VALUES (710531, 710500, '玉井区', 2, 0, 3); +INSERT INTO `area` VALUES (710532, 710500, '楠西区', 2, 0, 3); +INSERT INTO `area` VALUES (710533, 710500, '南化区', 2, 0, 3); +INSERT INTO `area` VALUES (710534, 710500, '左镇区', 2, 0, 3); +INSERT INTO `area` VALUES (710535, 710500, '仁德区', 2, 0, 3); +INSERT INTO `area` VALUES (710536, 710500, '归仁区', 2, 0, 3); +INSERT INTO `area` VALUES (710537, 710500, '关庙区', 2, 0, 3); +INSERT INTO `area` VALUES (710538, 710500, '龙崎区', 2, 0, 3); +INSERT INTO `area` VALUES (710539, 710500, '永康区', 2, 0, 3); +INSERT INTO `area` VALUES (710600, 710000, '新竹市', 2, 0, 2); +INSERT INTO `area` VALUES (710601, 710600, '东区', 2, 0, 3); +INSERT INTO `area` VALUES (710602, 710600, '北区', 2, 0, 3); +INSERT INTO `area` VALUES (710603, 710600, '香山区', 2, 0, 3); +INSERT INTO `area` VALUES (710700, 710000, '嘉义市', 2, 0, 2); +INSERT INTO `area` VALUES (710701, 710700, '东区', 2, 0, 3); +INSERT INTO `area` VALUES (710702, 710700, '西区', 2, 0, 3); +INSERT INTO `area` VALUES (710703, 710700, '中正区', 2, 0, 3); +INSERT INTO `area` VALUES (710704, 710700, '中山区', 2, 0, 3); +INSERT INTO `area` VALUES (710705, 710700, '安乐区', 2, 0, 3); +INSERT INTO `area` VALUES (710706, 710700, '暖暖区', 2, 0, 3); +INSERT INTO `area` VALUES (710707, 710700, '七堵区', 2, 0, 3); +INSERT INTO `area` VALUES (710708, 710700, '其它区', 2, 0, 3); +INSERT INTO `area` VALUES (710800, 710000, '新北市', 2, 0, 2); +INSERT INTO `area` VALUES (710801, 710800, '板桥区', 2, 0, 3); +INSERT INTO `area` VALUES (710802, 710800, '三重区', 2, 0, 3); +INSERT INTO `area` VALUES (710803, 710800, '中和区', 2, 0, 3); +INSERT INTO `area` VALUES (710804, 710800, '永和区', 2, 0, 3); +INSERT INTO `area` VALUES (710805, 710800, '新庄区', 2, 0, 3); +INSERT INTO `area` VALUES (710806, 710800, '新店区', 2, 0, 3); +INSERT INTO `area` VALUES (710807, 710800, '树林区', 2, 0, 3); +INSERT INTO `area` VALUES (710808, 710800, '莺歌区', 2, 0, 3); +INSERT INTO `area` VALUES (710809, 710800, '三峡区', 2, 0, 3); +INSERT INTO `area` VALUES (710810, 710800, '淡水区', 2, 0, 3); +INSERT INTO `area` VALUES (710811, 710800, '汐止区', 2, 0, 3); +INSERT INTO `area` VALUES (710812, 710800, '瑞芳区', 2, 0, 3); +INSERT INTO `area` VALUES (710813, 710800, '土城区', 2, 0, 3); +INSERT INTO `area` VALUES (710814, 710800, '芦洲区', 2, 0, 3); +INSERT INTO `area` VALUES (710815, 710800, '五股区', 2, 0, 3); +INSERT INTO `area` VALUES (710816, 710800, '泰山区', 2, 0, 3); +INSERT INTO `area` VALUES (710817, 710800, '林口区', 2, 0, 3); +INSERT INTO `area` VALUES (710818, 710800, '深坑区', 2, 0, 3); +INSERT INTO `area` VALUES (710819, 710800, '石碇区', 2, 0, 3); +INSERT INTO `area` VALUES (710820, 710800, '坪林区', 2, 0, 3); +INSERT INTO `area` VALUES (710821, 710800, '三芝区', 2, 0, 3); +INSERT INTO `area` VALUES (710822, 710800, '石门区', 2, 0, 3); +INSERT INTO `area` VALUES (710823, 710800, '八里区', 2, 0, 3); +INSERT INTO `area` VALUES (710824, 710800, '平溪区', 2, 0, 3); +INSERT INTO `area` VALUES (710825, 710800, '双溪区', 2, 0, 3); +INSERT INTO `area` VALUES (710826, 710800, '贡寮区', 2, 0, 3); +INSERT INTO `area` VALUES (710827, 710800, '金山区', 2, 0, 3); +INSERT INTO `area` VALUES (710828, 710800, '万里区', 2, 0, 3); +INSERT INTO `area` VALUES (710829, 710800, '乌来区', 2, 0, 3); +INSERT INTO `area` VALUES (710900, 710000, '桃园市', 2, 0, 2); +INSERT INTO `area` VALUES (710901, 710900, '桃园区', 2, 0, 3); +INSERT INTO `area` VALUES (710902, 710900, '中坜区', 2, 0, 3); +INSERT INTO `area` VALUES (710903, 710900, '平镇区', 2, 0, 3); +INSERT INTO `area` VALUES (710904, 710900, '八德区', 2, 0, 3); +INSERT INTO `area` VALUES (710905, 710900, '杨梅区', 2, 0, 3); +INSERT INTO `area` VALUES (710906, 710900, '大溪区', 2, 0, 3); +INSERT INTO `area` VALUES (710907, 710900, '芦竹区', 2, 0, 3); +INSERT INTO `area` VALUES (710908, 710900, '大园区', 2, 0, 3); +INSERT INTO `area` VALUES (710909, 710900, '龟山区', 2, 0, 3); +INSERT INTO `area` VALUES (710910, 710900, '龙潭区', 2, 0, 3); +INSERT INTO `area` VALUES (710911, 710900, '新屋区', 2, 0, 3); +INSERT INTO `area` VALUES (710912, 710900, '观音区', 2, 0, 3); +INSERT INTO `area` VALUES (710913, 710900, '复兴区', 2, 0, 3); +INSERT INTO `area` VALUES (711100, 710000, '新北市', 2, 0, 2); +INSERT INTO `area` VALUES (711200, 710000, '宜兰县', 2, 0, 2); +INSERT INTO `area` VALUES (711300, 710000, '新竹县', 2, 0, 2); +INSERT INTO `area` VALUES (711400, 710000, '桃园县', 2, 0, 2); +INSERT INTO `area` VALUES (711500, 710000, '苗栗县', 2, 0, 2); +INSERT INTO `area` VALUES (711700, 710000, '彰化县', 2, 0, 2); +INSERT INTO `area` VALUES (711900, 710000, '嘉义县', 2, 0, 2); +INSERT INTO `area` VALUES (712100, 710000, '云林县', 2, 0, 2); +INSERT INTO `area` VALUES (712200, 710000, '宜兰县', 2, 0, 2); +INSERT INTO `area` VALUES (712201, 712200, '宜兰市', 2, 0, 3); +INSERT INTO `area` VALUES (712221, 712200, '罗东镇', 2, 0, 3); +INSERT INTO `area` VALUES (712222, 712200, '苏澳镇', 2, 0, 3); +INSERT INTO `area` VALUES (712223, 712200, '头城镇', 2, 0, 3); +INSERT INTO `area` VALUES (712224, 712200, '礁溪乡', 2, 0, 3); +INSERT INTO `area` VALUES (712225, 712200, '壮围乡', 2, 0, 3); +INSERT INTO `area` VALUES (712226, 712200, '员山乡', 2, 0, 3); +INSERT INTO `area` VALUES (712227, 712200, '冬山乡', 2, 0, 3); +INSERT INTO `area` VALUES (712228, 712200, '五结乡', 2, 0, 3); +INSERT INTO `area` VALUES (712229, 712200, '三星乡', 2, 0, 3); +INSERT INTO `area` VALUES (712230, 712200, '大同乡', 2, 0, 3); +INSERT INTO `area` VALUES (712231, 712200, '南澳乡', 2, 0, 3); +INSERT INTO `area` VALUES (712400, 710000, '新竹县', 2, 0, 2); +INSERT INTO `area` VALUES (712401, 712400, '竹北市', 2, 0, 3); +INSERT INTO `area` VALUES (712421, 712400, '竹东镇', 2, 0, 3); +INSERT INTO `area` VALUES (712422, 712400, '新埔镇', 2, 0, 3); +INSERT INTO `area` VALUES (712423, 712400, '关西镇', 2, 0, 3); +INSERT INTO `area` VALUES (712424, 712400, '湖口乡', 2, 0, 3); +INSERT INTO `area` VALUES (712425, 712400, '新丰乡', 2, 0, 3); +INSERT INTO `area` VALUES (712426, 712400, '芎林乡', 2, 0, 3); +INSERT INTO `area` VALUES (712427, 712400, '橫山乡', 2, 0, 3); +INSERT INTO `area` VALUES (712428, 712400, '北埔乡', 2, 0, 3); +INSERT INTO `area` VALUES (712429, 712400, '宝山乡', 2, 0, 3); +INSERT INTO `area` VALUES (712430, 712400, '峨眉乡', 2, 0, 3); +INSERT INTO `area` VALUES (712431, 712400, '尖石乡', 2, 0, 3); +INSERT INTO `area` VALUES (712432, 712400, '五峰乡', 2, 0, 3); +INSERT INTO `area` VALUES (712500, 710000, '苗栗县', 2, 0, 2); +INSERT INTO `area` VALUES (712501, 712500, '苗栗市', 2, 0, 3); +INSERT INTO `area` VALUES (712521, 712500, '苑里镇', 2, 0, 3); +INSERT INTO `area` VALUES (712522, 712500, '通霄镇', 2, 0, 3); +INSERT INTO `area` VALUES (712523, 712500, '竹南镇', 2, 0, 3); +INSERT INTO `area` VALUES (712524, 712500, '头份镇', 2, 0, 3); +INSERT INTO `area` VALUES (712525, 712500, '后龙镇', 2, 0, 3); +INSERT INTO `area` VALUES (712526, 712500, '卓兰镇', 2, 0, 3); +INSERT INTO `area` VALUES (712527, 712500, '大湖乡', 2, 0, 3); +INSERT INTO `area` VALUES (712528, 712500, '公馆乡', 2, 0, 3); +INSERT INTO `area` VALUES (712529, 712500, '铜锣乡', 2, 0, 3); +INSERT INTO `area` VALUES (712530, 712500, '南庄乡', 2, 0, 3); +INSERT INTO `area` VALUES (712531, 712500, '头屋乡', 2, 0, 3); +INSERT INTO `area` VALUES (712532, 712500, '三义乡', 2, 0, 3); +INSERT INTO `area` VALUES (712533, 712500, '西湖乡', 2, 0, 3); +INSERT INTO `area` VALUES (712534, 712500, '造桥乡', 2, 0, 3); +INSERT INTO `area` VALUES (712535, 712500, '三湾乡', 2, 0, 3); +INSERT INTO `area` VALUES (712536, 712500, '狮潭乡', 2, 0, 3); +INSERT INTO `area` VALUES (712537, 712500, '泰安乡', 2, 0, 3); +INSERT INTO `area` VALUES (712600, 710000, '花莲县', 2, 0, 2); +INSERT INTO `area` VALUES (712700, 710000, '彰化县', 2, 0, 2); +INSERT INTO `area` VALUES (712701, 712700, '彰化市', 2, 0, 3); +INSERT INTO `area` VALUES (712721, 712700, '鹿港镇', 2, 0, 3); +INSERT INTO `area` VALUES (712722, 712700, '和美镇', 2, 0, 3); +INSERT INTO `area` VALUES (712723, 712700, '线西乡', 2, 0, 3); +INSERT INTO `area` VALUES (712724, 712700, '伸港乡', 2, 0, 3); +INSERT INTO `area` VALUES (712725, 712700, '福兴乡', 2, 0, 3); +INSERT INTO `area` VALUES (712726, 712700, '秀水乡', 2, 0, 3); +INSERT INTO `area` VALUES (712727, 712700, '花坛乡', 2, 0, 3); +INSERT INTO `area` VALUES (712728, 712700, '芬园乡', 2, 0, 3); +INSERT INTO `area` VALUES (712729, 712700, '员林镇', 2, 0, 3); +INSERT INTO `area` VALUES (712730, 712700, '溪湖镇', 2, 0, 3); +INSERT INTO `area` VALUES (712731, 712700, '田中镇', 2, 0, 3); +INSERT INTO `area` VALUES (712732, 712700, '大村乡', 2, 0, 3); +INSERT INTO `area` VALUES (712733, 712700, '埔盐乡', 2, 0, 3); +INSERT INTO `area` VALUES (712734, 712700, '埔心乡', 2, 0, 3); +INSERT INTO `area` VALUES (712735, 712700, '永靖乡', 2, 0, 3); +INSERT INTO `area` VALUES (712736, 712700, '社头乡', 2, 0, 3); +INSERT INTO `area` VALUES (712737, 712700, '二水乡', 2, 0, 3); +INSERT INTO `area` VALUES (712738, 712700, '北斗镇', 2, 0, 3); +INSERT INTO `area` VALUES (712739, 712700, '二林镇', 2, 0, 3); +INSERT INTO `area` VALUES (712740, 712700, '田尾乡', 2, 0, 3); +INSERT INTO `area` VALUES (712741, 712700, '埤头乡', 2, 0, 3); +INSERT INTO `area` VALUES (712742, 712700, '芳苑乡', 2, 0, 3); +INSERT INTO `area` VALUES (712743, 712700, '大城乡', 2, 0, 3); +INSERT INTO `area` VALUES (712744, 712700, '竹塘乡', 2, 0, 3); +INSERT INTO `area` VALUES (712745, 712700, '溪州乡', 2, 0, 3); +INSERT INTO `area` VALUES (712800, 710000, '南投县', 2, 0, 2); +INSERT INTO `area` VALUES (712801, 712800, '南投市', 2, 0, 3); +INSERT INTO `area` VALUES (712821, 712800, '埔里镇', 2, 0, 3); +INSERT INTO `area` VALUES (712822, 712800, '草屯镇', 2, 0, 3); +INSERT INTO `area` VALUES (712823, 712800, '竹山镇', 2, 0, 3); +INSERT INTO `area` VALUES (712824, 712800, '集集镇', 2, 0, 3); +INSERT INTO `area` VALUES (712825, 712800, '名间乡', 2, 0, 3); +INSERT INTO `area` VALUES (712826, 712800, '鹿谷乡', 2, 0, 3); +INSERT INTO `area` VALUES (712827, 712800, '中寮乡', 2, 0, 3); +INSERT INTO `area` VALUES (712828, 712800, '鱼池乡', 2, 0, 3); +INSERT INTO `area` VALUES (712829, 712800, '国姓乡', 2, 0, 3); +INSERT INTO `area` VALUES (712830, 712800, '水里乡', 2, 0, 3); +INSERT INTO `area` VALUES (712831, 712800, '信义乡', 2, 0, 3); +INSERT INTO `area` VALUES (712832, 712800, '仁爱乡', 2, 0, 3); +INSERT INTO `area` VALUES (712900, 710000, '云林县', 2, 0, 2); +INSERT INTO `area` VALUES (712901, 712900, '斗六市', 2, 0, 3); +INSERT INTO `area` VALUES (712921, 712900, '斗南镇', 2, 0, 3); +INSERT INTO `area` VALUES (712922, 712900, '虎尾镇', 2, 0, 3); +INSERT INTO `area` VALUES (712923, 712900, '西螺镇', 2, 0, 3); +INSERT INTO `area` VALUES (712924, 712900, '土库镇', 2, 0, 3); +INSERT INTO `area` VALUES (712925, 712900, '北港镇', 2, 0, 3); +INSERT INTO `area` VALUES (712926, 712900, '古坑乡', 2, 0, 3); +INSERT INTO `area` VALUES (712927, 712900, '大埤乡', 2, 0, 3); +INSERT INTO `area` VALUES (712928, 712900, '莿桐乡', 2, 0, 3); +INSERT INTO `area` VALUES (712929, 712900, '林内乡', 2, 0, 3); +INSERT INTO `area` VALUES (712930, 712900, '二仑乡', 2, 0, 3); +INSERT INTO `area` VALUES (712931, 712900, '仑背乡', 2, 0, 3); +INSERT INTO `area` VALUES (712932, 712900, '麦寮乡', 2, 0, 3); +INSERT INTO `area` VALUES (712933, 712900, '东势乡', 2, 0, 3); +INSERT INTO `area` VALUES (712934, 712900, '褒忠乡', 2, 0, 3); +INSERT INTO `area` VALUES (712935, 712900, '台西乡', 2, 0, 3); +INSERT INTO `area` VALUES (712936, 712900, '元长乡', 2, 0, 3); +INSERT INTO `area` VALUES (712937, 712900, '四湖乡', 2, 0, 3); +INSERT INTO `area` VALUES (712938, 712900, '口湖乡', 2, 0, 3); +INSERT INTO `area` VALUES (712939, 712900, '水林乡', 2, 0, 3); +INSERT INTO `area` VALUES (713000, 710000, '嘉义县', 2, 0, 2); +INSERT INTO `area` VALUES (713001, 713000, '太保市', 2, 0, 3); +INSERT INTO `area` VALUES (713002, 713000, '朴子市', 2, 0, 3); +INSERT INTO `area` VALUES (713023, 713000, '布袋镇', 2, 0, 3); +INSERT INTO `area` VALUES (713024, 713000, '大林镇', 2, 0, 3); +INSERT INTO `area` VALUES (713025, 713000, '民雄乡', 2, 0, 3); +INSERT INTO `area` VALUES (713026, 713000, '溪口乡', 2, 0, 3); +INSERT INTO `area` VALUES (713027, 713000, '新港乡', 2, 0, 3); +INSERT INTO `area` VALUES (713028, 713000, '六脚乡', 2, 0, 3); +INSERT INTO `area` VALUES (713029, 713000, '东石乡', 2, 0, 3); +INSERT INTO `area` VALUES (713030, 713000, '义竹乡', 2, 0, 3); +INSERT INTO `area` VALUES (713031, 713000, '鹿草乡', 2, 0, 3); +INSERT INTO `area` VALUES (713032, 713000, '水上乡', 2, 0, 3); +INSERT INTO `area` VALUES (713033, 713000, '中埔乡', 2, 0, 3); +INSERT INTO `area` VALUES (713034, 713000, '竹崎乡', 2, 0, 3); +INSERT INTO `area` VALUES (713035, 713000, '梅山乡', 2, 0, 3); +INSERT INTO `area` VALUES (713036, 713000, '番路乡', 2, 0, 3); +INSERT INTO `area` VALUES (713037, 713000, '大埔乡', 2, 0, 3); +INSERT INTO `area` VALUES (713038, 713000, '阿里山乡', 2, 0, 3); +INSERT INTO `area` VALUES (713300, 710000, '屏东县', 2, 0, 2); +INSERT INTO `area` VALUES (713301, 713300, '屏东市', 2, 0, 3); +INSERT INTO `area` VALUES (713321, 713300, '潮州镇', 2, 0, 3); +INSERT INTO `area` VALUES (713322, 713300, '东港镇', 2, 0, 3); +INSERT INTO `area` VALUES (713323, 713300, '恒春镇', 2, 0, 3); +INSERT INTO `area` VALUES (713324, 713300, '万丹乡', 2, 0, 3); +INSERT INTO `area` VALUES (713325, 713300, '长治乡', 2, 0, 3); +INSERT INTO `area` VALUES (713326, 713300, '麟洛乡', 2, 0, 3); +INSERT INTO `area` VALUES (713327, 713300, '九如乡', 2, 0, 3); +INSERT INTO `area` VALUES (713328, 713300, '里港乡', 2, 0, 3); +INSERT INTO `area` VALUES (713329, 713300, '盐埔乡', 2, 0, 3); +INSERT INTO `area` VALUES (713330, 713300, '高树乡', 2, 0, 3); +INSERT INTO `area` VALUES (713331, 713300, '万峦乡', 2, 0, 3); +INSERT INTO `area` VALUES (713332, 713300, '内埔乡', 2, 0, 3); +INSERT INTO `area` VALUES (713333, 713300, '竹田乡', 2, 0, 3); +INSERT INTO `area` VALUES (713334, 713300, '新埤乡', 2, 0, 3); +INSERT INTO `area` VALUES (713335, 713300, '枋寮乡', 2, 0, 3); +INSERT INTO `area` VALUES (713336, 713300, '新园乡', 2, 0, 3); +INSERT INTO `area` VALUES (713337, 713300, '崁顶乡', 2, 0, 3); +INSERT INTO `area` VALUES (713338, 713300, '林边乡', 2, 0, 3); +INSERT INTO `area` VALUES (713339, 713300, '南州乡', 2, 0, 3); +INSERT INTO `area` VALUES (713340, 713300, '佳冬乡', 2, 0, 3); +INSERT INTO `area` VALUES (713341, 713300, '琉球乡', 2, 0, 3); +INSERT INTO `area` VALUES (713342, 713300, '车城乡', 2, 0, 3); +INSERT INTO `area` VALUES (713343, 713300, '满州乡', 2, 0, 3); +INSERT INTO `area` VALUES (713344, 713300, '枋山乡', 2, 0, 3); +INSERT INTO `area` VALUES (713345, 713300, '三地门乡', 2, 0, 3); +INSERT INTO `area` VALUES (713346, 713300, '雾台乡', 2, 0, 3); +INSERT INTO `area` VALUES (713347, 713300, '玛家乡', 2, 0, 3); +INSERT INTO `area` VALUES (713348, 713300, '泰武乡', 2, 0, 3); +INSERT INTO `area` VALUES (713349, 713300, '来义乡', 2, 0, 3); +INSERT INTO `area` VALUES (713350, 713300, '春日乡', 2, 0, 3); +INSERT INTO `area` VALUES (713351, 713300, '狮子乡', 2, 0, 3); +INSERT INTO `area` VALUES (713352, 713300, '牡丹乡', 2, 0, 3); +INSERT INTO `area` VALUES (713400, 710000, '台东县', 2, 0, 2); +INSERT INTO `area` VALUES (713401, 713400, '台东市', 2, 0, 3); +INSERT INTO `area` VALUES (713421, 713400, '成功镇', 2, 0, 3); +INSERT INTO `area` VALUES (713422, 713400, '关山镇', 2, 0, 3); +INSERT INTO `area` VALUES (713423, 713400, '卑南乡', 2, 0, 3); +INSERT INTO `area` VALUES (713424, 713400, '鹿野乡', 2, 0, 3); +INSERT INTO `area` VALUES (713425, 713400, '池上乡', 2, 0, 3); +INSERT INTO `area` VALUES (713426, 713400, '东河乡', 2, 0, 3); +INSERT INTO `area` VALUES (713427, 713400, '长滨乡', 2, 0, 3); +INSERT INTO `area` VALUES (713428, 713400, '太麻里乡', 2, 0, 3); +INSERT INTO `area` VALUES (713429, 713400, '大武乡', 2, 0, 3); +INSERT INTO `area` VALUES (713430, 713400, '绿岛乡', 2, 0, 3); +INSERT INTO `area` VALUES (713431, 713400, '海端乡', 2, 0, 3); +INSERT INTO `area` VALUES (713432, 713400, '延平乡', 2, 0, 3); +INSERT INTO `area` VALUES (713433, 713400, '金峰乡', 2, 0, 3); +INSERT INTO `area` VALUES (713434, 713400, '达仁乡', 2, 0, 3); +INSERT INTO `area` VALUES (713435, 713400, '兰屿乡', 2, 0, 3); +INSERT INTO `area` VALUES (713500, 710000, '花莲县', 2, 0, 2); +INSERT INTO `area` VALUES (713501, 713500, '花莲市', 2, 0, 3); +INSERT INTO `area` VALUES (713521, 713500, '凤林镇', 2, 0, 3); +INSERT INTO `area` VALUES (713522, 713500, '玉里镇', 2, 0, 3); +INSERT INTO `area` VALUES (713523, 713500, '新城乡', 2, 0, 3); +INSERT INTO `area` VALUES (713524, 713500, '吉安乡', 2, 0, 3); +INSERT INTO `area` VALUES (713525, 713500, '寿丰乡', 2, 0, 3); +INSERT INTO `area` VALUES (713526, 713500, '光复乡', 2, 0, 3); +INSERT INTO `area` VALUES (713527, 713500, '丰滨乡', 2, 0, 3); +INSERT INTO `area` VALUES (713528, 713500, '瑞穗乡', 2, 0, 3); +INSERT INTO `area` VALUES (713529, 713500, '富里乡', 2, 0, 3); +INSERT INTO `area` VALUES (713530, 713500, '秀林乡', 2, 0, 3); +INSERT INTO `area` VALUES (713531, 713500, '万荣乡', 2, 0, 3); +INSERT INTO `area` VALUES (713532, 713500, '卓溪乡', 2, 0, 3); +INSERT INTO `area` VALUES (713600, 710000, '澎湖县', 2, 0, 2); +INSERT INTO `area` VALUES (713601, 713600, '马公市', 2, 0, 3); +INSERT INTO `area` VALUES (713621, 713600, '湖西乡', 2, 0, 3); +INSERT INTO `area` VALUES (713622, 713600, '白沙乡', 2, 0, 3); +INSERT INTO `area` VALUES (713623, 713600, '西屿乡', 2, 0, 3); +INSERT INTO `area` VALUES (713624, 713600, '望安乡', 2, 0, 3); +INSERT INTO `area` VALUES (713625, 713600, '七美乡', 2, 0, 3); +INSERT INTO `area` VALUES (810000, 0, '香港特别行政区', 2, 0, 1); +INSERT INTO `area` VALUES (810100, 810000, '香港岛', 2, 0, 2); +INSERT INTO `area` VALUES (810101, 810100, '中西区', 2, 0, 3); +INSERT INTO `area` VALUES (810102, 810100, '湾仔区', 2, 0, 3); +INSERT INTO `area` VALUES (810103, 810100, '东区', 2, 0, 3); +INSERT INTO `area` VALUES (810104, 810100, '南区', 2, 0, 3); +INSERT INTO `area` VALUES (810200, 810000, '九龙', 2, 0, 2); +INSERT INTO `area` VALUES (810201, 810200, '油尖旺区', 2, 0, 3); +INSERT INTO `area` VALUES (810202, 810200, '深水埗区', 2, 0, 3); +INSERT INTO `area` VALUES (810203, 810200, '九龙城区', 2, 0, 3); +INSERT INTO `area` VALUES (810204, 810200, '黄大仙区', 2, 0, 3); +INSERT INTO `area` VALUES (810205, 810200, '观塘区', 2, 0, 3); +INSERT INTO `area` VALUES (810300, 810000, '新界', 2, 0, 2); +INSERT INTO `area` VALUES (810301, 810300, '荃湾区', 2, 0, 3); +INSERT INTO `area` VALUES (810302, 810300, '屯门区', 2, 0, 3); +INSERT INTO `area` VALUES (810303, 810300, '元朗区', 2, 0, 3); +INSERT INTO `area` VALUES (810304, 810300, '北区', 2, 0, 3); +INSERT INTO `area` VALUES (810305, 810300, '大埔区', 2, 0, 3); +INSERT INTO `area` VALUES (810306, 810300, '西贡区', 2, 0, 3); +INSERT INTO `area` VALUES (810307, 810300, '沙田区', 2, 0, 3); +INSERT INTO `area` VALUES (810308, 810300, '葵青区', 2, 0, 3); +INSERT INTO `area` VALUES (810309, 810300, '离岛区', 2, 0, 3); +INSERT INTO `area` VALUES (820000, 0, '澳门特别行政区', 2, 0, 1); +INSERT INTO `area` VALUES (820100, 820000, '澳门半岛', 2, 0, 2); +INSERT INTO `area` VALUES (820101, 820100, '花地玛堂区', 2, 0, 3); +INSERT INTO `area` VALUES (820102, 820100, '圣安多尼堂区', 2, 0, 3); +INSERT INTO `area` VALUES (820103, 820100, '大堂区', 2, 0, 3); +INSERT INTO `area` VALUES (820104, 820100, '望德堂区', 2, 0, 3); +INSERT INTO `area` VALUES (820105, 820100, '风顺堂区', 2, 0, 3); +INSERT INTO `area` VALUES (820200, 820000, '氹仔岛', 2, 0, 2); +INSERT INTO `area` VALUES (820201, 820200, '嘉模堂区', 2, 0, 3); +INSERT INTO `area` VALUES (820300, 820000, '路环岛', 2, 0, 2); +INSERT INTO `area` VALUES (820301, 820300, '圣方济各堂区 ', 2, 0, 3); +INSERT INTO `area` VALUES (990000, 0, '海外', 2, 0, 1); +INSERT INTO `area` VALUES (990100, 990000, '海外', 2, 0, 2); + +SET FOREIGN_KEY_CHECKS = 1; +``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/各个数据库账号密码.md b/WebMVC/WebMVCApi/md/各个数据库账号密码.md new file mode 100644 index 0000000..671ab5a --- /dev/null +++ b/WebMVC/WebMVCApi/md/各个数据库账号密码.md @@ -0,0 +1,22 @@ +--- +icon: edit +date: 2023-03-06 +category: + - 私人配置 +headerDepth: 5 +--- + + +# 各个数据库账号密码 +mysql +local.wuanwanghao.top:3307 root ks125930. +local.wuanwanghao.top:3307 root ks125930. + +sqlserver +local.wuanwanghao.top:1433 ```SA Ks125930.``` ```wanghao ks125930.``` + +redis +local.wuanwanghao.top:6379 无 + +mongodb +local.wuanwanghao.top:27017 root ks125930. \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/各种软件应用,编程语言开发工具包默认安装路径环境变量配置.md b/WebMVC/WebMVCApi/md/各种软件应用,编程语言开发工具包默认安装路径环境变量配置.md new file mode 100644 index 0000000..9d963c5 --- /dev/null +++ b/WebMVC/WebMVCApi/md/各种软件应用,编程语言开发工具包默认安装路径环境变量配置.md @@ -0,0 +1,73 @@ +--- +icon: edit +date: 2023-04-02 +category: + - 系统配置 +headerDepth: 5 +--- + + +# 各种软件应用,编程语言开发工具包默认安装路径环境变量配置 +# 编程语言 +## nodejs: +### 环境变量 +NODE_HOME: sdk 路径 +NODE_PATH: nodejs 查找包的路径 一般指全局安装路径下 node_modules文件夹 +### 配置: +```prefix``` 全局安装node_cache的路径 +```cache``` 安装node_cache缓存位置 +#### 命令 +```shell +npm config set prefix "sdk 路径\node_global" +npm config set cache "sdk 路径\node_cache" +``` +#### 配置文件 +也可以在用户目录下修改```.npmrc```文件来指定 +``` +prefix=sdk 路径\node_global +cache=sdk 路径\node_cache +``` +### path 修改 +path 需配置添加 node_global路径 ,和 %NODE_HOME%\bin + + +## java +### 环境变量 +JAVA_HOME: sdk路径 +### path 修改 +path 需配置添加 %JAVA_HOME%\bin + +## golang +### 环境变量 +GOROOT: sdk路径 +GOPATH: 依赖包安装路径 +### path 修改 +path 需配置添加 %GOROOT%\bin ,%GOPATH%\bin + + +## kotlin +### 环境变量 +KONAN_DATA_DIR: 数据缓存路径 + + + +# 工具 +## gradle +### 环境变量 +GRADLE_HOME: gradle安装路径 +GRADLE_USER_HOME: 用户缓存数据路径 +### path 修改 +path 需配置添加 %GRADLE_HOME%\bin + + +## android +### 环境变量 +ANDROID_SDK_ROOT: sdk路径 +ANDROID_SDK_HOME: 用户缓存和虚拟机数据路径, + +## vcpkg +### 环境变量 +VC_PKG_HOME: vcpkg 安装路径 +VCPKG_DEFAULT_BINARY_CACHE:vcpkg 下载二进制安装包缓存路径 +### path 修改 +path 需配置添加 %VC_PKG_HOME% diff --git a/WebMVC/WebMVCApi/md/域名添加SSL证书.md b/WebMVC/WebMVCApi/md/域名添加SSL证书.md new file mode 100644 index 0000000..425c1fe --- /dev/null +++ b/WebMVC/WebMVCApi/md/域名添加SSL证书.md @@ -0,0 +1,67 @@ +--- +icon: edit +date: 2021-09-26 +category: + - 网站搭建 +tag: + - SSL + - 域名 + - HTTPS +headerDepth: 5 +--- + + +# 域名添加SSL证书 + # 域名添加SSL证书 + > 我们的服务器购买域名并解析后,发现访问的时候搜索栏一直显示不安全,这样我们搭建的网站很难吸引到人过来访问,觉得咱们的网站是钓鱼网站 +![image.png](/upload/2021/09/image-91fa2295488f4ebfb10b374d1835b6ae.png) +这时我们就需要给域名添加SSL证书了 + +## 操作指南 +### 步骤1:添加一键 HTTPS 域名 +登录 [证书管理控制台](https://console.cloud.tencent.com/ssl),并单击左侧菜单栏一键 **HTTPS**,进入一键 **HTTPS**管理页面。 +在一键 **HTTPS**管理页面中,单击一键添加。如下图所示: +>说明: +若你是首次使用,请在弹出的授权窗口中,授予对应权限。 + +![](https://main.qcloudimg.com/raw/e327528f08706299fef120e04c993099.png) + +在弹出的 “一键添加” 窗口中,配置相关信息。如下图所示: +![](https://main.qcloudimg.com/raw/5e8f1474ff34ca297f5ccf9f7ae57e6a.png) + +**填写域名**:请输入您需要进行一键 HTTPS 的域名。 +>说明 +填写的域名需要在工信部完成备案,否则将无法进行接入。详情请参见 备案概述。 + +**选择证书**:请选择已成功申请的证书。 +>说明 +选择的证书需与填写域名输入框填写的域名对应。例如,填写的域名为 ```cloud.tencent.com```,则选择绑定域名为 ```cloud.tencent.com``` 的证书。 + +**源站地址**:请根据您的实际需求选择**IP**与**域名**。 +- **IP**:请输入需要防护网站的真实 IP 源站地址,即源站的公网 IP 地址。 +- **域名**:请输入需要防护网站的真实源站域名。 + +**强制 HTTPS**:开启该功能,浏览器端的每个 HTTP 请求都会被跳转成 HTTPS 请求。例如,当浏览器使用 HTTP 协议访问 ```http://cloud.tencent.com ```时,将返回302状态码重定向到 HTTPS 协议访问 ```https://cloud.tencent.com```。 + +**回源协议**: 开启该功能,腾讯云将使用 HTTP 协议访问源站。例如,当浏览器使用 HTTP 或 HTTPS 协议访问 ```cloud.tencent.com``` 时,无论 HTTP 或 HTTPS 协议都将使用 HTTP 协议访问源站。 + +**回源端口**:请根据您的实际需求选择回源端口。默认情况下支持443与8443,若您开启回源协议,则为80与8080。 +单击确定,即可生成配置实例。如下图所示: +![](https://main.qcloudimg.com/raw/2c548a3cf3bc61f73512a57150319cec.png) + +### 步骤2:配置 CNAME 记录 +>说明: +> - 添加一键 HTTPS 域名后,还需配置对应的 CNAME 记录后,接入才可正常生效。 +> - 配置 CNAME 记录步骤以腾讯云配置 CNAME 记录为例,若您的一键 HTTPS 域名解析未在 DNSPod DNS 解析托管,具体操作请咨询您的域名解析商或将域名托管至 DNSPod DNS 解析后,再进行配置 CNAME 记录。详情请参见 域名托管至 DNSPod DNS 解析。 + +**一键添加 CNAME 记录** + +手动添加 CNAME 记录 +>说明 +若您的域名解析已在 DNSPod DNS 解析进行托管,可直接一键添加 CNAME 记录。 + +在 "一键 HTTPS" 管理页面,查看您需要进行配置 CNAME 记录的实例,单击 + 。如下图所示: +![](https://main.qcloudimg.com/raw/29802e182d7b4ea87573c07df81ec119.png) +在弹出的 “温馨提示” 窗口中,单击确定。即可添加记录。如下图所示: +![](https://main.qcloudimg.com/raw/c0efc2dc88bb465e19f3b58e960f7c1e.png) + diff --git a/WebMVC/WebMVCApi/md/域名添加SSL证书二.md b/WebMVC/WebMVCApi/md/域名添加SSL证书二.md new file mode 100644 index 0000000..f9dad9b --- /dev/null +++ b/WebMVC/WebMVCApi/md/域名添加SSL证书二.md @@ -0,0 +1,133 @@ +--- +icon: edit +date: 2021-09-26 +category: + - 网站搭建 +tag: + - SSL + - 域名 + - HTTPS +headerDepth: 5 +--- + + +# 域名添加SSL证书二 + # 域名添加SSL证书 + +## 证书申请 +登录 [证书管理控制台](https://console.cloud.tencent.com/ssl) + +点击申请免费证书 +![image.png](/upload/2021/09/image-44a5ae01703240c5bb8a71cae2803855.png) +点击确定 +![image.png](/upload/2021/09/image-1fc6d3a51b9e44dfb728b002a41da8b5.png)**粗体** +填写信息 +![image.png](/upload/2021/09/image-e81640982af647d8825d6623781efb59.png) + +接下来步骤走完就行了,没什么难的地方,最后到这个页面下载下来生成的证书 +![image.png](/upload/2021/09/image-403a0e5f29ee49bda821144b0be40b9f.png) + + +## 证书安装 +已在 SSL 证书管理控制台 中下载并解压缩 ```cloud.tencent.com``` 证书文件包到本地目录。 + +解压缩后,可获得相关类型的证书文件。其中包含 Nginx 文件夹和 CSR 文件: + +**文件夹名称**:```Nginx``` + +**文件夹内容**: +```1_cloud.tencent.com_bundle.crt``` 证书文件 +```2_cloud.tencent.com.key``` 私钥文件 + +**CSR 文件内容**:``` cloud.tencent.com.csr ```文件 + +> 说明: +CSR 文件是申请证书时由您上传或系统在线生成的,提供给 CA 机构。安装时可忽略该文件。 + +使用 “WinSCP”(即本地与远程计算机间的复制文件工具)登录 Nginx 服务器。 +将已获取到的 1_cloud.tencent.com_bundle.crt 证书文件和 2_cloud.tencent.com.key 私钥文件从本地目录拷贝到 Nginx 服务器的 /usr/local/nginx/conf 目录(此处为 Nginx 默认安装目录,请根据实际情况操作)下。 + +远程登录 Nginx 服务器。例如,使用 “PuTTY” 工具 登录。 + +编辑 Nginx 根目录下的 conf/nginx.conf 文件。修改内容如下: +>说明: +此操作可通过执行 ```vim /usr/local/nginx/conf/nginx.conf``` 命令行编辑该文件。 + +由于版本问题,配置文件可能存在不同的写法。例如:Nginx 版本为 +nginx/1.15.0 以上请使用 listen 443 ssl 代替 listen 443 和 ssl on。 + +``` conf +server { + #SSL 访问端口号为 443 + listen 443 ssl; + #填写绑定证书的域名 + server_name cloud.tencent.com; + #证书文件名称 + ssl_certificate 1_cloud.tencent.com_bundle.crt; + #私钥文件名称 + ssl_certificate_key 2_cloud.tencent.com.key; + ssl_session_timeout 5m; + #请按照以下协议配置 + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。 + ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; + ssl_prefer_server_ciphers on; + location / { + #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。 + root html; + index index.html index.htm; + } + } +``` +在 Nginx 根目录下,通过执行以下命令验证配置文件问题。 +``` conf +./sbin/nginx -t +``` +若存在,请您重新配置或者根据提示修改存在问题。 +若不存在,请执行 步骤7。 +重启 Nginx,即可使用 ```https://cloud.tencent.com``` 进行访问。 +HTTP 自动跳转 HTTPS 的安全配置(可选) +如果您需要将 HTTP 请求自动重定向到 HTTPS。您可以通过以下操作设置: + +根据实际需求,选择以下配置方式: + +在页面中添加 JS 脚本。 + +在后端程序中添加重定向。 + +通过 Web 服务器实现跳转。 + +Nginx 支持 rewrite 功能。若您在编译时没有去掉 pcre,您可在 HTTP 的 server 中增加 return 301 https://$host$request_uri;,即可将默认80端口的请求重定向为 HTTPS。修改如下内容: + +说明: +未添加注释的配置语句,您按照下述配置即可。 +由于版本问题,配置文件可能存在不同的写法。例如:Nginx 版本为 nginx/1.15.0 以上请使用 listen 443 ssl 代替 listen 443 和 ssl on。 + +``` conf +server { + listen 443 ssl; + #填写绑定证书的域名 + server_name cloud.tencent.com; + #证书文件名称 + ssl_certificate 1_cloud.tencent.com_bundle.crt; + #私钥文件名称 + ssl_certificate_key 2_cloud.tencent.com.key; + ssl_session_timeout 5m; + ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_prefer_server_ciphers on; + location / { + #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。 + root html; + index index.html index.htm; + } +} +server { + listen 80; + #填写绑定证书的域名 + server_name cloud.tencent.com; + #把http的域名请求转成https + return 301 https://$host$request_uri; +} +``` +若修改完成,重启 Nginx。即可使用 ```http://cloud.tencent.com```进行访问。 diff --git a/WebMVC/WebMVCApi/md/大概呢.md b/WebMVC/WebMVCApi/md/大概呢.md new file mode 100644 index 0000000..c7e6f08 --- /dev/null +++ b/WebMVC/WebMVCApi/md/大概呢.md @@ -0,0 +1,11 @@ +--- +icon: edit +date: 2023-03-18 +headerDepth: 5 +--- + + +# 大概呢 + \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/完善 .Net Core 项目 — Entity Framework Core 入门 (ORM组件).md b/WebMVC/WebMVCApi/md/完善 .Net Core 项目 — Entity Framework Core 入门 (ORM组件).md new file mode 100644 index 0000000..389a9f3 --- /dev/null +++ b/WebMVC/WebMVCApi/md/完善 .Net Core 项目 — Entity Framework Core 入门 (ORM组件).md @@ -0,0 +1,12 @@ +--- +icon: edit +date: 2023-03-07 +category: + - .Net +headerDepth: 5 +--- + + +# 完善 .Net Core 项目 — Entity Framework Core 入门 (ORM组件) +转载 [完善 .Net Core 项目 — Entity Framework Core 入门 (ORM组件)](https://zhuanlan.zhihu.com/p/35652195/) +博主写的非常全面 \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/开发者福利chatGPT软件Build Software. Fast.md b/WebMVC/WebMVCApi/md/开发者福利chatGPT软件Build Software. Fast.md new file mode 100644 index 0000000..0c7796a --- /dev/null +++ b/WebMVC/WebMVCApi/md/开发者福利chatGPT软件Build Software. Fast.md @@ -0,0 +1,25 @@ +--- +icon: edit +date: 2023-04-11 +category: + - 开发工具 +tag: + - cursor + - chatgpt +headerDepth: 5 +--- + + +# 开发者福利chatGPT软件Build Software. Fast +推荐一款ide 注册登录后可以免费试用chatgpt 来写代码 + +[开发者福利chatGPT软件Build Software. Fast](https://blog.csdn.net/qq_19309473/article/details/129701574?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22129701574%22%2C%22source%22%3A%22qq_19309473%22%7D&fromshare=blogdetail) + +1、软件简介 +Build Software. Fast.是一款可以在编辑器中使用 openAI GPT-4 模型编写的软件 + +官网地址:[https://www.cursor.so/](https://www.cursor.so/) + +如果官网下载速度慢,可以选择下方的阿里云盘链接进行下载。 + +阿里云盘下载地址:[阿里云盘分享](https://www.aliyundrive.com/s/e6NcPmw1tzX) diff --git a/WebMVC/WebMVCApi/md/打开CMD时自动执行命令.md b/WebMVC/WebMVCApi/md/打开CMD时自动执行命令.md new file mode 100644 index 0000000..9eec06c --- /dev/null +++ b/WebMVC/WebMVCApi/md/打开CMD时自动执行命令.md @@ -0,0 +1,19 @@ +--- +icon: edit +date: 2022-10-14 +category: + - 系统配置 +headerDepth: 5 +--- + + +# 打开CMD时自动执行命令 +# 注册表编辑器打开路径 +``` +计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor +``` +# 新建字符串值 +![image](/upload/2022/10/image.png) + +# 修改名字 Autorun 值:自定义要执行的命令 +![image-1665731022209](/upload/2022/10/image-1665731022209.png) \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/类似gvm 和 nvm 的Java版本管理工具 j.md b/WebMVC/WebMVCApi/md/类似gvm 和 nvm 的Java版本管理工具 j.md new file mode 100644 index 0000000..387c3da --- /dev/null +++ b/WebMVC/WebMVCApi/md/类似gvm 和 nvm 的Java版本管理工具 j.md @@ -0,0 +1,65 @@ +--- +icon: edit +date: 2023-03-31 +category: + - 系统配置 + - Java +tag: + - jvm + - java_version_manager + - nvm + - gvm + - go +headerDepth: 5 +--- + + +# 类似gvm 和 nvm 的Java版本管理工具 j +# j +Java Version Manager + +[官网](https://github.com/forget-the-bright/j) + +![image](https://user-images.githubusercontent.com/56473277/228444767-6cc15881-69a6-4ed1-8b30-f7c19413fde0.png) + + +## 安装 + [下载](https://github.com/forget-the-bright/j/releases) 下载自己需要的版本, 到自己自定义的目录 修改可执行文件名称为j + + 默认文件下载安装在用户目录下 ```.j```目录,目录下 ```versions```, ```downloads```, ```java``` 分别是本地安装目录,安装包下载目录,当前使用的java版本目录 + + 将 JAVA_HOME 配置为 ```USER_HOME\.j\java``` + + 指定安装目录需要 添加环境变量 ```J_HOME``` 之后将 JAVA_HOME 设置为 ```J_HOME\.j\java``` 即可 +## 命令 + +### 列出 + +列出所有可安装版本 +``` shell +j ls-remote +``` +![image](https://user-images.githubusercontent.com/56473277/228444893-1ae5779e-74a2-4884-9c7d-09aa533d644e.png) + +列出本地安装版本 +``` shell +j ls +``` +![image](https://user-images.githubusercontent.com/56473277/228177030-defae4d2-77ba-4ded-9598-953330ac6cd8.png) + +### 下载 +``` shell +j install 8 +``` +![image](https://user-images.githubusercontent.com/56473277/228178315-9491c998-c839-441f-8d5e-78578273f57c.png) +![image](https://user-images.githubusercontent.com/56473277/228178398-59382b04-ae1d-443a-9e20-ba41ab65ae7c.png) + +### 切换版本 +``` shell +j use 17 +``` +![image](https://user-images.githubusercontent.com/56473277/228178562-509f752f-134e-4b44-b220-26ed7fc9b33c.png) + + + + diff --git a/WebMVC/WebMVCApi/md/美国地址生成器.md b/WebMVC/WebMVCApi/md/美国地址生成器.md new file mode 100644 index 0000000..e173c08 --- /dev/null +++ b/WebMVC/WebMVCApi/md/美国地址生成器.md @@ -0,0 +1,36 @@ +--- +icon: edit +date: 2023-04-14 +category: + - 开发工具 +headerDepth: 5 +--- + + +# 美国地址生成器 + +网址一:https://www.shenfendaquan.com/ + +网址二:https://www.meiguodizhi.com/ + +网址三:http://www.haoweichi.com/ + + + +上面这三个目前均能使用,若失效,拉到文末给我留言,我第一时间给你们找新的。 + + + +五个美国免税州: + + + +蒙大拿州 Montana +俄勒冈州 Oregon +阿拉斯加州 Alaska +特拉华州 Delaware +新罕布什尔州 New Hampshire + +在美国地址生成器中输入免税州的英文名称,即可生成一份完整的信息。 + +不管是不是要给 Apple ID 充值礼品卡建议都选免税州。 \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/蚂蚁加速器下载.md b/WebMVC/WebMVCApi/md/蚂蚁加速器下载.md new file mode 100644 index 0000000..818ac76 --- /dev/null +++ b/WebMVC/WebMVCApi/md/蚂蚁加速器下载.md @@ -0,0 +1,49 @@ +--- +icon: edit +date: 2021-09-17 +category: + - 加速器 +tag: + - vpn +headerDepth: 5 +--- + + +# 蚂蚁加速器下载 +![image.png](http://49.232.133.249:8090/upload/2021/09/image-2ec5da5a985643119645d50a27049327.png) +## 官网 +## https://b.antss.me/ +### 下载地址: +### https://download.youjinyongka.com/antss/ant_1.3.5.zip +### readme.txt: +```txt +蚂蚁加速器,帮助你自由安全的畅游互联网。 +本软件绝对安全,请放心使用。蚂蚁加速器官网地址:https://web.lanshuapi.com/ +本软件需要微软公司的 .NET Framework 4.7.2 运行环境支持,如果没有安装,请前往下载 +.NET Framework 4.7.2 下载地址:https://dotnet.microsoft.com/download/thank-you/net472-offline +如果你使用本软件觉得还满意,请推荐给你身边的朋友,谢谢支持! + +常见问题解决: + 蚂蚁加速器是单文件程序,第一次运行需要权限解压相关文件。 + 在第一次运行时要求管理员权限或被杀毒软件拦截创建文件的行为时请选择同意。 + + 1.使用最新版蚂蚁加速器 2.重启电脑,切换线路,用 IE 浏览器查看。其它浏览器代理失败原因可以自行百度解决。 + 2.默认全局模式,访问国内网站会卡,可切换为 PAC 模式。 + + 如果免费流量已使用完,可以通过推广新用户或者充值获取继续使用的时间。 + 充值完不会立刻到账,请15分钟后退出系统再重新打开查看。 + + 如发现连接后无法正常使用,请解压蚂蚁加速器到非系统盘根目录。 + 在系统设置里可以更改使用的端口号,若更改失败请尝试以管理员权限运行程序。 + 部分用户始终需要管理员权限才能使用。 + + 获取不到服务器线路,或者不显示服务器线路延迟的时候可以重置一下网络,命令窗口:netsh winsock reset。 + + 终极解决方案:安装虚拟机,在干净的环境中检查是否可以使用 + +对 ant.exe 的签名特征如下: +11.04 MB (11571200 bytes) + MD5 7dcd8124f99f2760839c852cc66909cf + SHA-1 d7eb06978bc6f5b761503ebb2ac6f7bfdaccce3b + SHA-256 3bfc5fa00bf3e07596a51b5b4a2f4e8195da6efb6e6eafcfb16c34d7f43b25f2 +``` \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/解决mybatis-plus无法根据多个主键增删查改.md b/WebMVC/WebMVCApi/md/解决mybatis-plus无法根据多个主键增删查改.md new file mode 100644 index 0000000..e16cbc4 --- /dev/null +++ b/WebMVC/WebMVCApi/md/解决mybatis-plus无法根据多个主键增删查改.md @@ -0,0 +1,14 @@ +--- +icon: edit +date: 2023-02-23 +category: + - Java +tag: + - Mybatis +headerDepth: 5 +--- + + +# 解决mybatis-plus无法根据多个主键增删查改 +**转载** +[解决mybatis-plus无法根据多个主键增删查改](https://blog.csdn.net/qq_65377318/article/details/128878674#t1) \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/解决nginx SSL The plain HTTP request was sent to HTTPS port.md b/WebMVC/WebMVCApi/md/解决nginx SSL The plain HTTP request was sent to HTTPS port.md new file mode 100644 index 0000000..03dcaa9 --- /dev/null +++ b/WebMVC/WebMVCApi/md/解决nginx SSL The plain HTTP request was sent to HTTPS port.md @@ -0,0 +1,50 @@ +--- +icon: edit +date: 2022-10-30 +category: + - 系统配置 + - Linux +headerDepth: 5 +--- + + +# 解决nginx SSL The plain HTTP request was sent to HTTPS port +### 问题 +现在越来越多的网站要求http访问转为更为安全的https访问,很多使用nginx部署的前端应用可以很方便的使用反向代理来实现,切换后,用http访问就会出现 "The plain HTTP request was sent to HTTPS port"的错误页面。 + +### 解决思路 +将此错误页面重定向到指定的https地址即可 + +### 解决方法 +假设端口号是8443: +``` +server { + listen 8443 ssl; + ssl_certificate ssl_cert.pem; + ssl_certificate_key ssl_server.key; + server_name your_domain.com; + error_page 497 301 =307 https://$host:$server_port$request_uri; + location / { + .... + } +} +``` +另外,如果是自有域名,http和https端口都使用默认端口的话,只要将http的请求重定向到https即可 +``` +server { + listen 80; + listen 443 ssl; + ssl_certificate ssl_cert.pem; + ssl_certificate_key ssl_server.key; + server_name your_domain.com; + if ($scheme = http) { + return 301 https://$host$uri?$args; + } + location / { + .... + } +} + +``` +### 参考链接 +[nginx_非标准端口_同端口_http_自动跳转_https](https://blog.csdn.net/qq_30665009/article/details/124464699) diff --git a/WebMVC/WebMVCApi/md/解决vc 中 vcpkg grpc链接器错误.md b/WebMVC/WebMVCApi/md/解决vc 中 vcpkg grpc链接器错误.md new file mode 100644 index 0000000..ff6f0d7 --- /dev/null +++ b/WebMVC/WebMVCApi/md/解决vc 中 vcpkg grpc链接器错误.md @@ -0,0 +1,11 @@ +--- +icon: edit +date: 2022-07-05 +category: + - cpp +headerDepth: 5 +--- + + +# 解决vc 中 vcpkg grpc链接器错误 +[尽管启用了自动链接(vcpkg),但VisualStudio for grpc中仍存在链接器错误](https://www.5axxw.com/questions/content/gmlhg4) \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/许单单认知提升-第二讲-作业.md b/WebMVC/WebMVCApi/md/许单单认知提升-第二讲-作业.md new file mode 100644 index 0000000..6704c45 --- /dev/null +++ b/WebMVC/WebMVCApi/md/许单单认知提升-第二讲-作业.md @@ -0,0 +1,19 @@ +--- +icon: edit +date: 2022-09-21 +headerDepth: 5 +--- + + +# 许单单认知提升-第二讲-作业 +# 闻 + 1. 太爱学习其实是一种懒惰,只有去做认为困难的事情才能得到成长。 + 2. 付出努力得到的回报是一种正反馈,能使我们在努力的道路越走越远。 + 3. 生活中的苦难会给我们带来一种负反馈,也能使我们想要改变自己。 + 4. 有时候在自己还不够成熟,遇到贵人的指点。其实不要过于去思考里面的道理,要简单的相信去实践。 +5. pony在经历了前期的求职历练的困难,最终爆发了自己的能力。获得了成功。不要刚开始工作就想着薪资的高低,要想着在这份工作能获得一下比薪资更重要的东西,能力。而能力又是从做自己认为困难的做不到事情中获得的。成功不是一蹴而就的,而是厚积薄发的。 +# 思 + 1. 发现成功的前提,都是要有能力的积累。在没有达到那个门槛的时候,不要想的太多,而是把自己做好。去做各种能够提升自己的事情和工作,做自己认为困难和不愿意去做的工作,并想方设法的完成他。从而积累经验和能力。 + 2. 在认知还不够成熟的时候,遇到贵人的指点,不要把自己当时心镜带入思考指点中的对错。不够成熟的时候的见解往往是错的。而要去简单的相信。不要带入过多的思考得失。去实践就行了。 +# 修 + 考虑当下自己的情况,综合考虑自己应该做什么。自己当前的能力还是远远不够的,还要努力的学习,看到生活中一些工作任务,别人不愿意做的任务,思考下做这些任务,能否得到成长。如果能就可以尝试去做。 \ No newline at end of file diff --git a/WebMVC/WebMVCApi/md/静态动态博客Blog框架简介-转载.md b/WebMVC/WebMVCApi/md/静态动态博客Blog框架简介-转载.md new file mode 100644 index 0000000..c50576f --- /dev/null +++ b/WebMVC/WebMVCApi/md/静态动态博客Blog框架简介-转载.md @@ -0,0 +1,131 @@ +--- +icon: edit +date: 2023-03-22 +category: + - 网站搭建 +tag: + - 静态博客 + - 动态博客 +headerDepth: 5 +--- + + +# 静态/动态博客Blog框架简介-转载 +转载-博主写的不错 + +简言之,Blog就是以网络作为载体,简易迅速便捷地发布自己的心得,及时有效轻松地与他人进行交流,再集丰富多彩的个性化展示于一体的综合性平台。 + +### 博客搭建的方式 +总体来说,Blog搭建的方式可以分为静态博客和动态博客。顾名思义,静态博客:博文内容是通过文档(如:.md文件等)记录的(一个独立的文件),通过生成工具编译成最终的hml、css、js等静态文件,然后部署在静态Server服务器上或Web托管至数据仓库(如:Github),即可在互联网中被访问,不需要数据库的支撑。动态博客:是以数据库技术为基础,其博文内容是通过数据库记录存储的,主要特点体现在交互性;动不是指网页中的页面元素或特效在动,而是与后台数据库进行交互和数据传递(如:注册登录、评论、用户管理等)。 + +常见的博客框架: + +#### 👀静态框架 +Hexo (https://hexo.io/zh-cn/) + +Hugo (https://www.gohugo.cn/) + +VuePress (https://www.vuepress.cn/) + +Jekyll (https://www.jekyll.com.cn/) + +docsite (https://docsite.js.org/) + +#### 👀动态框架 +WordPress (https://wordpress.org/) + +Typecho (https://typecho.org/) + +Halo (https://halo.run/) + +Solo (https://b3log.org/solo/) + +### ⛄框架简介 +#### 👀Hexo +Hexo 是一个基于Node.js的快速、简洁且高效的静态博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。Hexo具有丰富的主题、插件系统。 + +##### 优点: + +纯静态博客,部署简单、成本低廉、运行优化非常高效。 +Hexo 静态博客框架可以在云端,也可以在本地电脑上甚至手机上。 +Hexo 框架的博客网站没有网站后台,不存在后台安全漏洞的问题。 +因为是纯静态的,几乎所有的 CDN 服务都可以完美的加速提升浏览速度。 +搜索引擎对纯静态网站有天然的青睐度,收录、权重优先权明显。 +纯静态网站会让网络攻击成本大大的增加也就是说纯静态网站被攻击的可能性更低了。 +#### 👀Hugo +Hugo 被称为是世界上最快的构建网站的框架。Hugo 是一个快速且现代的静态网站生成器,采用 Go 编程语言开发,Hugo 的设计目标是让创建网站重新变得有趣。Hugo 是一个通用的网站框架。从技术上讲,Hugo 是一个静态站点生成器。与动态构建页面的系统不同,Hugo 在创建或更新内容时构建页面。由于网站的浏览频率远高于编辑频率,因此 Hugo 旨在为您的网站最终用户提供最佳的浏览体验,并为网站作者提供理想的写作体验。使用 Hugo 构建的网站非常快速和安全。Hugo 构建的网站可以托管在任何地方,包括 Netlify、Heroku、GoDaddy、DreamHost、GitHub Pages、GitLab Pages、Surge、Aerobatic、Firebase、Google Cloud Storage、Amazon S3、Rackspace、Azure, 和 CloudFront,并且与 CDN 更配。Hugo 网站在运行时不需要数据库或依赖于诸如 Ruby、Python 或 PHP 等昂贵的运行时环境。我们认为 Hugo 是一个理想的网站创建工具,具有几乎即时的构建时间,能够在网站修改时即刻重建。 + +##### 优点: + +飞快的构建速度。在等待网站构建时有多无聊?Hugo 是同类中最快的工具。每个页面的构建时间小于一毫秒时,网站的平均构建时间不到一秒钟。 +健壮的内容管理。灵活性为王。Hugo 是内容战略家的梦想。Hugo 支持无限的内容类型、分类、菜单、动态 API 驱动的内容等,所有这些都无需插件。 +短代码(shortcodes)。Hugo 短代增强了 Markdown 的能力。我们喜欢 Markdown 语法的漂亮、简洁,但有时我们需要更多的灵活性。Hugo 短代码满足了美观和灵活的需求。 +内置模板。Hugo 提供的通用模式让您的工作迅速完成。Hugo 提供了预制的模板,可以快速完成 SEO、评论、统计和其他功能。一行代码,完成所有工作。 +支持多语言和 i18n。原生支持多语言。Hugo 为多语言站点提供了完整的 i18n 支持,并且与 Hugo 用户喜欢的单语言站点的开发体验完全相同。 +定制输出。HTML 够吗?Hugo 允许以多种格式输出您的内容,包括 JSON 或 AMP,并使您可以轻松创建自己的内容。 +#### 👀VuePress +VuePress 由两部分组成:第一部分是一个极简静态网站生成器 (opens new window),它包含由 Vue 驱动的主题系统和插件 API,另一个部分是为书写技术文档而优化的默认主题,它的诞生初衷是为了支持 Vue 及其子项目的文档需求。每一个由 VuePress 生成的页面都带有预渲染好的 HTML,也因此具有非常好的加载性能和搜索引擎优化(SEO)。同时,一旦页面被加载,Vue 将接管这些静态内容,并将其转换成一个完整的单页应用(SPA),其他的页面则会只在用户浏览到的时候才按需加载。 + +事实上,一个 VuePress 网站是一个由 Vue (opens new window)、Vue Router (opens new window)和 webpack (opens new window)驱动的单页应用。如果你以前使用过 Vue 的话,当你在开发一个自定义主题的时候,你会感受到非常熟悉的开发体验,你甚至可以使用 Vue DevTools 去调试你的自定义主题。在构建时,我们会为应用创建一个服务端渲染(SSR)的版本,然后通过虚拟访问每一条路径来渲染对应的HTML。这种做法的灵感来源于 Nuxt (opens new window)的 nuxt generate 命令,以及其他的一些项目,比如 Gatsby (opens new window)。 + +##### 优点: + +简洁至上。以 Markdown 为中心的项目结构,以最少的配置帮助你专注于写作。 +Vue 驱动。享受 Vue + webpack 的开发体验,可以在 Markdown 中使用 Vue 组件,又可以使用 Vue 来开发自定义主题。 +高性能。VuePress 会为每个页面预渲染生成静态的 HTML,同时,每个页面被加载的时候,将作为 SPA 运行。 +#### 👀Jekyll +Jekyll 是一个静态网站生成器。用你喜欢的标记语言书写内容并交给 Jekyll 处理,它将利用模板为你创建一个静态网站。你可以调整你想要的网址样式、在网站上显示哪些数据等等。jekyll是一个简单的免费的Blog生成工具,类似WordPress。但是和WordPress又有很大的不同,原因是jekyll只是一个生成静态网页的工具,不需要数据库支持。但是可以配合第三方服务,例如Disqus。最关键的是jekyll可以免费部署在Github上,而且可以绑定自己的域名。 + +##### 优点: + +简单。无需数据库、评论功能或频繁的版本更新—只需关注你的内容。 +静态。只用 Markdown、Liquid、HTML & CSS g就可以构建可部署的静态网站。 +博客。原生支持自定义链接、分类、静态页、文章以及自定义布局。 + +#### 👀 docsite +DocSite是一款集官网、文档、博客和社区为一体的静态开源站点的解决方案,具有简单易上手、上手不撒手的特质,同时支持react和静态渲染、PC端和移动端、支持中英文国际化、SEO、markdown文档、全局站点搜索、站点风格自定义、页面自定义等功能,借助DocSite,可以极大的提高搭建静态开源站点的效率 + +#### 👀WordPress +WordPress是一款能让您建立出色网站、博客或应用程序的开源软件。WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把 WordPress当作一个内容管理系统(CMS)来使用。WordPress是一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用PHP语言和MySQL数据库开发的,用户可以在支持 PHP 和 MySQL数据库的服务器上使用自己的博客。WordPress有许多第三方开发的免费模板,安装方式简单易用。不过要做一个自己的模板,则需要你有一定的专业知识。比如你至少要懂的标准通用标记语言下的一个应用HTML、CSS、PHP等相关知识。 + +##### 优点: + +WordPress 功能强大、扩展性强、生态丰富,这主要得益于其插件众多,易于扩充功能,基本上一个完整网站该有的功能,通过其第三方插件都能实现所有功能。 +wordpress搭建的博客对seo搜索引擎友好,收录也快,排名靠前。 +适合DIY,如果你是喜欢丰富内容的网站,那么wordpress可以很好地符合你的胃口。 +主题很多,网站上一大片都是wordpress的主题,各色各样,应有尽有! +wordpress备份和网站转移比较方便,原站点使用站内工具导出后,使用WordPress Importer插件就能方便地将内容导入新网站。 +wordpress有强大的社区支持,有上千万的开发者贡献和审查wordpress,所以wordpress是安全并且活跃的。 +#### 👀Typecho +Typecho是由type和echo两个词合成的,来自于开发团队的头脑风暴。Typecho基于PHP5开发,支持多种数据库,是一款内核强健﹑扩展方便﹑体验友好﹑运行流畅的轻量级开源博客程序。选用Typecho,搭建独一无二个人网络日志发布平台,享受创作的快乐。 + +##### 优点: + +轻量高效。仅仅 7 张数据表,加上不足 400KB 的代码,就实现了完整的插件与模板机制。超低的 CPU 和内存使用率,足以发挥主机的最高性能。 +先进稳定。原生支持 Markdown 排版语法,易读更易写。支持 BAE/GAE/SAE 等各类云主机,即使面对突如其来的高访问量,也能轻松应对。 +简洁友好。精心打磨过的操作界面,依然是你熟悉的面孔,更多了一份成熟与贴心。每一个像素的剪裁,都只为离完美更进一步。 +#### 👀Halo +Halo是一款基于Java语言,使用Spring Boot框架开发的博客系统,致力于打造最好的 Java 博客系统,且只想安安静静的做一个博客系统。 + +##### 优点: + +代码开源。我们的所有代码开源在 GitHub 上且处于积极维护状态,截止目前已经发布了 81 个版本。您也可以在上面提交您的问题或者参与代码贡献。 +易于部署。采用了程序与用户配置分离的方式,迁移和备份成本大大降低。您只需要一条命令即可运行成功,同时也支持 Docker 部署。 +REST API。提供了完善的 Content API 和 Admin API,你可以用于开发单页面模板,微信小程序,各种系统的插件等。 +模板系统完善的模板系统,支持自定义配置,支持在线安装和更新。开发主题也十分方便,欢迎大家参与主题的开发。 +附件系统。支持本地上传,阿里云 OSS/又拍云 OSS/七牛云 OSS/SM.MS 等云存储,你可以更方便的管理你文章中的附件。 +评论系统拥有独立的评论插件,使用 Vue 开发,只需在页面引入构建好的 JS 文件即可,完美地和主题相结合。目前已有多款评论组件,你可以非常方便的切换。 +#### 👀Solo +Solo 是一款基于Java语言有后台管理的,小而美的博客系统,专为程序员设计 + +##### 优点: + +Markdown 编辑器支持三种编辑模式:所见即所得 / 即时渲染 / 分屏预览。 +Hexo / Jekyll / Markdown 导入。 +SQL / JSON / Markdown 导出。 +拉取 GitHub 仓库和自动备份。 +内置 HTTPS+CDN 文件存储。 +支持生成导出静态站点,用于发布 GitHub Pages。 + +#### 转载: +[静态/动态博客Blog框架简介](https://blog.csdn.net/twg666/article/details/124748337)