本站于8月20日新增一条分类:解决困难,该分类用于分享我在日常搭建网站或编程学习中遇到的困难并阐述如何解决。这些困难往往都是由于如版本不兼容、文件缺失、版本过旧等等简单问题导致的,往往用一些很简单的技术就可以解决。平时我想将这些内容分享出来,但是篇幅太短小,不能每遇到一次这种问题就写一篇不到500字的文章。本站就利用就在此文章中分享一些我已经遇到并解决的问题。
此文章用于存放与NodeJS、NPM和Docker有关的问题。
OpenSSL版本过低,需升级
NodeJS、NPM、Docsify等运行时报错:node: relocation error: /lib64/libnode.so.93: symbol FIPS_selftest, version OPENSSL_1_1_0g not defined in file libcrypto.so.1.1 with link time reference
原因:NodeJS版本太高,与系统OpenSSL版本不对应。
解决方法:
将 OpenSSL 升级到 1.1.1 版本:
- 依赖包
安装编译 OpenSSL 所需的包,包括 gcc、make、perl 和 zlib-devel。可以通过运行以下命令完成:
bash 代码:yum install -y gcc make perl zlib-devel
- 安装包下载
下载 OpenSSL 1.1.1 的源码包,可以从 OpenSSL 官网下载(https://www.openssl.org/source/openssl-1.1.1.tar.gz)或使用以下命令下载:
bash 代码:wget https://www.openssl.org/source/openssl-1.1.1.tar.gz
- 解压
解压源码包并进入解压后的目录:
bash 代码:tar -zxvf openssl-1.1.1.tar.gz
cd openssl-1.1.1
4.初始化并编译、安装
运行以下命令编译 OpenSSL:
bash 代码:./config --prefix=/opt/openssl-1.1.1
make
make install
- 做软连接
mv /usr/bin/openssl /usr/bin/openssl_20230525bak
mv /usr/lib64/openssl /usr/lib64/openssl_20230525bak
然后将新安装的OpenSSL做软连接到这个路径
bash 代码:ln -s /opt/openssl-1.1.1/bin/openssl /usr/bin/openssl
执行以下命令检查 OpenSSL 版本:
bash 代码:openssl version
Docker桌面版MySQL连接问题
问题:Windows使用docker桌面版使用docker pull ...安装MySQL、Redis等数据库,Windows本机客户端无法连接服务器,如PyCharm数据库连接工具,显示Connection Refused。
解决1
问题所在:Docker网络与主机共享模式需要修改。
解决:
在Docker桌面版中,你可以通过以下步骤将网络模式设置为桥接模式并确保与主机处于同一网络段:
打开Docker桌面版应用程序,并在任务栏上右键单击Docker图标。
从弹出菜单中选择"Settings"(设置)选项。
在"Settings"(设置)窗口中,切换到"Resources"(资源)选项卡。
在左侧列表中选择"Network"(网络)选项。
在右侧窗格中,你将看到"Docker Desktop Default Network"(Docker桌面默认网络)的设置。点击"Advanced"(高级)按钮。
在弹出的高级设置窗口中,将网络模式改为"Bridge"(桥接)。
确保"Subnet"(子网)和"Gateway"(网关)的设置与主机处于同一个网络段。你可以手动编辑这些值,或者点击"Restore Defaults"(恢复默认值)按钮重置为默认设置。
点击"Apply & Restart"(应用并重启)按钮,以使更改生效。
解决2
问题在于防火墙。使用如下命令放行对应端口,例子中为3306端口。
bash 代码:# 开放端口:
systemctl status firewalld
firewall-cmd --zone=public --add-port=3306/tcp -permanent
firewall-cmd --reload
# 关闭防火墙:
sudo systemctl stop firewalld