SQL SERVER 2019 数据库迁入 SQL SERVER 2008

最关键的两步

1、要用SQL Server的导入和导出向导

2、要在过程中设置数据源为SQL Server Native Client 10.0

sqlserver

经过验证,以上方法虽未在迁移过程中报错,但还是不能用。

虽然前台可以正常显示,但是后台始终报错,后来通过排除方法,将网站数据库配置为测试服务器上的数据库时可以正常登录后台,由此可以得出这种数据库迁移方案还是不可行的。

解决方法:

思路:因为测试服务器上的数据库是用网站服务器数据库的备份来还原的,所以绝大部分的表格结构都是相同的,无非就是多添加了几个表格或者某个表格多加了几列。在不能进行数据库迁移的情况下,可以先把数据从测试服务器中导入到网站服务器。而后通过在数据导入过程中的报错信息对数据库中的表进行修改,从而适应数据。所以接下来的步骤是:

1、在测试数据库服务器上,选择生成脚本,而且仅导出数据,框架中选择2008,

2、将脚本传到网站服务器,运行脚本。

3、查看报错信息,因为有一部分数据也是重复的,所以会有大量的报错,只能一点点看,在看到“找不到对象”时就应该是网站服务器中缺少相关的表格

4、根据脚本中的信息得到表名,在测试服务器上拿到创建表格的create脚本,复制到网站服务器上运行,从而生成了表格,再将此表的数据单独导入,

5、再次导入全部数据,观察报错信息,发现有两个列在whir_U_SinglePage表上缺少两个列fileTitle、fileSize,方便起见,直接查看测试服务器的表的设计,在网站服务器上手动添加两列。再次导入数据后正常。

6、测试网站后台的登录,后台可以正常进入。

在此以为是网站数据库算是可以了,但今天发现在某些栏目进行更新时报错,说是fileTitle、fileSize列无效,经过耐心的排查,需要在功能模型中的单页图文中将这两列删掉,再从单页图文中通过字段管理增加这两列,再对刚才报错的栏目进行更新时已正常。

VS2022创建一个空网站

1、VS2022无法像之前版本一样创建一个空网站

打开VS2022工具->获取工具和功能

clip_image001

ASP.NET和Web开发中选择安装其他项目模板(早期版本)(建议全部安装)

单独安装这一个会报错:找不到“WebFormsVS17”的注册表项

clip_image002

安装完成后创建项目搜索ASP.NET空网站即可找到改模板

clip_image003

2、右键“使用visual studio打开”怎么删除?

桌面右键和文件资源管理器的右键中会包含“使用visual studio打开”选项,强迫症不太喜欢。
clip_image004
clip_image005
现将以上连个选项进行删除。

解决办法:

把以下两个注册表项删除。
建议:先保存导出,再删除。

# 桌面的右键
HKEY_CLASSES_ROOT\Directory\background\shell\AnyCode
# 资源管理器的右键
HKEY_CLASSES_ROOT\Directory\shell\AnyCode
·         1
·         2
·         3
·         4

clip_image006
clip_image007

3、给鼠标右键添加添加:新建Markdown文件

clip_image008
1、新建文本文档.txt文件输入以下内容

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.md]
@="Typora.exe"
[HKEY_CLASSES_ROOT\.md\ShellNew]
"NullFile"=""
[HKEY_CLASSES_ROOT\Typora.exe]
@="Markdown"
·         1
·         2
·         3
·         4
·         5
·         6
·         7

2、修改后缀名为.reg运行

发表在 VS

通过Redsocks将Kali Linux的流量进行代理

Redsocks 是一个代理重定向工具,可以将流量通过 SOCKS 或 HTTP 代理传递。你可以使用它在 Kali Linux 中将流量通过代理服务器。以下是设置和使用 Redsocks 的步骤: 1. 安装 Redsocks Redsocks 通常在 Kali Linux 上不可用,需要手动安装。首先,确保你有 git 和 build-essential 工具: sudo apt-get update
sudo apt-get install git build-essential
  1 2   然后,从 GitHub 上克隆 Redsocks 源代码并编译: git clone https://github.com/darkk/redsocks.git
cd redsocks
make
sudo make install
  1 2 3 4   2. 配置 Redsocks Redsocks 的配置文件默认位于 /etc/redsocks.conf。你可以创建或编辑这个配置文件。 sudo nano /etc/redsocks.conf
  1   以下是一个典型的配置示例: base {
     log_debug = on;
     log_info = on;
     log = “file:/var/log/redsocks.log”;
     daemon = off;
     redirector = iptables;
}

redsocks {
     local_ip = 127.0.0.1;
     local_port = 12345;
     ip = 127.0.0.1;
     port = 9050;
     type = socks5;
     login = “your_login”;
     password = “your_password”;
}
  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17   • local_ip 和 local_port 是 Redsocks 在本地监听的地址和端口。 • ip 和 port 是你要连接的代理服务器的地址和端口。 • type 可以是 socks4, socks5, http-connect, http-relay 等。 • 如果代理不需要身份验证,可以省略 login 和 password。  3. 设置 iptables 规则 使用 iptables 将流量重定向到 Redsocks 监听的端口: sudo iptables -t nat -N REDSOCKS
sudo iptables -t nat -A REDSOCKS -d 0.0.0.0/8 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 10.0.0.0/8 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 127.0.0.0/8 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 169.254.0.0/16 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 172.16.0.0/12 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 192.168.0.0/16 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 224.0.0.0/4 -j RETURN
sudo iptables -t nat -A REDSOCKS -d 240.0.0.0/4 -j RETURN
sudo iptables -t nat -A REDSOCKS -p tcp -j REDIRECT –to-ports 12345
sudo iptables -t nat -A OUTPUT -p tcp -j REDSOCKS
  1 2 3 4 5 6 7 8 9 10 11   这些规则会将本地 TCP 流量重定向到 Redsocks 监听的端口(此处为 12345)。 4. 启动 Redsocks 配置完成后,你可以启动 Redsocks: sudo redsocks -c /etc/redsocks.conf
  1   你可以将 Redsocks 作为后台守护进程运行,也可以在前台测试时查看日志输出。 5. 验证配置 启动 Redsocks 后,你可以尝试访问外网,使用curl来测试: curl -I https://www.google.com
  1   如果配置正确,你的流量应该通过代理服务器转发,并可以成功访问外网。 6. 停止和清理 如果你不再需要使用 Redsocks,可以停止 Redsocks 进程并清除 iptables 规则: sudo killall redsocks
sudo iptables -t nat -F REDSOCKS
sudo iptables -t nat -D OUTPUT -p tcp -j REDSOCKS
sudo iptables -t nat -X REDSOCKS
  1 2 3 4   这将停止 Redsocks 并还原网络配置。 通过这些步骤,你可以在 Kali Linux 中使用 Redsocks 将流量通过代理服务器。

win10添加静态路由

在Windows 10系统中添加静态路由不生效可能有多种原因,以下是一些排查和解决问题的步骤:

检查网络配置:

确认你的网络适配器配置正确,并且已经连接到网络。

确保你的IP地址、子网掩码、默认网关配置正确。

使用正确的命令:

使用netsh interface ipv4 show route命令查看当前的路由表。

使用netsh interface ipv4 add route命令添加静态路由。例如:netsh interface ipv4 add route dest=10.0.0.0/8 interface=”Local Area Connection” nexthop=192.168.1.1 metric=1。

实际为:netsh interface ipv4 add route 192.168.68.77/32 interface=”H” nexthop=10.0.0.1 metric=1

删除为:netsh interface ipv4 delete route 192.168.0.0/24 interface=”em1″ 192.168.23.2

检查路由配置:

确认添加的静态路由的目标网络和子网掩码正确。

如果有多个网络接口,确保指定了正确的接口。

确认下一跳(nexthop)地址可达且正确。

防火墙和安全设置:

检查Windows防火墙或其他安全软件是否阻止了路由。

网络策略:

在企业环境中,网络策略可能影响路由。需要检查域控制器的组策略设置。

权限问题:

确保你有足够的权限来添加静态路由。可能需要管理员权限。

命令提示符权限:

如果你使用命令提示符添加路由,确保你以管理员身份运行命令提示符。

重启网络服务:

有时重启网络服务或重启计算机可以解决问题。

检查硬件问题:

确保网络适配器没有物理损坏,并工作正常。

查阅文档或联系支持:

如果以上步骤都不能解决问题,建议查阅Windows官方文档或联系技术支持。

请按照这些步骤逐一排查问题,通常可以找到不生效的原因并解决。

aichiao.com恢复之感想

123

突然之间Aichiao.com不能用了,原来现在的云主机是强制使用了https协议 ,而有的样式表和JS文件却是以http的链接嵌入到页面中的,导致页面不正常,且不能够正常登录,也不能在后台进行管理,

之前想了很多办法都不行,现在可以了。

1、解决管理员密码不对的办法

       通过重新上传WordPress安装文件,重新安装,重新设置管理员密码在数据库中重新生成一个user表,将表中的用户名和密码复制到原来的user表中,可以实现正常登录

2、通过在wp-config.php中添加了以下代码来适应网站强制使用https协议的环境


$_SERVER['HTTPS'] = 'on';
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);

现在已经可以正常使用了

RE\BeautifulSoup\LXML运行时间对比

RE:

import re
import time
with open("豆瓣电影Top250.html",encoding="utf-8") as f:
s=f.read()
#print(s)
start_time=time.time()
ret = re.findall('<li>.*?<div class="item">.*?<div class="hd">.*?<span class="title">(.+?)</span>.*? <span>(.+?)人评价</span>',s,re.S)
print(ret)
end_time=time.time()
elapsed_time=end_time-start_time
print("代码执行时间:",elapsed_time,"秒")
--------------------------------------------------------运行结果----------------------------------------------------------------------------------------

C:\Users\user\PycharmProjects\pythonProject1\venv\Scripts\python.exe C:\Users\user\PycharmProjects\pythonProject1\regularex\提取.py
[(‘肖申克的救赎’, ‘2912555’), (‘霸王别姬’, ‘2150218’), (‘阿甘正传’, ‘2171334’), (‘泰坦尼克号’, ‘2202721’), (‘这个杀手不太冷’, ‘2305057’), (‘千与千寻’, ‘2255218’), (‘美丽人生’, ‘1332295’), (‘辛德勒的名单’, ‘1110787’), (‘星际穿越’, ‘1848980’), (‘盗梦空间’, ‘2071045’), (‘楚门的世界’, ‘1720585’), (‘忠犬八公的故事’, ‘1404616’), (‘海上钢琴师’, ‘1685059’), (‘三傻大闹宝莱坞’, ‘1866833’), (‘放牛班的春天’, ‘1317617’), (‘机器人总动员’, ‘1321945’), (‘疯狂动物城’, ‘1948593’), (‘无间道’, ‘1370841’), (‘控方证人’, ‘565051’), (‘大话西游之大圣娶亲’, ‘1540664’), (‘熔炉’, ‘935056’), (‘教父’, ‘972589’), (‘触不可及’, ‘1119658’), (‘当幸福来敲门’, ‘1526688’), (‘末代皇帝’, ‘890123’)]

代码执行时间: 0.000997304916381836 秒

进程已结束,退出代码为 0

**************************************************************************************************************************************************************************************

BeautifulSoup:

from bs4 import BeautifulSoup
import re
import time
soup = BeautifulSoup(open("豆瓣电影Top250.html",encoding='utf-8'),'html.parser')
start_time=time.time()
rets = soup.findAll(class_="item")
comment_reg=re.compile(r"(\d+)人评价")
movie_list=[{'title':ret.find(class_='title').text,'rating_num':ret.find(class_='rating_num').text,
'comment_num':ret.find(string=comment_reg)[:-3]}for ret in rets]
#for ret in rets:
# title = ret.find(class_='title').text
# rating_num=ret.find(class_='rating_num').text
# comment_num=ret.find(string=comment_reg)[:-3]
# movie={}
# movie['title']=title
# movie['rating_num']=rating_num
# movie['comment_num']=comment_num
# movie_list.append(movie)
# print(title,rating_num,comment_num)

# for movie in movie_list:
# print(movie)
print(movie_list)
end_time=time.time()
elasped_time=end_time-start_time
print("代码执行时间: ",elasped_time,"秒")
------------------------------------------------------------------------运行结果--------------------------------------------------------------------------

C:\Users\user\PycharmProjects\pythonProject1\venv\Scripts\python.exe C:\Users\user\PycharmProjects\pythonProject1\http\review\BS4_L\提取电影信息.py
[{‘title’: ‘肖申克的救赎’, ‘rating_num’: ‘9.7’, ‘comment_num’: ‘2912555’}, {‘title’: ‘霸王别姬’, ‘rating_num’: ‘9.6’, ‘comment_num’: ‘2150218’}, {‘title’: ‘阿甘正传’, ‘rating_num’: ‘9.5’, ‘comment_num’: ‘2171334’}, {‘title’: ‘泰坦尼克号’, ‘rating_num’: ‘9.5’, ‘comment_num’: ‘2202721’}, {‘title’: ‘这个杀手不太冷’, ‘rating_num’: ‘9.4’, ‘comment_num’: ‘2305057’}, {‘title’: ‘千与千寻’, ‘rating_num’: ‘9.4’, ‘comment_num’: ‘2255218’}, {‘title’: ‘美丽人生’, ‘rating_num’: ‘9.6’, ‘comment_num’: ‘1332295’}, {‘title’: ‘辛德勒的名单’, ‘rating_num’: ‘9.6’, ‘comment_num’: ‘1110787’}, {‘title’: ‘星际穿越’, ‘rating_num’: ‘9.4’, ‘comment_num’: ‘1848980’}, {‘title’: ‘盗梦空间’, ‘rating_num’: ‘9.4’, ‘comment_num’: ‘2071045’}, {‘title’: ‘楚门的世界’, ‘rating_num’: ‘9.4’, ‘comment_num’: ‘1720585’}, {‘title’: ‘忠犬八公的故事’, ‘rating_num’: ‘9.4’, ‘comment_num’: ‘1404616’}, {‘title’: ‘海上钢琴师’, ‘rating_num’: ‘9.3’, ‘comment_num’: ‘1685059’}, {‘title’: ‘三傻大闹宝莱坞’, ‘rating_num’: ‘9.2’, ‘comment_num’: ‘1866833’}, {‘title’: ‘放牛班的春天’, ‘rating_num’: ‘9.3’, ‘comment_num’: ‘1317617’}, {‘title’: ‘机器人总动员’, ‘rating_num’: ‘9.3’, ‘comment_num’: ‘1321945’}, {‘title’: ‘疯狂动物城’, ‘rating_num’: ‘9.2’, ‘comment_num’: ‘1948593’}, {‘title’: ‘无间道’, ‘rating_num’: ‘9.3’, ‘comment_num’: ‘1370841’}, {‘title’: ‘控方证人’, ‘rating_num’: ‘9.6’, ‘comment_num’: ‘565051’}, {‘title’: ‘大话西游之大圣娶亲’, ‘rating_num’: ‘9.2’, ‘comment_num’: ‘1540664’}, {‘title’: ‘熔炉’, ‘rating_num’: ‘9.4’, ‘comment_num’: ‘935056’}, {‘title’: ‘教父’, ‘rating_num’: ‘9.3’, ‘comment_num’: ‘972589’}, {‘title’: ‘触不可及’, ‘rating_num’: ‘9.3’, ‘comment_num’: ‘1119658’}, {‘title’: ‘当幸福来敲门’, ‘rating_num’: ‘9.2’, ‘comment_num’: ‘1526688’}, {‘title’: ‘末代皇帝’, ‘rating_num’: ‘9.3’, ‘comment_num’: ‘890123’}]
代码执行时间:  0.0039997100830078125 秒

进程已结束,退出代码为 0

*****************************************************************************************************************************************************************************************

LXML-etree:

from lxml import etree
import time
with open("豆瓣电影Top250.html",encoding='utf-8') as f:
data = f.read()
start_time=time.time()
selector = etree.HTML(data)
ret = selector.xpath('//div[@class="item"]')

for item in ret:
title =item.xpath(".//span[@class='title'][1]/text()")[0]
rating_num=item.xpath(".//span[@class='rating_num']/text()")[0]
comment_num=item.xpath(".//div[@class='star']//span[last()]/text()")[0][:-3]

print(title,rating_num,comment_num)
end_time=time.time()
elapsed_time=end_time-start_time
print("执行时间: ",elapsed_time,"秒")
----------------------------------------------------------------------运行结果----------------------------------------------------------------------------

C:\Users\user\PycharmProjects\pythonProject1\venv\Scripts\python.exe C:\Users\user\PycharmProjects\pythonProject1\xPath\豆瓣电影提取.py
肖申克的救赎 9.7 2912555
霸王别姬 9.6 2150218
阿甘正传 9.5 2171334
泰坦尼克号 9.5 2202721
这个杀手不太冷 9.4 2305057
千与千寻 9.4 2255218
美丽人生 9.6 1332295
辛德勒的名单 9.6 1110787
星际穿越 9.4 1848980
盗梦空间 9.4 2071045
楚门的世界 9.4 1720585
忠犬八公的故事 9.4 1404616
海上钢琴师 9.3 1685059
三傻大闹宝莱坞 9.2 1866833
放牛班的春天 9.3 1317617
机器人总动员 9.3 1321945
疯狂动物城 9.2 1948593
无间道 9.3 1370841
控方证人 9.6 565051
大话西游之大圣娶亲 9.2 1540664
熔炉 9.4 935056
教父 9.3 972589
触不可及 9.3 1119658
当幸福来敲门 9.2 1526688
末代皇帝 9.3 890123
执行时间:  0.0030667781829833984 秒

进程已结束,退出代码为 0

总结:

RE速度最快,

lxml次之

soup最慢

Win10 端口映射命令

新增

netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=8500 connectaddress=192.168.153.133 connectport=8500

删除

netsh interface portproxy delete v4tov4 listenaddress=127.0.0.1 listenport=8500
查看
netsh interface portproxy show all