2023-03-08 17:46:22    0    0    0

这是因为当前的MySQL不支持datetime为0的情况。
MySQL报incorrect datetime value ‘0000-00-00 00:00:00’ for column错误原因,是由于在MySQL5.7版本以上,默认设置SQL_Mode模式,在模式里有NO_ZERO_DATE,NO_ZERO_IN_DATE,存在表示系统里DATE类型字段不能有0值,所以在执行操作时会报此错误。

解决方案

  1. 如果具备系统权限那么直接修改my.ini 配置文件,找到sql_mode行,修改为如下重启MySQL即可;如果没有sql_mode行,在my.ini的[mysqld]下添加如下重启MySQL即可:

    1. sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
  2. 在没有系统权限,我们有本地库权限情况下如何处理,我们可以使用

    1. SELECT @@sql_mode;

    就可以查到当前系统的SQL_mode配置,发现配置里有NO_ZERO_DATE,NO_ZERO_IN_DATE,这时我们使用以下命令,临时设置SQLmode模式,它只对本次会话有效,如果系统刷新后就需要我们重新设置。

    1. SET @@sql_mode = STRICT_ALL_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER’;
  3. 还有办法,不需要更改系统的SQL_mode模式,可以修改表结构,即将表中的date/datetime字段临时修改为VarChar字段

  1. ALTER TABLE mytemp CHANGE c10 c10 VARCHAR(100) NULL

这时进行数据更新,将‘0000-00-00’ 替换为正常的日期字符串,在使用ALTER 命令修改表字段,这时表中的字段会自动转为日期类型,字段中不能有非法字符,也可以在VarChar类型时将字段设为NULL再将字段改回日期类型。经过验证此方法不会丢失字段的值。这个方法对于系统影响最小,需要的系统权限也最小。

——

Nodejs    2023-02-17 11:26:10    0    0    0

mongoosejs 有一个跟 mongodb 的兼容性表格:

MongoDB Server 2.4.x: mongoose ^3.8 or 4.x
MongoDB Server 2.6.x: mongoose ^3.8.8 or 4.x
MongoDB Server 3.0.x: mongoose ^3.8.22, 4.x, or 5.x
MongoDB Server 3.2.x: mongoose ^4.3.0 or 5.x
MongoDB Server 3.4.x: mongoose ^4.7.3 or 5.x
MongoDB Server 3.6.x: mongoose 5.x
MongoDB Server 4.0.x: mongoose ^5.2.0

2023-02-15 12:20:59    0    0    0

借助 docker 可以不在开发电脑中安装环境,比如 nodejs,记录下如何实现。

下载安装

根据自己的电脑系统,在 install-docker-for-mac-windows 下载最新安装包并安装。
选择好目录后下一步,提示需要安装什么组件:

  • Docker Compose for Window 不知道什么用,勾选
  • VirtualBox 虚拟机,如果电脑之前安装过 Oracle VM VirtualBox 可以不勾选
  • Kitematic for Windows(Alpha) 使用图形界面来使用 docker,建议勾选
  • Git for Windows 一个版本控制 + bash 命令终端,如果没有安装建议勾选

title

继续下一步

  • Create a desktop shortcut
  • Add docker binaries to PATH
  • Upgrade Boot2Dcoker VM

title

三个选项全部勾选,下一步就开始安装软件到系统中,等待一会即可完成安装。
初始化虚拟机
打开安装目录,不出意外目录结构是这样的:

  1. ├──kitematic
  2. ├──boot2docker.iso
  3. ├──docker.exe
  4. ├──docker-compose.exe
  5. ├──docker-machine.exe
  6. ├──docker-quickstart-terminal.ico
  7. ├──start.sh
  8. ├──unins000.dat
  9. └──unins000.exe

将boot2docker.iso拷贝至C:\Users\用户名.docker\machine\cache目录下,双击打开start.sh文件。

title

当看到该画面时表示虚拟机已经安装在Virtual Box里面,可以打开Oracle VM VirtualBox查看:

title

这一步完成后,我们需要了解一个概念,就是现在我们有了两个系统,一个 windows 系统即我们直接操作的图形界面系统,我们称为主机,在主机上安装了VirtualBox,该软件内有 linux 虚拟机,称为docker主机,在 docker 主机中我们之后还会创建 linux 系统,称为容器。
可以通过终端显示的用户名@计算

2023-01-30 17:15:18    0    0    0
  1. 在oss的域名管理里面设置cdn加速
    title

  2. 在cdn管理的域名管理里面配置https
    title

  3. 设置强制跳转
    title

2022-12-19 17:27:49    0    0    0

近日,我公司有两个网站陆续出现了带www的域名无法打开网站的情况,经检查,是局部地区有这种情况。那什么是DNS劫持呢?

首先,我们来了解一下什么是DNS。DNS(Domain NameSystem,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。总的来说,它就像一个接线生,把我们要访问的IP导出来,让我们可以直接输入网址就能访问,而不用去记目标IP。而DNS劫持又称域名劫持,是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则返回假的IP地址或者什么都不做使请求失去响应,其效果就是对特定的网络不能访问或访问的是假网址。简单来说,就是接线生被人买通了,不给你导向正确的IP地址,而是一个其他的IP地址。这就是DNS劫持。

接下来,小编带大家来看下域名(DNS)被劫持我们是怎么解决的。

  1. 检测域名解析和域名绑定情况;

  2. 排除是网站自身或者服务器的问题,可以通过修改换绑网站或者服务器排查;

  3. 以上问题都排除后,可以将我们的域名的DNS服务器更换到其他的平台,比如DNSPod,阿里云,新网等这些大平台进行解析。域名如果不是这些平台注册的也没关系,可以转移到这些平台进行管理,也可以不转移,只用他们的云解析DNS功能,进行绑定外部域名进行解析,修改DNS服务器后大概48小时全球生效,要耐心等待。如果换了DNS服务器解析了,还是不能访问,就只有再进一步排查。毕竟互联网涉及很广,不是一蹴而就的。

  4. 排除服务器和网站的问题,将域名解析绑定到其他正常可以访问的网站和对应服务器上,不同地区、不同平台的服务器都可以试一下,结果发现还是带www网址无法打开。

  5. 这时候就要考虑我们的域名是不是被运营商屏蔽了,推荐几个检测平台试下,可能不太准确,我们就多试几个。
    DNS检测平台: Ping.cn 、网速通.测吧和监测宝等

通过检测,发现重庆地区的IP地址并没有指向我们的服务器IP,而是指向了另外的IP地址,电信则是0.0.0.0,移动则是172.23.74.174. 这一点证

2022-12-17 00:13:21    0    0    0

一、拉取项目镜像

  1. docker pull registry.cn-hangzhou.aliyuncs.com/mindoc-org/mindoc:v2.1

二、启动测试容器

  1. docker run -d --name test registry.cn-hangzhou.aliyuncs.com/mindoc-org/mindoc:v2.1

三、拷贝容器资源

  1. #宿主机创建mindoc容器路径
  2. mkdir -p /www/wwwroot/mindoc
  3. #创建文件上传路径
  4. mkdir -p /www/wwwroot/mindoc/uploads
  5. #获取配置文件conf
  6. docker cp test:/mindoc/conf /www/wwwroot/mindoc/conf

四、修改conf/app.conf文件

  1. #找到baseuurl并注释
  2. #baseurl=https://www.iminho.me/wiki

修改app.conf配置文件,关联数据库。

五、编辑容器创建命令

  1. docker run --name=mindoc --restart=always -v /usr/local/www/mindoc/conf:/mindoc/conf -p 8181:8181 -d registry.cn-hangzhou.aliyuncs.com/mindoc-org/mindoc:v2.1
  2. docker run --name=mindoc --restart=always -e MINDOC_DB_ADAPTER=mysql -e MINDOC_DB_DATABASE="mindoc" -e MINDOC_DB_USERNAME="mindoc" -e MINDOC_DB_PASSWORD="CNKttdrYWaKn6myh" -p 8181:8181 -d registry.cn-hangzhou.aliyuncs.com/mindoc-org/mindoc:v2.1

六、停止及删除测试容器

  1. #停止test容器
  2. docker stop test
  3. #删除test容器
  4. docker rm test

七、访问mindoc登录页面

  1. #
2022-12-07 14:58:24    0    0    0

一、 docker 服务启动启动

开启 docker 自启动

  1. systemctl enable docker.service

关闭 docker 自启动

  1. systemctl disable docker.service

二、docker 容器自动启动

  1. # 开启容器自启动
  2. docker update --restart=always 【容器名】

例如:docker update --restart=always tracker

  1. # 关闭容器自启动
  2. docker update --restart=no【容器名】

例如:docker update --restart=no tracker

相关配置解析

no:
不要自动重启容器。(默认)

on-failure:
如果容器由于错误而退出,则重新启动容器,该错误表现为非零退出代码。

always:
如果容器停止,请务必重启容器。如果手动停止,则仅在Docker守护程序重新启动或手动重新启动容器本身时才重新启动。(参见重启政策详情中列出的第二个项目)

unless-stopped:
类似于always,除了当容器停止(手动或其他方式)时,即使在Docker守护程序重新启动后也不会重新启动容器。


文章知识点与官方知识档案匹配,可进一步学习相关知识
————————————————
版权声明:本文为CSDN博主「普通网友」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_67392661/article/details/123732115

Python    2022-11-30 14:58:07    0    0    0

一、安装

  1. pip install pymysql

二、连接数据库

三种连接数据库的方式

  1. import pymysql
  2. # 方式一
  3. conn = pymysql.connect('localhost', 'root', 'root')
  4. # 方式二
  5. conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='root', db='', charset='utf8')
  6. # 方式三
  7. config = {
  8. 'host': '127.0.0.1',
  9. 'port': 3306,
  10. 'user': 'root',
  11. 'passwd': 'root',
  12. 'charset': 'utf8'
  13. }
  14. conn = pymysql.connect(**config)

三、创建数据库

创建一个test数据库并进入

  1. import pymysql
  2. db = pymysql.connect("localhost", "root", "root", "test")
  3. # 使用 cursor() 方法创建一个游标对象 cursor
  4. cursor = db.cursor()
  5. cursor.execute('DROP DATABASE IF EXISTS test')
  6. cursor.execute('CREATE DATABASE IF NOT EXISTS test')
  7. conn.select_db('test')

四、创建数据表

创建一张user表

  1. import pymysql
  2. db = pymysql.connect("localhost", "root", "root", "test")
  3. cursor = db.cursor()
  4. cursor.execute('CREATE TABLE user(id int primary key,name varchar(30))')

五、插入一条数据

  1. import pymysql
  2. db = pymysql.connect("localhost", "root", "root", "test")
  3. cursor = db.cursor()
  4. try:
  5. # 执行
Nginx    2022-11-29 18:54:44    0    0    0

这里顺带整理几个常用的Nginx 301重定向规则。

1、重定向到新域名

  1. server {
  2. server_name www.itbulu.com;
  3. rewrite ^(.*) https://www.lexiaohu.com$1 permanent;
  4. }

这里举个例子,将在原来域名的Nginx设置跳转到新域名。

2、目录跳转新域名

  1. if ( $request_filename ~ laojiang/ ) {
  2. rewrite ^ https://laojiang.itbulu.com/? permanent;
  3. }

我们可以将 laojiang目录,单独设置一个二级域名站点。

3、目录迁移跳转

  1. if ( $request_filename ~ oldfiles/ ) {
  2. rewrite ^ https://www.itbulu.com/newfiles/? permanent;
  3. }

新目录迁移。

4、WWW跳转到非WWW

  1. server {
  2. server_name www.itbulu.com;
  3. rewrite ^/(.*)$ https://itbulu.com/$1 permanent;
  4. }

5、非WWW跳转到WWW

  1. server {
  2. server_name itbulu.com;
  3. rewrite ^/(.*)$ https://www.itbulu.com/$1 permanent;
  4. }

这几个又是我们常用的几个Nginx规则。

vscode    2022-11-28 00:20:17    0    0    0

在phpstorm中我们可以按ctrl+f12查看当前文件的所有函数

在vscode中如何实现呢

  1. 安装插件支持

    https://marketplace.visualstudio.com/items?itemName=linyang95.php-symbols
  2. ctrt+shift+o

即可通过下拉菜单获取到当前文件中所有的函数列表


3/12