清阳 发布的文章

Linux常用操作

Linux常用操作主要包含Shell命令行等命令

fail2ban封禁和解封指定IP

#fail2ban把IP加入黑名单
fail2ban-client set sshd banip  1.1.1.1

#fail2ban把IP从黑名单移除
fail2ban-client set sshd unbanip  1.1.1.1 

返回1为成功,0即表示规则没有发生变化,即操作失败(说明IP本来就在列表或者不在列表中)

CentOS7.9 python3 Can‘t connect to Https URL Because the SSL module is not available(已解决)

问题概览
CentOS7.9编译安装Python3.10运行python脚本的时候报Can‘t connect to Https URL Because the SSL module is not available.
当然,这个问题和python3 -c "import ssl" 报错是同一个问题

经排查发现是系统openssl版本过低导致的。
python3.10依赖的ssl 1.1.1以上的版本。

{message type="success" content="注意:其实在编译python3过程中,会输出openssl版本过低的信息,只不过没有突出显示,不仔细查看,难以发现。"/}

OK,发现问题之后,已经查明的原因,解决起来就容易多了。
我们重新编译安装Openssl,升级系统的openssl版本到1.1.1以上即可解决。
这里我们升级至 1.1.1w(openssl官网有更新的3.x ssl版本,但是我们服务器是centos7属于比较旧的版本,对 ssl 3.x兼容性有问题,所以先不用3.x的)

编译安装Openssl

#安装前先检查Openssl的版本
openssl version 
#OpenSSL 1.0.2k-fips  26 Jan 2017
yum install perl-core zlib-devel -y
cd /usr/local/src
wget -S “https://github.com/openssl/openssl/releases/download/OpenSSL_1_1_1w/openssl-1.1.1w.tar.gz”
tar -zxvf openssl-1.1.1w.tar.gz
cd openssl-1.1.1w
./config --prefix=/usr/local/openssl
make && make install
mv /usr/bin/openssl  /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/local/openssl
echo "/usr/local/openssl/lib" > /etc/ld.so.conf.d/openss111w.conf
#然后再次检查openssl版本
openssl version 
#OpenSSL 1.1.1w  11 Sep 2023 (Library: OpenSSL 1.1.1k  FIPS 25 Mar 2021)

#openssl的目录路径
openssl version -d
》》 OPENSSLDIR: "/usr/local/openssl/ssl"

openssl升级完成

编译安装python12

yum install libffi-devel.x86_64 libdb-devel uuid-devel.x86_64 tk-devel.x86_64 zlib-static.x86_64 zlib-devel -y
cd /usr/local/src/
wget https://www.python.org/ftp/python/3.12.6/Python-3.12.6.tgz
tar -zxvf Python-3.12.6.tgz  
cd  Python-3.12.6

openssl version -d #这个命令找到openssl根目录
》》 OPENSSLDIR: "/usr/local/openssl/ssl"  --with-openssl=参数填写这个路径

cd /usr/local/src/ 
cd  Python-3.12.6
cat >>  Modules/Setup<<EOF
SSL="/usr/local/openssl"

_ssl _ssl.c \

    -DUSE_SSL -I"\$(SSL)"/include -I"\$(SSL)"/include/openssl \

    -L"\$(SSL)"/lib -lssl -lcrypto

EOF

./configure --prefix=/usr/local/python3.12 --with-openssl=/usr/local/openssl/ssl  && make && make install

测试

/usr/local/python3.12 -r "import ssl"
#不报错,则说明模块引入成功

Python虚拟环境

[root@centos-12 opt]# mkdir -p /var/www
[root@centos-12 opt]# cd /var/www/
[root@centos-12 www]# ls
[root@centos-12 www]# python3 -m venv myenv
[root@centos-12 www]# ls
myenv
[root@centos-12 www]# source myenv/bin/activate
(myenv) [root@centos-12 www]#
(myenv) [root@centos-12 www]# python
Python 3.12.8 (main, Dec 30 2024, 13:22:30) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
>>>    
(myenv) [root@centos-12 www]# deactivate 
[root@centos-12 www]# 
[root@centos-12 www]# python
Python 2.7.5 (default, Nov 14 2023, 16:14:06) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

python虚拟环境总结

python3 -m venv myenv  ## 使用Python venv模块创建了 名为myenv,当前目录下会生成一个myvenv目录
source myenv/bin/activate ## 激活进入 myenv虚拟环境
deactivate  ## 退出虚拟环境
/var/www/myenv/bin/python3   ## 使用绝对路径直接引用Python虚拟环境
 /var/www/myenv/bin/pip ## 使用绝对环境直接引用 虚拟环境中的pip

PHP8.2添加达梦数据库PHP PDO_DM扩展

环境描述

系统环境如下:

  • 银河麒麟高级服务器操作系统V10 SP3 X86架构(X64架构同样适用)
  • 达梦数据库V8版本ISO安装镜像文件 这个需要在达梦官网下载
  • php8.2 nts
  • 基于laravel 9
  • dcat-admin

由于银河麒麟操作系统V10基于CentOS8,并且无法安装epel-release源,更没办法使用Remi源,所以本次安装的PHP8.2假设我们是编译安装的。具体安装教程可以参考另外一篇文章:
国产银河麒麟服务器版(Host)V10 编译安装PHP8.2.

步骤概览

PHP安装PDO_DM模块分为以下几步:

  1. 本地安装达梦数据库V8客户端(服务端、混合安装均可),或者上传其他Linux系统上安装好的达梦数据库 bin目录,以及libphp82_dm.so、php82_pdo_dm.so两个文件
    这里包含了PDO_DM so模块依赖的达梦动态连接库
  2. 设置系统动态链接库路径,新增第一步中自己安装或者拷贝过来的bin目录路径,并重载ldconfig
  3. 拷贝PHP so模块文件到PHP扩展目录
  4. 测试PDO_DM功能

开始:

本地安装达梦数据库V8客户端

先从达梦官网下载iso程序镜像到/usr/local/src目录
之后按照以下命令执行:

[root@kylin-server-2 src]# cd /usr/local/src/
[root@kylin-server-2 src]# mkdir dmdbiso
[root@kylin-server-2 src]# ls
dm8_20240930_HG_kylin10_64.iso  dmdbiso  php-8.2.26  php-8.2.26.tar.gz
[root@kylin-server-2 src]# pwd
/usr/local/src
[root@kylin-server-2 src]# mount -o loop dm8_20240930_HG_kylin10_64.iso dmdbiso/
mount: /usr/local/src/dmdbiso: WARNING: source write-protected, mounted read-only.
[root@kylin-server-2 src]# ls dmdbiso/
'DM8 Install.pdf'   DMInstall.bin
###下面3行设置系统环境,为达梦数据库安装做准备
[root@kylin-server-2 src]# useradd dmdba
[root@kylin-server-2 src]# export DM_INSTALL_TMPDIR=/usr/local
[root@kylin-server-2 src]# cd dmdbiso/
[root@kylin-server-2 dmdbiso]# 

#开始安装
[root@kylin-server-2 dmdbiso]# ./DMInstall.bin -i
安装语言: 
[1]: 简体中文
[2]: English
 请选择安装语言 [1]:  1
解压安装程序......... 
硬件架构校验通过!
core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 7546
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 7546
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

可打开文件数过少,建议至少设置为65536或更多。

欢迎使用达梦数据库安装程序

 是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]: N

 是否设置时区? (Y/y:是 N/n:否) [Y/y]: N

安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
 请选择安装类型的数字序号 [1 典型安装]: 1
所需空间: 2170M

 请选择安装目录 [/opt/dmdbms]: /usr/local/dmdbms
可用空间: 37G
 是否确认安装路径(/usr/local/dmdbms)? (Y/y:是 N/n:否)  [Y/y]: Y

安装前小结
安装位置: /usr/local/dmdbms
所需空间: 2170M
可用空间: 37G
版本信息: 
有效日期: 
安装类型: 典型安装
 是否确认安装? (Y/y:是 N/n:否): Y
2024-12-27 10:16:39 
[INFO] 安装达梦数据库...
2024-12-27 10:16:40 
[INFO] 安装 基础 模块...
2024-12-27 10:16:46 
[INFO] 安装 服务器 模块...
2024-12-27 10:16:48 
[INFO] 安装 客户端 模块...
2024-12-27 10:16:51 
[INFO] 安装 驱动 模块...
2024-12-27 10:16:53 
[INFO] 安装 手册 模块...
2024-12-27 10:16:54 
[INFO] 安装 服务 模块...
2024-12-27 10:16:54 
[INFO] 移动日志文件。
2024-12-27 10:16:55 
[INFO] 正在启动DmAPService服务...
2024-12-27 10:16:55 
[INFO] 启动DmAPService服务成功。
2024-12-27 10:16:55 
[INFO] 安装达梦数据库完成。

安装结束

[root@kylin-server-2 dmdbiso]# cd /usr/local/src/
[root@kylin-server-2 dmdbiso]# umount dmdbiso

达梦数据库安装完成。
上图中有一部分提示我们ulimit参数没有优化,本文最后有优化ulimit参数方法。

达梦数据库目录如下:(yum install tree -y 安装tree命令)

[root@kylin-server-2 ~]# tree /usr/local/dmdbms -L 1
/usr/local/dmdbms
├── bin    #pdo_扩展依赖的动态链接库目录
├── bin2
├── desktop
├── doc
├── drivers  #驱动目录,达梦数据库php Pdo驱动模块文件就在这个路径下的php_pdo目录
├── include
├── jar
├── jdk
├── license_chs.txt
├── license_cht.txt
├── license_en.txt
├── log
├── samples
├── script
├── tool
├── uninstall
└── uninstall.sh

[root@kylin-server-2 ~]# ls /usr/local/dmdbms/drivers/php_pdo
libphp52_dm.so     libphp54_dm.so    libphp56ts_dm.so  libphp72_dm.so    libphp74ts_dm.so  libphp82_dm.so    php52ts_pdo_dm.so  php55_pdo_dm.so    php70ts_pdo_dm.so  php73_pdo_dm.so    php80ts_pdo_dm.so  php83_pdo_dm.so
libphp52ts_dm.so   libphp54ts_dm.so  libphp70_dm.so    libphp72ts_dm.so  libphp80_dm.so    libphp82ts_dm.so  php53_pdo_dm.so    php55ts_pdo_dm.so  php71_pdo_dm.so    php73ts_pdo_dm.so  php81_pdo_dm.so    php83ts_pdo_dm.so
libphp53_dm.so     libphp55_dm.so    libphp70ts_dm.so  libphp73_dm.so    libphp80ts_dm.so  libphp83_dm.so    php53ts_pdo_dm.so  php56_pdo_dm.so    php71ts_pdo_dm.so  php74_pdo_dm.so    php81ts_pdo_dm.so
libphp53_mysql.so  libphp55ts_dm.so  libphp71_dm.so    libphp73ts_dm.so  libphp81_dm.so    libphp83ts_dm.so  php54_pdo_dm.so    php56ts_pdo_dm.so  php72_pdo_dm.so    php74ts_pdo_dm.so  php82_pdo_dm.so
libphp53ts_dm.so   libphp56_dm.so    libphp71ts_dm.so  libphp74_dm.so    libphp81ts_dm.so  php52_pdo_dm.so   php54ts_pdo_dm.so  php70_pdo_dm.so    php72ts_pdo_dm.so  php80_pdo_dm.so    php82ts_pdo_dm.so

本次php PDO_DM模块只需要关注
/usr/local/dmdbms/bin 和
/usr/local/dmdbms/drivers/php_pdo这两个目录下内容。

把达梦bin目录下的动态库文件添加到系统动态库加载项

[root@kylin-server-2 ~]# echo "/usr/local/dmdbms/bin" > /etc/ld.so.conf.d/php-dm.conf
[root@kylin-server-2 ~]# ldconfig 
ldconfig: /usr/local/dmdbms/bin/libxerces-c-3.1.so 不是符号链接

ldconfig: /usr/local/dmdbms/bin/libgeos_c.so.1 不是符号链接
#(这两条警告信息可忽略)
[root@kylin-server-2 ~]# 

拷贝达梦 php 模块文件到PHP扩展目录下

本次一并操作了 php的dm模块和PDO_DM模块

[root@kylin-server-2 ~]# cp /usr/local/dmdbms/drivers/php_pdo/libphp82_dm.so /usr/local/php82/lib/php/extensions/no-debug-non-zts-20220829/
[root@kylin-server-2 ~]# cp /usr/local/dmdbms/drivers/php_pdo/php82_pdo_dm.so /usr/local/php82/lib/php/extensions/no-debug-non-zts-20220829/

修改php.ini,引入达梦数据库模块

[root@kylin-server-2 ~]# echo "extension=libphp82_dm" >> /etc/php82/php.ini
[root@kylin-server-2 ~]# echo "extension=php82_pdo_dm" >> /etc/php82/php.ini

[root@kylin-server-2 ~]# echo 'export PATH=$PATH:/usr/local/php82/bin' >> /etc/bashrc
[root@kylin-server-2 ~]# source !$
source /etc/bashrc

注意

{message type="error" content="如果测试中报以下错误,一定要及时排查。否则造成的一切后果自负
案例一、
如果测试报这个错误,一定要修复,一定不要重启服务器,会导致静态IP丢失,本人本地虚拟机亲测"/}

[root@kylin-server-2 ~]# php -m 
php: relocation error: /usr/lib64/libcurl.so.4: symbol SSLv3_client_method version OPENSSL_1_1_0 not defined in file libssl.so.1.1 with link time reference

{message type="warning" content="出现这个错误的原因是 /etc/ld.so.conf.d/php-dm.conf 执行这一步时,没有使用php-dm.conf文件名,而是自定义了其他文件名,由于文件名不同可能导致加载动态链接库顺序不一致,libssl.so类似这样的同名文件不同内容库,相互影响了。解决办法是:修改php-dm.conf(这里是你自己起的文件名,改成其他的或者干脆就跟作者一样使用 php-dm.conf 做名字然后ldconfig再次测试 php -m | grep -i dm)"/}

配置完成,检测

[root@kylin-server-2 ld.so.conf.d]# php -m | grep -i dm
dm
PDO_DM

#这里显示dm和PDO_DM模块已经被安装并且成功加载了。
## 然后使用以下脚本检测Pdo模块功能
[root@kylin-server-1 ~]# cd /tmp/
[root@kylin-server-1 tmp]# cat >> dm_db.php<EOF
-bash: EOF: 没有那个文件或目录
[root@kylin-server-1 tmp]# cat >dm_db.php<<EOF
<?php
try
{
        //数据库链接字符串
        $dn="dm:host=192.168.12.10;port=5236;dbname=PHP";
        $pdo = new PDO($dn,"PHP","b5KJqM4F57"); //用户名 ,密码<br>
        $query="SELECT * FROM  PHP.\"tgs\""; //测试查询语句
        $stmt = $pdo->query($query);
        if(!$stmt)//如果出现了错误,获得错误信息
        {
                echo "<pre>";
                echo $pdo->errorCode();
                print_r($pdo->errorInfo());
                echo "</pre>";
                die();
        }
        $stmt->execute();
        $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
        echo "<pre>";
        print_r($rows);
        echo "</pre>";
}catch(PDOException $e){
        print "Error: " . $e->getMessage()."<br/>";
}
EOF

[root@kylin-server-1 tmp]# php dm_db.php 
<pre>Array
(
    [0] => Array
        (
            [id] => 1
            [name] => 来自PHP PDO_DM模块的检测                   
        )

    [1] => Array
        (
            [id] => 2
            [name] => bbb1                                              
        )

)
</pre>[root@kylin-server-1 tmp]# 
## 测试表需要自己创建,我这里是名为PHP模式下的tgs表,有id和name两列。查到此内容则表示测试OK.

优化ulimit参数方法

#先查看当前设置:
[root@kylin-server-2 ~]# ulimit -a
core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 7546
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 7546
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

[root@kylin-server-2 ~]# ulimit -SHn 65535
cat >> /etc/security/limits.conf<<EOF
* soft    nofile  1024000
* hard    nofile  1024000
* soft    nproc   1024000
* hard    nproc   1024000
* soft core unlimited
* soft stack 10240
EOF

## 再次查看ulimit设置
[root@kylin-server-2 ~]# ulimit -a
core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 7546
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 65535
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 7546
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

这里已经看到参数修改好了。

可用的命令

ldconfig  ##重载系统动态链接库
ldconfig -v  ##查看重载链接库详细过程,并显示链接库名
ldd libssl.so   ##查看libssl.so链接库依赖哪些库

Steam平台游戏环境篇

Steam Windows平台DirectX

很多游戏都依赖DirectX,每次都要网上搜索官网再下载相当麻烦,这里做了总结。
本站快捷下载:
https://download.qingpc.com/game/steam/dxwebsetup.exe

md5校验码:2cbd6ad183914a0c554f0739069e77d7
sha256校验码:2cf71d098c608c56e07f4655855a886c3102553f648df88458df616b26fd612f

官网下载地址:
https://download.microsoft.com/download/1/7/1/1718CCC4-6315-4D8E-9543-8E28A4E18C4C/dxwebsetup.exe

微软官网:https://www.microsoft.com/zh-cn/download/details.aspx?id=35
下载完成后,根据提示安装即可,安装过程中也会一并下载其他依赖包,耐心等待3-10分钟即可安装完成,具体根你的本地网络速度有关

银河麒麟V10高级服务器操作系统重置root密码

银河麒麟V10高级服务器操作系统忘记root密码,如何重置

启动系统进入单用户模式
进入系统启动项,按e键
m56f4qz8.png

输入grub界面密码

{message type="success" content="默认用户为:admin 密码:Kylin123123"/}

m56f6b8x.png

输入账户密码后进入编辑模式,找到linux开头的行,在行末尾加入rw init=/bin/bash console=tty0编辑完后,'ctrl+x'进入启动项。
编辑后结果如下图:
m56fifhf.png
按'ctrl+x'启动进入密码重置界面
重置密码(需要有大小写特殊字符和数字组成的强密码),成功后,使用/usr/sbin/reboot命令重启启动
m56fkhld.png

参考

1、https://199604.com/2636

windows小技巧

查看Windows最近一次唤醒信息

powercfg -lastwake

windows清理DNS缓存

ipconfig /flushdns

Mac清理DNS缓存

sudo dscacheutil -flushcache

Win11官网镜像

https://software.download.prss.microsoft.com/dbazure/Win11_24H2_Chinese_Simplified_x64.iso?t=a87e7891-5499-487b-b638-7d8d97444ecf&P1=1736825129&P2=601&P3=2&P4=B8DHx%2fa42EQR1XOJT3lEqGE9rI4w116GpZzhEAZ739a6IhVrZnCqV5AIcSc3W0nIuCA7TwKH0T2gAGsdETDcXxEX82rxncwTp%2bVKDo0SPyorjaD1a5fhAfGy0697fVl5cku9cjDhUVrae8dC4MY0ognibLSqyhMMcoLiHILAp82K0VC47hSY9C5kd1oY%2ba1O0jtceMrzpF9%2fEPp2jXyTJvxKlGcQVrTtCESHPq1sAk%2bHH0wXlgLwYU8FmxaDly610cB0Op%2fULC1RbnOK3PmQfyTVobFbz4SSV3aAp7va48%2b2BY5Q1KJRr2vS1zA1cp4wpjcBmzyyndMDXmjLAsoW1A%3d%3d

win11 Hyper-V虚拟机操作

Windows 10下如何彻底关闭 Hyper-V 服务

以管理员身份运行命令提示符
执行命令bcdedit /set hypervisorlaunchtype off
重启,运行vm即可
如果想要恢复hyper启动, bcdedit / set hypervisorlaunchtype auto
参考地址:
https://www.zhihu.com/question/38841757/answer/179656416

如何禁用 Hyper-V

可以在控制面板或使用 Windows PowerShell 禁用 Hyper-V 虚拟机监控程序。
在控制面板中禁用 Hyper-V
若要在控制面板中禁用 Hyper-V,请执行以下步骤:

在“控制面板”中,打开“程序和功能”。
选择“启用或关闭 Windows 功能”。
展开 Hyper-V,展开 Hyper-V 平台,然后清除“Hyper-V 虚拟机监控程序”复选框。
“Hyper-V 虚拟机监控程序”复选框的屏幕截图。
m4uwdqg8.png

在 PowerShell 中禁用 Hyper-V

要使用 Windows PowerShell 禁用 Hyper-V,请按照以下步骤操作:
打开提升权限的 PowerShell 窗口。
运行以下命令:

Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Hypervisor

参考地址:https://learn.microsoft.com/zh-cn/troubleshoot/windows-client/application-management/virtualization-apps-not-work-with-hyper-v

msinfo32 Windows命令工具

可用来查看系统一些硬件信息。命令行下执行即可,或者windows + r 快捷键。

麒麟操作系统安装达梦数据库V8版本

本文主要总结了:中标麒麟安装达梦数据库的全过程
达梦数据库 是一款国产数据库。本文记录了在银河麒麟操作系统下,安装达梦数据库V8.0版本的全过程。
达梦官网:https://www.dameng.com/

在服务器上安装达梦数据库 典型安装
达梦数据库下载地址,需要账号登陆。

然后解压会得到:
dm8_20240930_HG_kylin10_64.iso
dm8_20240930_HG_kylin10_64.iso_SHA256.txt
dm8_20240930_HG_kylin10_64.README

可以把iso文件挂载到目录下即可安装;
这里以/usr/local/src/dbiso为例:
mount -t iso9660 -o loop dm8_20240930_HG_kylin10_64.iso /usr/local/src/dbiso,会得到以下文件:
m4mlbyy8.png

其中:DMInstall.bin就是安装包,安装过程如下:
m4mlhd2f.png
其中的报错会在最后统一列出。

m4mlo4i1.png

m4mloixk.png

按照图中安装即可,画横线的即需要填写的参数。
如果你需要输入key就按操作输入即可,还有时区设置。

安装刚开始遇到的问题

问题1:

未检测到操作系统用户dmdba,请确认操作系统用户dmdba是否存在!

解决: 需要创建达梦dba账号

useradd dmdba

问题2:

安装程序临时目录(/tmp)可用空间为958M。安装程序需要至少2G的临时空间,请调整临时目录的空间或设置环境变量DM_INSTALL_TMPDIR来指定安装程序的临时目录。

解决
给DM_INSTALL_TMPDIR设置一个非/tmp目录即可,这是一个临时目录。

export DM_INSTALL_TMPDIR=/opt

问题3:

解压安装程序.........
硬件架构校验通过!
Exception in thread "main" org.eclipse.swt.SWTError: No more handles [gtk_init_check() failed]

解决
这是因为 ./DMInstall.bin 默认使用图形界面安装,我们在命令行就会报这个错加上 -i,切换至交互命令行模式安装即可

./DMInstall.bin -i

数据库创建和启动数据库服务

安装完数据库后添加环境变量

cat >>/etc/bash.bashrc<<EOF
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/dmdbms/bin"
export DM_HOME="/usr/local/dmdbms"
EOF

生成达梦数据库

## 创建必须的目录结构
mkdir -p /data/database/dmdb && chown -R dmdba:dmdba /data/database/dmdb

cd /usr/local/dmdbms/bin && ./dminit path=/data/database/dmdb/ah_dazhang DB_NAME=ah_dazhang PAGE_SIZE=8 EXTENT_SIZE=16 MAIN_DBF_PATH=/data/database/dmdb/ah_dazhang/main.dbf SYSTEM_DBF_PATH=/data/database/dmdb/ah_dazhang/system.dbf ROLL_DBF_PATH=/data/database/dmdb/ah_dazhang/roll.dbf TEMP_DBF_PATH=/data/database/dmdb/ah_dazhang/temp.dbf LOG_SIZE=512 CASE_SENSITIVE=0 CHARSET=1 BUFFER=256 LOG_SIZE=512 SYSDBA_PWD=Ah_dazhang SYSAUDITOR_PWD=Ah_dazhang

注册刚创建的数据库

cd /usr/local/dmdbms/script/root && ./dm_service_installer.sh -t dmserver -p ah_dazhang  -dm_ini /data/database/dmdb/ah_dazhang/ah_dazhang/dm.ini

启动数据库服务

systemctl  status DmServiceah_dazhang.service
systemctl  start  DmServiceah_dazhang.service
systemctl  status DmServiceah_dazhang.service

##检查端口是否已经在监听
ss -ntlp  | egrep "5236|4236"
## 看到有端口则说明,服务启动OK

END