22.12.06

做BS作业,用新服务器上的mysql,发现连不上。

image-20221206024015347

因为迁移了服务器,新服务器上的mysql除了把数据迁移过来之外没做别的配置。在弄BS的时候显示连接超时。

在解决了防火墙问题之后,我使用另一台主机远程连接所需要的mysql的用户的时候,显示报错:

image-20221206022336842

但是服务器自己连自己的时候是正常工作的。后来发现是bind-address的问题:mysql默认配置是只允许回环地址(本地)访问,需要去/etc/mysql的配置文件里把bind-address改成0.0.0.0(所有ip地址)。

后来还是连接不上,是因为新的问题:

image-20221206024141667

据说是因为mysql 8.0版本引入了新特性 caching_sha2_password;这种密码加密方式客户端不支持;客户端支持的是mysql_native_password 这种加密方式。需要将相应字段改一下:

ALTER USER '***'@'***' IDENTIFIED WITH mysql_native_password BY '***';

image-20221206024300035

22.12.23

之前服务器到期了,换一个新的。网站迁移所以要重新做一遍部署。记录一下过程。

先下nginx

安装

sudo apt-get install nginx

验证并更新防火墙配置:

sudo systemctl status nginx
sudo ufw allow 'Nginx Full'

结果:

image-20221223220050125

再配hexo远程同步

搜了一下,发现当时是按照这个步骤做的:https://www.jianshu.com/p/fa5ce5f955d9

配置过程中nginx -t时候出现了user permission deny。问题出现在我用的当前(非sudo)用户启动的nginx restart,导致进程属于当前用户,读写文件权限不够。命令前面加一个sudo就好了。

23.03.03

有关于wsl被我弄坏最后又弄好的问题。

wsl对于常用windows但又想跑linux环境下的程序的选手是个很好的选择。这个学期我就用的WSL+Arch搭载docker做的os实验(因为windows的docker使用感受不太好,所以在wsl上装的docker)。

但是计算机网络GNS实验又需要装一个VMware虚拟机。去年12月初,老师给的是一个特别古老的VMware软件包,装完它之后不仅GNS实验不能用,我的wsl也打不开了。

我为了先弄计网实验又下了一个VMware16当时的最新版,以为能好用,结果GNS和wsl仍都不能用。遂删VMware。不过这个东西貌似把我系统偷偷改了很多东西,我还删不干净。之后每次打开/重新安装wsl都会报错,显示错误码0x80041002,有时候还会显示“灾难性问题”。

没办法,遂上网搜寻信息。很多方法都不靠谱,最后网上找到了这条帖子https://zhuanlan.zhihu.com/p/491086029。

分析原因是“使用过一些虚拟机软件如VMvare,这些软件在安装时会添加某些虚拟适配器,这些虚拟适配器会阻止Hyper-V为其创建新网络”。感觉是一个相对靠谱的解释。但我跟着上面的步骤做了一遍又一遍还是不行。

其实这时候大概能定位到“Hyper-v”,“网络”这两个问题上,再试也试不出来了。今天忘了为什么,我打开设备管理器,发现了一个“Hyper-V 虚拟网络适配器”,遂删了,还有一个“Hyper-V虚拟交换机扩展适配器”,这两个设备显示都有一个三角叹号,我看了日志,他们出现的时间和我当时把wsl整没了的时间是一样的。那就能说明问题了,这两个东西就是VMware搞出来的东西。而且每次wsl --install -d XXX,这个虚拟交换机设备都会自动出现,显示Windows正在配置。

上网查这种情况,关键词“Windows 仍在设置此设备的类配置”,发现这篇帖子,https://blog.csdn.net/weixin_43804251/article/details/125947454 。删了注册表HKEY_CLASSES_ROOT\CLSID{3d09c1ca-2bcc-40b7-b9bb-3f3ec143a87b} ,再弄wsl就好了,并且这时候虚拟交换机设备也不会自动出现了。就知道会是注册表,大概是VMware和Hyper-V的冲突,VMware把Hyper-v的相关网络功能在系统层面禁了。

23.03.04

因为wsl被我弄好了,调教她安一下openCV

按照这个步骤安了一边依赖项:https://blog.csdn.net/cassidybo/article/details/125984893

然后到官网下源代码,因为要在自己的环境上面编译,我这个是4.7.0版本。

下载之后,cmake

cmake -D WITH_TBB=ON -D WITH_EIGEN=ON -D OPENCV_GENERATE_PKGCONFIG=ON  -D BUILD_DOCS=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF  -D WITH_OPENCL=OFF -D WITH_CUDA=OFF -D BUILD_opencv_gpu=OFF -D BUILD_opencv_gpuarithm=OFF -D BUILD_opencv_gpubgsegm=O -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

中间有个小插曲:IPPCV需要cmake下载,但是因为是在github上面下,总是失败。这里面我们直接把包先下下来,再找到ippcv(在第三方依赖里面),找到对应的cmakerule,然后把这个目标文件地址的https在线下载改成file:///的本地下载路径。

之后make(-j8)然后make install。

build里面有个设置环境变量的脚本,跑了一下。

之后测试程序(这里面是wsl所以路径要改为wsl的路径)

cmake文件

# cmake needs this line
cmake_minimum_required(VERSION 3.1)

# Define project name
project(opencv_example_project)

# Find OpenCV, you may need to set OpenCV_DIR variable
# to the absolute path to the directory containing OpenCVConfig.cmake file
# via the command line or GUI
find_package(OpenCV REQUIRED)

# If the package has been found, several variables will
# be set, you can find the full list with descriptions
# in the OpenCVConfig.cmake file.
# Print some message showing some of them
message(STATUS "OpenCV library status:")
message(STATUS " config: ${OpenCV_DIR}")
message(STATUS " version: ${OpenCV_VERSION}")
message(STATUS " libraries: ${OpenCV_LIBS}")
message(STATUS " include path: ${OpenCV_INCLUDE_DIRS}")

# Declare the executable target built from your sources
add_executable(opencv_example main.cpp)

# Link your application with OpenCV libraries
target_link_libraries(opencv_example PRIVATE ${OpenCV_LIBS})

cpp文件

#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv4/opencv2/core.hpp>

using namespace std;
using namespace cv;

int main()
{
Mat img = imread("/mnt/e/doc/AcgPic/kon/kon1.jpg");
imshow("test", img);
waitKey(0);
return 0;
}

成功装完。

23.06.11

在wsl上面装个cuda。

23.06.21

为了图形学大作业,重新装了个Ubuntu双系统。但是两个系统切换会出现问题,就是windows的时间会错乱。

原因在于Ubuntu认为BIOS时间是utc时间,但是Windows认为BIOS时间是本地时间。所以在Ubuntu上面把BIOS时间改成本地时间就好了。

timedatectl set-local-rtc 1 --adjust-system-clock

记录一下。

23.07.02

图形学大作业装了个ubuntu,今天彻底把这个系统删了:因为发现读不了我硬盘,一直显示硬盘只读,搜索之后说是硬件错误,然后我按步骤改了/etc/fstab的文件项目,最后tm导致开不开机了。

希望自己以此为鉴。硬盘只读是最近才发生的,之前是可以读写的,因为毕竟测试过,装系统的时候磁盘分区应该也没问题。我怀疑是因为我插了U盘。具体原因我还不清楚。