-
概要本篇主要讲解GaussDB使用过程中遇到的“FATAL: terminating connection due to administrator command”相关报错进行阐述。按报错现象可分为两类场景,一类是在客户端报错的同时,查找cn日志相应时间点的日志,可以找到相关报错日志;另一类是客户端报错,但cn日志在报错时间点未能找到相关报错日志。接下来分别以这两种场景进行以案例的形式进行介绍介绍。(后续有其他场景或案例会持续补充更新)目录【场景一: CN在客户端报错相应时间点有日志记录】【问题描述】【分析过程】【闭环方案】【场景二: CN在客户端报错相应时间点未找到日志记录】【分析及案例】【场景一: CN在客户端报错相应时间点有日志记录】【问题描述】 业务偶现报错“FATAL: terminating connection due to administrator command”,如下图: 【分析过程】业务报错打印“FATAL: terminating connection due to administrator command”, 经过排查代码只有在收到SIGTERM信号时打印此信息。进一步分析SIGTERM信号只有3个场景会触发:(1)集群停止shutdown;(2)强制清理连接clean connection force;(3)调用终止服务线程函数pg_terminate_backend(pid)三种场景详细分析如下:第一种情况:集群停止shutdown场景,分析全量日志,查看报错时间点是否有任何集群停止命令对应日志,若没有排除集群停止shutdown导致服务线程终止因素。# grep -nr "fast shutdown request" ./第二种情况:强制清理连接clean connection force,通过排查数据库各模块代码,在数据库内没有任何调用此接口的代码,只是一个对外接口,排除数据库内部自行调用clean触发因素。第三种情况:调用终止服务线程函数pg_terminate_backend(pid),通过排查各模块代码,数据库内部有且仅有cm_agent模块一处调用。 cm_agent在检测磁盘超过阈值(默认90%)场景下,会调用命令“select pg_terminate_backend(pid) from pg_stat_activity where usesysid <> 10”终止当前CN上所有非omm用户的SQL,同时打印调用日志“cancel session ok”,排查cma日志,报错时间点是否出现过cma终止当前cn所有非omm用户sql的打印。并未发现日志打印,说明cma并没有发送终止命令。# grep "pg_terminate_backend" cm/*/*.log· 目前为止遇到的此报错大多数是由于客户端调用pg_terminate_backend和clean connection foece导致,当用户遇到此类问题时,排除集群停止shutdown导致服务线程终止因素,建议排查执行的作业是否包含pg_terminate_backend和clean connection foece关键字,以下通过两个案例简单说明。· 案例详解· 案例一:1、 报错现象:客户跑批时sql被无故杀掉,业务报错打印“FATAL: terminating connection due to administrator command”2、 在日志中查看到,有关于pg_terminate_backend调用的记录(如下图) 3、 另外,CM在检查磁盘空间超过阈值设置只读时,也会下发pg_terminate_backendBDP17189/logfiles/cm/cm_agent/cm_agent-2019-08-06_111323-current.log:2019-10-26 22:12:28.502 tid=127209 LOG: exec: (select pg_terminate_backend(pid) from pg_stat_activity where usesysid <> 10), cancel session ok. BDP17189/logfiles/cm/cm_agent/cm_agent-2019-08-06_111323-current.log:2019-10-27 20:14:47.912 tid=127209 LOG: exec: (select pg_terminate_backend(pid) from pg_stat_activity where usesysid <> 10), cancel session ok. BDP17189/logfiles/cm/cm_agent/cm_agent-2019-08-06_111323-current.log:2019-10-29 04:08:51.278 tid=127209 LOG: exec: (select pg_terminate_backend(pid) from pg_stat_activity where usesysid <> 10), cancel session ok.4、 因此从日志来看,业务侧确实有调用pg_terminate_backend杀线程, 另外cm在检查磁盘空间超过阈值设置只读时也下发过几次pg_terminate_backend· 案例二: 1、报错现象: 客户端偶现报错: 2、分析 1)根据上述报错场景分析,排除集群停止shutdown,怀疑可能是调用了clean connection force和pg_terminate_backend,gdb抓现场,设置两个断点断点:pg_terminal_backend和clean_connection force。(gdb) bt #0 CleanConnection (stmt=0x7f62118aa468) at poolutils.cpp:274 #1 0x0000000001875f35 in standard_ProcessUtility (parsetree=0x7f62118aa468, queryString=0x7f62118a9060 "CLEAN CONNECTION TO ALL FORCE FOR DATABASE postgres;", params=0x0, isTopLevel=true, dest=0x7f62118aa580, sentToRemote=false, completionTag=0x7f61d95648a0 "") at utility.cpp:6498 #2 0x0000000001886098 in pgaudit_ProcessUtility (parsetree=0x7f62118aa468, queryString=0x7f62118a9060 "CLEAN CONNECTION TO ALL FORCE FOR DATABASE postgres;", params=0x0, isTopLevel=true, dest=0x7f62118aa580, sentToRemote=false, completionTag=0x7f61d95648a0 "") at auditfuncs.cpp:1240 #3 0x000000000186803e in ProcessUtility (parsetree=0x7f62118aa468, queryString=0x7f62118a9060 "CLEAN CONNECTION TO ALL FORCE FOR DATABASE postgres;", params=0x0, isTopLevel=true, dest=0x7f62118aa580, sentToRemote=false, completionTag=0x7f61d95648a0 "") at utility.cpp:1506 #4 0x00000000018637c9 in PortalRunUtility (portal=0x7f62118af060, utilityStmt=0x7f62118aa468, isTopLevel=true, dest=0x7f62118aa580, completionTag=0x7f61d95648a0 "") at pquery.cpp:1682 #5 0x0000000001863c2c in PortalRunMulti (portal=0x7f62118af060, isTopLevel=true, dest=0x7f62118aa580, altdest=0x7f62118aa580, completionTag=0x7f61d95648a0 "") at pquery.cpp:1842 #6 0x0000000001862522 in PortalRun (portal=0x7f62118af060, count=9223372036854775807, isTopLevel=true, dest=0x7f62118aa580, altdest=0x7f62118aa580, completionTag=0x7f61d95648a0 "") at pquery.cpp:1114 #7 0x000000000184c22b in exec_simple_query (query_string=0x7f62118a9060 "CLEAN CONNECTION TO ALL FORCE FOR DATABASE postgres;", messageType=QUERY_MESSAGE, msg=0x7f61d9564ba0) at postgres.cpp:2777 #8 0x0000000001857110 in PostgresMain (argc=1, argv=0x7f624818f850, dbname=0x7f62437418a8 "database_resource_monitor", username=0x7f6243741840 "user_resource_monitor") at postgres.cpp:8268 #9 0x000000000166bcd3 in BackendRun (port=0x7f61d95661c0) at postmaster.cpp:7063 #10 0x000000000166d743 in SubPostmasterMain (argc=3, argv=0x7f61d9566430) at postmaster.cpp:7810 #11 0x000000000166c8f7 in MainStarterThreadFunc (args=0x7f625ad01bd8) at postmaster.cpp:7250 #12 0x0000000001d67ae6 in ThreadStarterFunc (arg=0x7f625ad01bc0) at gs_thread.cpp:389 #13 0x00007f633bf97806 in start_thread () from /lib64/libpthread.so.0 #14 0x00007f633bcf264d in clone () from /lib64/libc.so.6 #15 0x0000000000000000 in ?? () (gdb) p *MyProcPort $1 = {sock = 212, …, remote_host = 0x7f2e6074aee0 "100.185.178.233", remote_hostname = 0x7f2e6074aee0 "100.185.178.233", remote_hostname_resolv = 0, remote_port = 0x7f2e6074af70 "52563", …} 2)由上知,对端100.185.178.233,端口41684 ,明确对端信息后,登录到对端查看此连接对应的对端进程到底在做什么 3)登录到对端机器100.185.178.233,根据remote_port 52563找到进程,结果如下图: linux178233:/lvs_kehuduan/script/dml # netstat -anop | grep 52563 tcp 0 0 100.185.178.233:52563 100.185.185.182:6000 ESTABLISHED 229505/gsql keepalive (1.40/0/0) linux178233:/lvs_kehuduan/script/dml # ps ux | grep 229505 root 229505 0.7 0.0 53048 3400 pts/1 S 22:07 0:00 gsql -d database_resource_monitor -p 6000 -U user_resource_monitor -W -h 100.185.185.182 -f dml/test_clean_connection.sql root 229531 0.0 0.0 5736 816 pts/4 S+ 22:08 0:00 grep 229505 linux178233:/lvs_kehuduan/script/dml # 3、结论 最终发现是用户在100.185.178.233 上通过gsql连接到集群,并持续执行test_clean_connection.sql,就是下图一个神奇的脚本,接近无限循环清理连接。。 一直在执行test_clean_connection.sql:--创建jack用户。 CREATE USER jack PASSWORD 'Bigdata123@'; --删除数据库template1在dn1和dn2节点上的连接。 CLEAN CONNECTION TO NODE (dn_6001_6002) FOR DATABASE template1; --删除用户jack在dn1节点上的连接。 CLEAN CONNECTION TO NODE (dn_6001_6002) TO USER jack; --删除在数据库postgres上的所有连接。 CLEAN CONNECTION TO ALL FORCE FOR DATABASE postgres; --删除用户jack。 DROP USER jack;案例三: 1.客户业务从172节点的cn接入 2.用户业务偶现报错打印“FATAL: terminating connection due to administrator command“,重试可成功 2.根据以上报错场景分析,排除shutdown场景,此报错只有两种场景:1)外部调用pg_terminate_backend函数 2)clean connection force 3.排查发现用户自己有杀超时语句的程序,但是在172节点客户程序的日志中未找到该语句被杀的记录,并且语句是刚跑起来就被杀 4.继续排查,在171节点的客户程序日志中找到了该语句被杀的日志 5.经分析,是因为客户杀语句的程序使用了current_time() - backend_start【闭环方案】 排查代码中下发SIGTERM信号场景,后续版本中在调用pg_terminate_backend和clean connection force时,均打印日志,例如: Send SIGTERM to thread: send SIGTERM signal to walreceiver thread use pg_terminate_backend to terminate backend thread,tid【场景二: CN在客户端报错相应时间点未找到日志记录】 【分析及案例】 1、报错现象 Jdbc客户端报错如下: 2、分析 1)CN和DN日志中均未搜到“FATAL: terminating connection …”报错信息。按照场景一种提到的三种方式排查,均为发现异常。 2)查看用户设置的session_timeout为1d,当达到超时时间时,集群会自动关闭此连接,如下图,在11:24时重新执行作业报错,查看日志发现在11:18:54.387因为已经达到超时时间,连接已经被关闭。 3、对于jdbc来说,客户端和cn的之间的连接达到了session_timeout被kill,但是getConnections又从jdbc连接池拿了这个连接所以报的错。
-
Centos7默认的openssl版本过低,导致无论你怎么配置ssl网站都会一堆漏洞,评价F甚至更低。配置完后如图:测试ssl安全性地址:https://myssl.com1. 安装依赖环境:yum install pcre-devel zlib unzip git2. 查看当前 OpenSSL 版本:openssl version得到结果:OpenSSL 1.0.2k-fips 26 Jan 20173. 下载 OpenSSL 的最新版:去官网 https://www.openssl.org/source/ 选择最新的就可以。我这边现在是 1.1.1iwget https://www.openssl.org/source/openssl-1.1.1i.tar.gztar -zxvf openssl-1.1.1i.tar.gz4. 进入目录编译安装:cd openssl-1.1.1i./config --prefix=/usr --openssldir=/etc/ssl --libdir=lib shared zlib-dynamicmake dependmake && make install如果不能make就说明没有安装gccyum install gcc gcc-c++ autoconf automake如果提示:zlib.h: No such file or directory5. 拷贝 so 库到指定位置cp /usr/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1cp /usr/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.16. 查看 OpenSSL 最新版本openssl versionOpenSSL 1.1.1i 21 Apr 2020为什么按上面操作后不是A+?因为没有开启HSTS功能add_header Strict-Transport-Security "max-age=31536000";这样添加再检测,就是A+了如果我的还提示PCI DSS不合规呢?那您就看看您使用的cdn是否关闭了tls1.0
-
一、RTMP、RTSP、HTTP协议 这三个协议都属于互联网 TCP/IP 五层体系结构中应用层的协议。理论上这三种都可以用来做视频直播或点播。但通常来说,直播一般用 RTMP、RTSP,而点播用 HTTP。下面分别介绍下三者的特点。1,RTMP协议(1)是流媒体协议。(2)RTMP协议是 Adobe 的私有协议,未完全公开。(3)RTMP协议一般传输的是 flv,f4v 格式流。(4)RTMP一般在 TCP 1个通道上传输命令和数据。 2,RTSP协议(1)是流媒体协议。(2)RTSP协议是共有协议,并有专门机构做维护。.(3)RTSP协议一般传输的是 ts、mp4 格式的流。(4)RTSP传输一般需要 2-3 个通道,命令和数据通道分离。 3,HTTP协议(1)不是是流媒体协议。(2)HTTP协议是共有协议,并有专门机构做维护。 (3)HTTP协议没有特定的传输流。 (4)HTTP传输一般需要 2-3 个通道,命令和数据通道分离。二、可用的直播流地址通常进行 RTMP/RTSP 开发时,除了可以自己搭建视频服务器来进行测试外。也可以直接使用一些电视台的直播地址,省时省力。下面是收集汇总的一些视频直播地址。 1,RTMP协议直播源湖南卫视:rtmp://58.200.131.2:1935/livetv/hunantv 广西卫视 :rtmp://58.200.131.2:1935/livetv/gxtv广东卫视:rtmp://58.200.131.2:1935/livetv/gdtv东方卫视:rtmp://58.200.131.2:1935/livetv/dftv 2,RTSP协议直播源大熊兔(点播):rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov 3,HTTP协议直播源CCTV1高清:http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8CCTV3高清:http://ivi.bupt.edu.cn/hls/cctv3hd.m3u8CCTV5高清:http://ivi.bupt.edu.cn/hls/cctv5hd.m3u8CCTV5+高清:http://ivi.bupt.edu.cn/hls/cctv5phd.m3u8CCTV6高清:http://ivi.bupt.edu.cn/hls/cctv6hd.m3u8 三、播放软件推荐:VLC要播放视频直播流,或者测试一个直播视频地址是否可以使用。这里推荐 VLC 媒体播放器。功能强大且跨平台。支持 Windows、Mac OS、Linux、Android、iOS。 官网地址:http://www.videolan.org/ 打开播放器,选择菜单中“媒体”->“打开网络串流...”。在弹出页面中填入视频地址即可。————————————————最后,可以使用华为云提供的体验域名进行体验测试,具体推流和播放指导请参见三分钟体验视频直播。· 推流域名:push.hwvideo.hwcloudlive.com· 推流URL:rtmp://push.hwvideo.hwcloudlive.com/live/{StreamName}· 播放域名:pull.hwvideo.hwcloudlive.com 播放URL· RTMP格式:rtmp://pull.hwvideo.hwcloudlive.com/live/{StreamName}· FLV格式:http://pull.hwvideo.hwcloudlive.com/live/{StreamName}.flv· M3U8格式:http://pull.hwvideo.hwcloudlive.com/live/{StreamName}.m3u8StreamName:流名称,您可以自行定义,推流地址和播放地址中的“StreamName”需保持一致。注意:以上域名和地址仅用于测试体验直播服务,若您需要开展正式的直播活动,请您注册正式的域名,并备案。
-
IPCC中agent服务器通过调用HTTP返回接口进行开发程序,但在程序签入时返回000-003:提示的是调用接口没有权限,这个问题需要怎么解决
-
1 软件介绍MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。 2 预置条件2.1 硬件配置本文档TaiShan 2280 200基于硬件环境展开。2.2 软件环境1、 本文档基于新安装的CentOS Linux release 7.6.1810系统环境展开。2、 系统安装时选择了Development Tools套件。 3 配置环境3.1 关闭防火墙并取消开机自启动#systemctl stop firewalld.service#systemctl disable firewalld.service (测试环境下通常会关闭防火墙以避免部分网络因素影响,视实际需求做配置)3.2 修改SELINUX为disabled执行:#sed -i 's/SELINUX=enforcing/SELINUX=disable/g' /etc/sysconfig/selinux 3.3 搭建数据盘如数据目录使用单独硬盘,需要对磁盘进行格式化并挂载1、 创建分区(以/dev/sdb为例,根据实际情况创建)#fdisk /dev/sdb分别输入:n 回车确认;p 回车确认;1 回车确认;按默认配置 回车;默认配置 回车;w 回车保存。2、 创建文件系统(以xfs为例,根据实际需求创建文件系统)#mkfs.xfs /dev/sdb13、 挂载分区到/data以供操作系统使用#mkdir /data#mount /dev/sdb1 /data4、 编辑/etc/fstab使重启后自动挂载数据盘,添加如下标红行,其中/dev/nvme6n1替换为对应分区名称,如/dev/sdb1 3.4 创建用户、组和目录服务器环境下,为了系统安全,通常会为进程分配单独的用户,以实现权限隔离1、 创建mysql用户(组)#groupadd mysql#useradd -g mysql mysql2、 设置mysql用户密码#passwd mysql重复输入密码(根据实际需求设置密码)3、 创建进程所需的相关目录并授权mysql用户(组)#mkdir -p /data/mysql/#cd /data/mysql #mkdir data tmp run log#chown -R mysql:mysql /data /mysql4 安装运行Mysql支持多种安装方式:RPM安装、编译安装等,本文只介绍编译安装。 4.1 编译安装4.1.1 依赖包下载安装I. 配置本地yum库1、 执行命令备份原yum库文件并将新配置写入repo文件:#mv /etc/yum.repos.d/ /etc/yum.repos.d-bak#mkdir /etc/yum.repos.d#echo -e "[local]\nname=local\nbaseurl=file:///mnt\ngpgcheck=0\nenabled=1" > /etc/yum.repos.d/local.repo2、 执行cat确认上一步操作写入成功,显示如下图#cat /etc/yum.repos.d/local.repoII. 挂载OS镜像文件需要在KVM挂载镜像或者上传OS镜像至系统,即执行1或者2。1、 KVM挂载镜像,挂载镜像至/mnt/目录下#mount /dev/sr0 /mnt/注:lsblk可以查看是/dev/sr0还是/dev/sr1等2、 上传OS镜像至/home路径,挂载镜像至/mnt/目录下(iso文件名视具体情况修改)#mount /home/CentOS-7-aarch64-Everything-1810.iso /mnt/III. 执行以下命令安装所需依赖包# yum install bison ncurses ncurses-devel libaio-devel openssl openssl-devel gmp gmp-devel mpfr mpfr-devel libmpc libmpc-develIV. 升级cmake 至3.4.3或以上版本(本文以3.5.2版本为例)#wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz --no-check-certificate#tar -zxvf cmake-3.5.2.tar.gz#cd cmake-3.5.2#./bootstrap#make -j 64#make installV. 升级gcc版本至5.3或者以上(本文以7.3版本为例)系统自带的gcc软件很老,需要重新安装。可以参考《TaiShan服务器性能工具测试及调优指导书》来升级到gcc7.3.0gcc7.3下载地址: https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gzgcc安装路径 /usr/local/gcc-7.3.0/4.1.2 Mysql安装I. 下载源码下载MySQL源码包(includes Boost Headers),并上传至服务器:https://downloads.MySQL.org/MySQL/8.0.19/ 上传至服务器/home自定义目录下, 执行tar -zxvf mysql-boost-8.0.19.tar.gz解压后得到mysql-8.0.19目录。II. 编译安装1、进入/home/zy/mysql-8.0.19源码文件夹:# cd /home/zy/mysql-8.0.192、执行命令进行编译安装cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql-8.0.16/mysql -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DENABLE_DTRACE=0 -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_EMBEDDED_SERVER=1 -DCMAKE_C_COMPILER=/usr/local/gcc-7.3.0/bin/gcc -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/home/zy/mysql-8.0.19/boost/boost_1_70_0 -DFORCE_INSOURCE_BUILD=1 在编译安装的时候,路径要根据实际情况而定,下表为对编译安装的关键路径的解释:DCMAKE_INSTALL_PREFIX用于指定软件的安装路径。本次安装路径为:/usr/local/mysqlDMYSQL_DATADIR创建数据库时,数据文件存放的路径。本次安装路径为:/data/mysql/dataDCMAKE_C_COMPILER安装gcc的存放路径 /usr/local/gcc-7.3.0/bin/gccDWITH_BOOST解压的mysql安装压缩包中boost_1_70_0文件夹所在路径。例如,本文解压在/home目录下,则路径为:/home/zy/mysql-8.0.19/boost/boost_1_70_0# make -j64# make installIII. 修改配置文件编辑my.cnf文件,其中文件路径(包括软件安装路径、数据日志存放路径等)根据实际情况修改。修改/etc/my.cnf文件的组和用户为mysql:mysql。#chown mysql:mysql /etc/my.cnf IV. 配置环境变量编译安装完成后,将mysql二进制文件路径到PATH:echo export PATH=$PATH:/usr/local/mysql/bin >> /etc/profile其中PATH中的/usr/local/mysql/bin路径,为mysql软件安装目录下的bin文件的绝对路径[root@localhost ~]# source /etc/profile 4.1.3 运行I. 初始化数据库执行下面的命令初始化数据库后,回显中第3行中有初始密码,注意保存,7.3章节会用到。# /home/mysql-8.0.16/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize --basedir=/home/mysql-8.0.16/mysql --datadir=/data/mysql-8.0.16/mysql/data --user=mysqlII. 启动MySQL服务chmod 777 /usr/local/mysql/support-files/mysql.servercp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqlchkconfig mysql onservice mysql startIII. 接入mysql环境。mysql -uroot -p(密码为7.1章节的初始密码,请留意包括特殊字符)IV. 配置数据库账号密码>alter user 'root'@'localhost' identified by "123456";——修改本地root用户登录密码>create user 'root'@'%' identified by '123456';——创建全域root用户(允许root从其他服务器访问)>grant all privileges on *.* to 'root'@'%';——进行授权>flush privileges; V. 退出数据库 执行\q退出数据库5 常见问题处理5.1.1 cmake升级版本不生效的问题问题描述:4.4章节执行后版本不生效。问题原因:可能是原系统自带cmake未卸载造成的解决方法:参考https://blog.csdn.net/jiang_xinxing/article/details/77945478先通过yum移除原先的cmake,然后加软连接 5.1.2 cmake编译安装失败问题描述:6.1章节执行cmake . -DCMAKE_INSTALL_PREFIX=/home/mysql-8.0.16/mysql -DMYSQL_DATADIR=/data/mysql-8.0.16/mysql -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DENABLE_DTRACE=0 -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_EMBEDDED_SERVER=1 -DCMAKE_C_COMPILER=/usr/bin/gcc -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/home/mysql-8.0.16/boost/boost_1_69_0 -DFORCE_INSOURCE_BUILD=1后报错如下 解决方法:把cmakecache.txt文件删了之后,重新执行5.1.3 按huaweicloud上的方法到启动数据库开始有问题。https://support.huaweicloud.com/instg-kunpengdbs/kunpengmysql8017_03_0013.html即使是编译安装Mysql,也需要修改配置文件、文件目录权限等按指导走到启动数据库,执行Service mysql start 报错尝试find / -name mysql.sock找不到任何文件。cat /etc/my.cnf发现socket配置的是/data/mysql/run/mysql.sock建立个软链接 Ln –s /data/mysql/run/mysql.sock /tmp/mysql.sock但是/data/mysql/run底下没有此sock文件只有链接也没用。 提示/lib64/libstdc++.so.6找不到查看路径下是否有发现链接指向的是6.0.19,这是gcc4.8.5对应的,不正确。应该是gcc7.3.0对应的版本才是对的。查看gcc7.3.0的安装路径下是否有这个so,是6.0.24的版本。重新建立一个软链接,Ln –sf /usr/local/gcc-7.3.0/lib64/libstdc++.so.6.0.24 /lib64/libstdc++.so.6再启动,这个问题解决。报pid找不到的错误。 安装文件路径要有mysql访问权限,还要手动创建mysql.log和mysql.pid文件,给予mysql用户及用户组权限vi /data/log/mysql.log 【空文件保存退出即可】vi /data/run/mysql.pid 【空文件保存退出即可】chown -R mysql:mysql /data 去查找一下pid文件,看下是否存在。如果存在,权限目录是否mysql用户可以访问。发现是root用户,就赋予mysql用户权限。 登录数据库还是报错。 修改配置文件中的每一项的路径,按实际的来写。Socket的路径写好,并建立软链接。(里面的文件所在的目录均要有mysql用户访问的权限)5.1.4 需要用到mysql connector/c的话,是否需要单独安装connector?mysql如果客户需要用到mysql connector/c的话,不需要单独安装connector,可以看官网的说明和解释。 只要安装了mysql community server就可以,可以实际去查询确认是有libmysqlclient.a和libmysqlclient.so库的。 6 参考资料https://dev.mysql.com/doc/refman/5.7/en/c-api.html
-
200:请求被正常处理204:请求被受理但没有资源可以返回206:客户端只是请求资源的一部分,服务器只对请求的部分资源执行GET方法,相应报文中通过Content-Range指定范围的资源。301:永久性重定向302:临时重定向303:与302状态码有相似功能,只是它希望客户端在请求一个URI的时候,能通过GET方法重定向到另一个URI上304:发送附带条件的请求时,条件不满足时返回,与重定向无关307:临时重定向,与302类似,只是强制要求使用POST方法400:请求报文语法有误,服务器无法识别401:请求需要认证403:请求的对应资源禁止被访问404:服务器无法找到对应资源500:服务器内部错误503:服务器正忙
-
事情是这样的,公司成立了一个新项目,要给项目建官网,并搭建一个web服务器。按照我的习惯,搭建一个本地虚拟机就好了,部署简单方便还好配置,云服务器嘛,写了10年代码,还是不习惯那玩意儿。我这刚开始动手,就看见实习生屁颠屁颠地跑过来,我心想这小子肯定是想来学虚拟机搭建部署的,这么简单的事都不会,真是白瞎了他那985的学校了。可是...万万没想到啊,小实习生跑到我老大那里邀功去了!!!远远地听见他说:“公司新项目跑在云服务器上了,以后可以根据访问量随时进行弹性扩展,安全稳定还快。”啥?云服务器?这小子居然会配置云服务器?听完汇报,老大看向了我,带着小实习生往我这边走过来……“哼,叫你邀功,撞枪口上了吧,我就说云服务器配置没那么容易,还不是得来找我~”这么想着有点得意,老大走过来拍拍我的肩膀,说:“你跟他学一下怎么配置云服务器,别再用虚拟机了,以后都是麻烦事。”我...他...让我跟一个实习生学???实习生冲我微微一笑,就走了,没过一会扔给我一份文档,上面写着:“创建弹性云服务器流程详解”。打开粗略扫了一眼,代码都直接贴上来了?瞧不起谁?感觉有被冒犯到。技术人嘛,看到代码还是没忍住跑一遍,等我发现bug或跑不通,再给他上上课!结果……真香。内容是这样的:通过API创建云服务器的9个步骤(以指定镜像方式创建云服务器为例)(内容来源:https://support.huaweicloud.com/api-ecs/ecs_04_0001.html)步骤一:确定待创建云服务器所在的可用区。1、查询可用区。(1)接口相关信息URI格式:GET/v2.1/{project_id}/os-availability-zone(2)请求示例GET: https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/os-availability-zone(3)响应示例{ "availabilityZoneInfo":[ { "hosts":null, "zoneState":{ "available":true }, "zoneName":"zone_01" }, { "hosts":null, "zoneState":{ "available":true }, "zoneName":"zone_01" } ] } 2、根据实际需要选择可用区,并记录可用区的zoneName。步骤二:确定待创建云服务器的规格。1、查询云服务器规格信息。(1)接口相关信息URI格式:GET/v2.1/{project_id}/flavors/detail{?minDisk,minRam,is_public,sort_key,sort_dir}其中,“?”后的字段为查询规格时可选的查询检索参数。(2)请求示例GET: https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/flavors/detail(3)响应示例 { "flavors":[ { "name":"c1.2xlarge", "links":[ { "href":"https://xxx/v2.1/74610f3a5ad941998e91f076297ecf27/flavors/c1.2xlarge", "rel":"self" }, { "href":"https://xxx/74610f3a5ad941998e91f076297ecf27/flavors/c1.2xlarge", "rel":"bookmark" } ], "ram":8192, "OS-FLV-DISABLED:disabled":false, "vcpus":8, "swap":"", "os-flavor-access:is_public":true, "rxtx_factor":1, "OS-FLV-EXT-DATA:ephemeral":0, "disk":0, "id":"c1.2xlarge" } ] } 2、 根据实际需要选择规格,并记录规格的ID。步骤三:确定待创建云服务器使用的镜像。1、查询镜像。(1)接口相关信息URI格式:GET /v2.1/{project_id}/images/detail(2)请求示例GET: https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/images/detail(3)响应示例 { "images":[ { "OS-EXT-IMG-SIZE:size":0, "metadata":{ "__os_type":"Linux", "hw_vif_multiqueue_enabled":"true", "__imagetype":"gold", "__quick_start":"true", "virtual_env_type":"FusionCompute", "__support_xen":"true", "__support_kvm":"true", "__image_source_type":"uds", "__platform":"EulerOS", "__os_version":"EulerOS 2.2 64bit", "__os_bit":"64", "__isregistered":"false" }, "created":"2018-05-14T06:13:50Z", "minRam":0, "name":"DBS-MySQL-Image_2.1.3.3", "progress":100, "links":[ { "rel":"self", "href":"https://None/v2.1/74610f3a5ad941998e91f076297ecf27/images/11e8f727-d439-4ed1-b3b8-33f46c0379c4" }, { "rel":"bookmark", "href":"https://None/74610f3a5ad941998e91f076297ecf27/images/11e8f727-d439-4ed1-b3b8-33f46c0379c4" }, { "rel":"alternate", "href":"https://None/images/11e8f727-d439-4ed1-b3b8-33f46c0379c4", "type":"application/vnd.openstack.image" } ], "id":"11e8f727-d439-4ed1-b3b8-33f46c0379c4", "updated":"2018-05-14T06:13:52Z", "minDisk":40, "status":"ACTIVE" } ] }2、根据需要选择镜像,并记录镜像ID。步骤四:确定云服务器的网络信息。1、查询网络。(1)接口相关信息URI格式:GET /v2.1/{project_id}/os-networks(2)请求示例GET: https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/os-networks(3) 响应示例 { "networks":[ { "id":"07a9557d-4256-48ae-847c-415a9c8f7ff6", "label":"b_tt3_td1b", "broadcast":null, "cidr":null, "dns1":null, "dns2":null, "gateway":null, "netmask":null, "cidr_v6":null, "gateway_v6":null, "netmask_v6":null } ] }2、根据需要选择网络,并记录网络ID。步骤五:设置密钥对登录方式。如需设置为密码登录方式,请直接跳转至步骤七。1、创建密钥对。(1)接口相关信息URI格式:POST /v2.1/{project_id}/os-keypairs(2)请求示例POST: Body: { "keypair":{ "type":"ssh", "name":"demo1", "user_id":"fake" } }(3)响应示例 { "keypair":{ "public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCrR5Gcwlh5ih7JOvzIUuQxS5qzWWPMYHeDXkDKSQ9W5pumOV05SiO3WCswnaQ5xMdOl31mNiHtwlwq9dJi7X6jJBB2shTD+00G5WuwkBbFU4CLvt1B44u0NUiaTJ35NAvW2/4XvpXm9OwiQ3B5ge6ZY7Esi38Unh+pkbhPkYxNBCK8yoOlojQhWs75abdxZBi811/8RwLcNiFiocA2RGxtRjBdpEScj+1TU+OcfZdQnr0AFbO11z7yxfIygwwzVTgUuJNbMbKHStQqRbklfMlHY4RBPQgb7RN/YaXKTQSXT84k+D9xlDNo7Wj4fwOJTOz/s/PvbIOqjRHt9D6Y4IKd Generated-by-Nova\n", "private_key":"-----BEGIN RSA PRIVATE KEY-----\nMIIEogIBAAKCAQEAq0eRnMJYeYoeyTr8yFLkMUuas1ljzGB3g15AykkPVuabpjld\nOUojt1grMJ2kOcTHTpd9ZjYh7cJcKvXSYu1+oyQQdrIUw/tNBuVrsJAWxVOAi77d\nQeOLtDVImkyd+TQL1tv+F76V5vTsIkNweYHumWOxLIt/FJ4fqZG4T5GMTQQivMqD\npaI0IVrO+Wm3cWQYvNdf/EcC3DYhYqHANkRsbUYwXaREnI/tU1PjnH2XUJ69ABWz\ntdc+8sXyMoMMM1U4FLiTWzGyh0rUKkW5JXzJR2OEQT0IG+0Tf2Glyk0El0/OJPg/\ncZQzaO1o+H8DiUzs/7Pz72yDqo0R7fQ+mOCCnQIDAQABAoIBAA6/c9dGmK2mae4z\nyQ5KrOFdvC1TNhej+sZx+CwyzEJUSvSuHcvQCXFBAz8FY92hhvPKcX66jINXZ+4/\nCmWAQ5YyhcRiow0Y91HvsS0bywoknX3q6kxBFodmyyCWFkgd5iMTADb1Lx0a27Y7\njlS4Dl5gyiGmxUN2Ng24wWEAjE8ZNuI0lrtr5IZKp+s5IAi/rb5AG/mL7EzicE8c\nmGP+QAa+nzwhAwNhFwVID230xen/ZcoL1d77hxeARNqJUxoR25gwJd6Ebg2y9pDW\nVu6cbbzgdGUCfQYlMEoAamAkCswOsDpVDBXwQnt2A537n6Wq2bgYIKusHr9thtxP\n/5ubQLUCgYEA4zYuBG2vtLHnvce26P8o2j1xcJS9K0ozkah9JFl3hqFN0sAqLlz7\n/Fm1jA4kzHJS3d0UqP3AMDxY3HkIqCn4Be7lqeAAe2AfqkOZpt9MDNv4VwKe9sPb\nViW1qjL3FxziLC/YWTRNSlpwRjqJJGhA+UQt8rOia1k/zXmrEs7bXLcCgYEAwPsu\nK3j5QoAiziYVMYf5iCzWwAM9Ljpf9gw23lefTdIzhhfFtJplVRSyxRGU0UZ84GMI\nTd5zmcIF/1KUfhqmeiQzz6NIPEYEReahjpQ/sOH/Gk5Rwr3QwYPrwAu5x+kk/SRi\nKPkqw7APTR0sMQBcUq+ZYwGYLGPMdd1zUdLfb0sCgYBkuz11iydtxb3G/obSD2WO\nM9VaIycmzRPFzNwGRH/gOR0mhTluKp0wyJjbSd34oeqpH/2r2ivddrOysxoqa8jg\n4IQDZyLvj7MaKjQxrieqP89+y9Or9TMFo1xB46x2G8EN8/xHuA9YGnZSPFtWv72m\nhRqV0hv82amWsA0vHnRUSwKBgDsKHXvrTMbNkNhkykMXCH5iyWiBFSyZa1ZJMlgf\nknsqfdzeVPwF6E55QKAN2uuTlwzG/3ljPxahR1hvmUJjQN9JSBiUKbtW6GPCRVbr\nf/jLi1Iu99COZdluVKeybqn8Z/aSNP24DR9FM8kxzZ1IMPaTBmhFypp6BclhcLBt\nxTG1AoGAfcrkVbV1SOy7fECUtMpUECcw0yU4GWj3sR2RbII63C500RVYQlUpUaRR\naANbASHTVR4myOKtGSxEUhAQHlxFDwsDL7W3gzAqTFbEDp1xAAUyT/nkOAhQjEm4\nORFdDETeXLQG1KMUj+8AdnhfYp3JTdft6rmPpZEBUFiCAUMAvb0=\n-----END RSA PRIVATE KEY-----\n", "user_id":"f79791beca3c48159ac2553fff22e166", "name":"demo1", "fingerprint":"57:a7:a2:ed:5f:aa:e7:54:62:2e:bb:e7:92:22:cb:40" } }2、导入密钥。(1)接口相关信息URI格式:POST /v2.1/{project_id}/os-keypairs(2)请求示例POST: https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/os-keypairs Body: { "keypair":{ "public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDY8wMTdBYiJgi62o6eShoOlSKx3CZ3cE6PHisDblfK3Y0Bg7EHV7iV9c74pqsrIhK0xuGUuO1NxDQWbkwLTPN4F9Iy5CIYohLuMIpbln6LDtfRPpdhEh3lxL8MM61gyfpKzeKkwkEpSFj27Rgh6zCyJgBpkA2A0HTP737UlitahL4faCWDIS+Vj6mbcfkWiMhuMCzTZgSKAZ4PfoG4B5HJhR52C6A4XLiQFT9heh9gnIsIG+uTogTKUbcJKuN7M6AraJpul6eHhV9YI4433sDmuiBF/njvreVPWwAHlAkgT9I8q1T/cfEFiwzXpdGbkK5O8NC7K+qNbbdKihlahONt Generated-by-Nova\n", "type":"ssh", "name":"demo2", "user_id":"fake" } }(3)响应示例 { "keypair":{ "public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDY8wMTdBYiJgi62o6eShoOlSKx3CZ3cE6PHisDblfK3Y0Bg7EHV7iV9c74pqsrIhK0xuGUuO1NxDQWbkwLTPN4F9Iy5CIYohLuMIpbln6LDtfRPpdhEh3lxL8MM61gyfpKzeKkwkEpSFj27Rgh6zCyJgBpkA2A0HTP737UlitahL4faCWDIS+Vj6mbcfkWiMhuMCzTZgSKAZ4PfoG4B5HJhR52C6A4XLiQFT9heh9gnIsIG+uTogTKUbcJKuN7M6AraJpul6eHhV9YI4433sDmuiBF/njvreVPWwAHlAkgT9I8q1T/cfEFiwzXpdGbkK5O8NC7K+qNbbdKihlahONt Generated-by-Nova\n", "user_id":"f79791beca3c48159ac2553fff22e166", "name":"demo2", "fingerprint":"dd:44:45:49:d9:f6:4f:c0:24:2d:81:aa:c4:4b:83:c2" } }2、记录响应消息体中的name信息。如本例中为“demo2”。步骤六:创建密钥对登录鉴权的云服务器。(1)接口相关信息URI格式:POST /v2.1/{project_id}/servers说明: 本示例是指定image创建云服务器,因此:•block_device_mapping_v2.1中,“source_type”需设置为“image”,“uuid”设置为选择的镜像ID,“destination_type”设置为“volume”,“boot_index”设置为“0”。•“volume_size”应大于等于镜像元数据中指定的最小值。(2)请求示例POST: https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/servers Body: { "server":{ "flavorRef":"c1.large", "name":"zttestvm1", "block_device_mapping_v2.1":[{ "source_type":"image", "destination_type":"volume", "volume_type":"SATA", "volume_size":"40", "delete_on_termination":"true", "uuid":"11e8f727-d439-4ed1-b3b8-33f46c0379c4", "boot_index":"0" }], "networks":[{ "uuid":"fb68519f-a7c0-476e-98d4-2e4cf6de6def" }], "key_name":"demo2", "availability_zone":"az_test_01" } }(3)响应示例 { "server":{ "security_groups":[ { "name":"default" } ], "OS-DCF:diskConfig":"MANUAL", "links":[ { "rel":"self", "href":"https://None/v2.1/74610f3a5ad941998e91f076297ecf27/servers/6d311127-bce1-48db-bf0f-cac9f8f7f077" }, { "rel":"bookmark", "href":"https://None/74610f3a5ad941998e91f076297ecf27/servers/6d311127-bce1-48db-bf0f-cac9f8f7f077" } ], "id":"6d311127-bce1-48db-bf0f-cac9f8f7f077", "adminPass":"WcC4QoVZPXpV" } }步骤七:设置密码登录方式。(1)使用非cloud-init镜像创建云服务器时,Windows和Linux系统都使用“adminPass”参数实现密码注入。(2)使用cloud-init镜像创建云服务器时:对于Linux系统,只能使用“user_data”进行密码注入,“user_data”字符串长度小于65535,且必须是base64加密的;对于Windows系统,只能通过元数据“admin_pass”进行密码注入。步骤八:创建密码方式登录鉴权的弹性云服务器。说明: 本示例是指定image创建弹性云服务器,因此:block_device_mapping_v2.1中,“source_type”需设置为“image”,“uuid”设置为选择的镜像ID,“destination_type”设置为“volume”,“boot_index”设置为“0”。volume_size”应大于等于镜像元数据中指定的最小值。1、创建非cloud-init镜像、密码方式登录鉴权的弹性云服务器。(1)接口相关信息URI格式:POST /v2.1/{project_id}/servers(2)请求示例POST: https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/servers Body: { "server":{ "flavorRef":"c1.large", "name":"zttestvm1", "adminPass":"NOVAGLANCEI@123", "block_device_mapping_v2.1":[{ "source_type":"image", "destination_type":"volume", "volume_type":"SATA", "volume_size":"40", "delete_on_termination":"true", "uuid":"11e8f727-d439-4ed1-b3b8-33f46c0379c4", "boot_index":"0" }], "networks":[{ "uuid":"fb68519f-a7c0-476e-98d4-2e4cf6de6def" }], "availability_zone":"az_test_01" } }(3)响应示例 { "server":{ "security_groups":[ { "name":"default" } ], "OS-DCF:diskConfig":"MANUAL", "links":[ { "rel":"self", "href":"https://None/v2.1/74610f3a5ad941998e91f076297ecf27/servers/73991cff-37c6-491a-9a8a-377397729fce" }, { "rel":"bookmark", "href":"https://None/74610f3a5ad941998e91f076297ecf27/servers/73991cff-37c6-491a-9a8a-377397729fce" } ], "id":"73991cff-37c6-491a-9a8a-377397729fce", "adminPass":"NOVAGLANCEI@123" } }2、创建cloud-init镜像(以Linux为例)、密码方式登录鉴权的弹性云服务器。(1)接口相关信息URI格式:POST /v2.1/{project_id}/servers(2)请求示例POST: Body: { "server":{ "flavorRef":"c1.large", "name":"zttestvm2", "user_data":"IyEvYmluL2Jhc2gKZWNobyAncm9vdDokNiRuaERlcUIkajBkelVMbkFrbWo4bWlFREFzT0VONkVPdGg1RmdqWnQybUVWZVRocC5OVDJXelZVdzFuNzhnL3dNdDE0dVpSQ1V3LzhHS3VGdEViQ0lPQS5vN1BZQzEnIHwgY2hwYXNzd2QgLWU7", "block_device_mapping_v2.1":[{ "source_type":"image", "destination_type":"volume", "volume_type":"SATA", "volume_size":"40", "delete_on_termination":"true", "uuid":"11e8f727-d439-4ed1-b3b8-33f46c0379c4", "boot_index":"0" }], "networks":[{ "uuid":"fb68519f-a7c0-476e-98d4-2e4cf6de6def" }], "availability_zone":"az_test_01" } }(3)响应示例 { "server":{ "security_groups":[ { "name":"default" } ], "OS-DCF:diskConfig":"MANUAL", "links":[ { "rel":"self", "href":"https://None/v2.1/74610f3a5ad941998e91f076297ecf27/servers/7c11f362-cc96-4306-85b6-b432a639ca5e" }, { "rel":"bookmark", "href":"https://None/74610f3a5ad941998e91f076297ecf27/servers/7c11f362-cc96-4306-85b6-b432a639ca5e" } ], "id":"7c11f362-cc96-4306-85b6-b432a639ca5e", "admin_pass":"J3xMSivHCuq5" } } 步骤九:确认云服务器创建成功。(1)接口相关信息URI格式:GET /v2.1/{project_id}/servers/{server_id}(2)请求示例GET: https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/servers/0c71c0da-8852-4c56-a1d1-3a9b9bcb6da6其中:0c71c0da-8852-4c56-a1d1-3a9b9bcb6da6为创建的云服务器UUID。(3)响应示例 { "server":{ "tenant_id":"74610f3a5ad941998e91f076297ecf27", "addresses":{ "2a6f4aa6-d93e-45f5-a8cb-b030dbf8cd68":[ { "OS-EXT-IPS-MAC:mac_addr":"fa:16:3e:88:01:1b", "OS-EXT-IPS:type":"fixed", "addr":"192.168.2.192", "version":4 } ] }, "metadata":{}, "OS-EXT-STS:task_state":null, "OS-DCF:diskConfig":"MANUAL", "OS-EXT-AZ:availability_zone": "az_test_01", "links":[ { "rel":"self", "href":"https://None/v2.1/74610f3a5ad941998e91f076297ecf27/servers/0c71c0da-8852-4c56-a1d1-3a9b9bcb6da6" }, { "rel":"bookmark", "href":"https://None/74610f3a5ad941998e91f076297ecf27/servers/0c71c0da-8852-4c56-a1d1-3a9b9bcb6da6" } ], "OS-EXT-STS:power_state":1, "id":"0c71c0da-8852-4c56-a1d1-3a9b9bcb6da6", "os-extended-volumes:volumes_attached":[ { "id":"b551445a-e749-4d53-932a-638a455cb6c3" } ], "OS-EXT-SRV-ATTR:host":"pod1_test_01", "image":{ "links":[ { "rel":"bookmark", "href":"https://None/74610f3a5ad941998e91f076297ecf27/images/11e8f727-d439-4ed1-b3b8-33f46c0379c4" } ], "id":"11e8f727-d439-4ed1-b3b8-33f46c0379c4" }, "OS-SRV-USG:terminated_at":null, "accessIPv4":"", "accessIPv6":"", "created":"2018-05-25T01:47:11Z", "hostId":"b2792bef989888d2df1f51bff81de5ac58a4117f4e9ec3059c1a0410", "OS-EXT-SRV-ATTR:hypervisor_hostname":"nova001@36", "key_name":null, "flavor":{ "links":[ { "rel":"bookmark", "href":"https://None/74610f3a5ad941998e91f076297ecf27/flavors/c1.large" } ], "id":"c1.large" }, "security_groups":[ { "name":"default" } ], "config_drive":"", "OS-EXT-STS:vm_state":"active", "OS-EXT-SRV-ATTR:instance_name":"instance-001883cd", "user_id":"f79791beca3c48159ac2553fff22e166", "name":"zttestvm1", "progress":0, "OS-SRV-USG:launched_at":"2018-05-25T01:47:55.755922", "updated":"2018-05-25T01:47:55Z", "status":"ACTIVE" } }按照步骤指示,我很快完成了云服务器的搭建,不禁有些惊讶,这小子怎么懂这么多?等等...华为云API Explorer?打开华为云API Explorer的官网,我好像打开了新世界的大门,有很多已配置好的环境和接口,直接调用调试就可以了,以后怕是没有什么能够难住我了!目前API Explorer平台已开放EI企业智能、计算、应用服务、网络、软件开发平台、视频等70+云服务,共上线2000+个API、6000+个错误码。在前期试运行期间,华为云API Explorer平台上的API接口也已被多家企业成功接入。点击查看详情:《华为云一站式API解决方案平台API Explorer上线》据悉,华为云API Explorer平台在未来几个月会实现更多功能,比如支持SDK示例代码、CLI等特性,同时也会开放更多的云服务API接口,连接更多开发者实现创新、拓宽创新边界。【拓展阅读】【API进阶之路】因为不会创建云服务器,我被实习生摆了一道【API进阶之路】前浪的绝地反击与自我证明【API进阶之路】甩锅大会上,我是如何绝地求生的【API进阶之路】一个技术预案,让老板当场喊出了“奥利给”【API进阶之路】万万没想到,一个技术方案帮实习生追到了运营妹子!【API进阶之路】一个技术盲点,差点让整个项目翻车【API进阶之路】老板给我涨薪30%!如何通过SDK接口搞定千万级流量直播【API进阶之路】半天搞定百万条手机号归属地查询,竟影响了公司战略方向!【API进阶之路】无法想象!大龄码农的硬盘里有这么多宝藏【API进阶之路】高考要考口语?一场10w+刷屏活动是如何用多模态评测API做出来的【API进阶之路】帮公司省下20万调研费!如何巧用情感分析API实现用户偏好调研【API进阶之路】逆袭!用关键词抽取API搞定用户需求洞察【华为云API学习赛】为入门初学者量身定制的学习平台,以赛带学,学以致用。参赛、邀请都有丰富奖品,还有机会拿P40 5G手机~API入门学习赛·AI人脸识别l 报名地址l 奖项设置API入门学习赛·探险寻宝之旅l 报名地址l 奖项设置
-
1.ClickHouse简介ClickHouse是一个面向联机分析处理(OLAP)的开源的面向列式存储的DBMS,简称CK, 与Hadoop, Spark相比,ClickHouse很轻量级,由俄罗斯第一大搜索引擎Yandex于2016年6月发布, 开发语言为C++ ClickHouse的特点:开源的列存储数据库管理系统,支持线性扩展,简单方便,高可靠性,容错跑分快:比Vertica快5倍,比Hive快279倍,比MySQL快800倍,其可处理的数据级别已达到10亿级别功能多:支持数据统计分析各种场景,支持类SQL查询,异地复制部署 clickHouse的性能:低延迟:对于数据量(几千行,列不是很多)不是很大的短查询,如果数据已经被载入缓存,且使用主码,延迟在50MS左右。并发量:虽然 ClickHouse 是一种在线分析型数据库,也可支持一定的并发。当单个查询比较短时,官方建议 100 Queries / second。写入速度:在使用 MergeTree 引擎的情况下,写入速度大概是 50 - 200 M / s,如果按照 1 K 一条记录来算,大约每秒可写入 50000 ~ 200000 条记录每秒。如果每条记录比较小的话写入速度会更快 2.环境要求 3.安装依赖环境3.1安装 gcc 9.1 # wget http://mirrors.concertpass.com/gcc/releases/gcc-9.1.0/gcc-9.1.0.tar.xz# tar -xvf gcc-9.1.0.tar.xz# cd gcc-9.1.0gcc编译依赖gmp、mpfr、mpc、isl四个库,mpfr依赖gmp,isl依赖gmp,而mpc依赖gmp和mpfr,因此安装gcc之前首先根据依赖关系依次安装四个库# wget ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2 2020-05-13 21:59:40# wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2# wget ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz# wget ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.18.tar.bz2安装gmp./configure --prefix=/usr/local/gmp-6.1.2makemake install安装mpfr./configure --prefix=/usr/local/mpfr-3.1.5 --with-gmp=/usr/local/gmp-6.1.2makemake install安装mpc./configure --prefix=/usr/local/mpc-1.0.3 --with-gmp=/usr/local/gmp-6.1.2 --with-mpfr=/usr/local/mpfr-3.1.5makemake install安装islyum -y install gmp-devel./configure --prefix=/usr/local/isl-0.18 --with-gmp=/usr/local/gmp-6.1.2makemake install# mkdir gcc-build-9.1.0# cd gcc-build-9.1.0# ../gcc-9.1.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib# make -j4# make installg++ --version如果系统中已经有gcc版本,请参考如下的gcc7.3移植vi /etc/profile 增加:PATH=/usr/local/gcc-7.3.0/bin:$PATH然后source /etc/profilerm -rf /lib64/libstdc++.so.6cp /usr/local/gcc-7.3.0/lib64/libstdc++.so.6.0.24 /usr/lib64cd /usr/lib64ln -s libstdc++.so.6.0.24 libstdc++.so.6vim /etc/ld.so.conf , 增加/usr/local/gcc-7.3.0/lib64执行ldconfig#如果想用系统自带的4.8.5,则删除etc/profile中的/usr/local/gcc-7.3.0/binrm -rf /usr/lib64/libstdc++.so.6,cd /usr/lib64,ln -s libstdc++.so.6.0.19 libstdc++.so.6--结束3.2安装 cmake3.16步骤1 下载cmake安装包。下载地址:https://gitlab.kitware.com/cmake/cmake/tree/v3.13.2步骤2 编译安装cmake。cd /path/to/cmake-3.16./bootstrapgmakemake install可能出现问题:1. 缺少GLIBCXX_3.4.21,或更高版本解决方法:步骤一:#strings /usr/lib64/libstdc++.so.6|grep GLIBCXX发现的确缺少GLIBCXX_3.4.21,但如果已经完成最新的gcc安装,则进行下一步骤步骤二:寻找到GLIBCXX的位置# sudo find / -name "libstdc++.so*"# strings /usr/local/gcc/lib64/libstdc++.so.6|grep GLIBCXX步骤三:根据步骤二寻到的路径建立建立软链接# cp /usr/local/lib64/libstdc++.so.6.0.21 /usr/lib64/# cd /usr/lib64/# rm -f libstdc++.so.6# ln -s libstdc++.so.6.0.20 libstdc++.so.6--结束 4.安装ClickHouse4.1 删除ninja,选择使用make编译1.在/usr/bin/ 删除ninja,目的让cmake生成makefile,未安装ninja 的可忽略此步骤。在ClickHoue安装完毕后,记得重新生成。重新生成的指令如下:[root@apms-ch-arm-0002 ninja]# ./configure.py[root@apms-ch-arm-0002 ninja]# ./bootstrap.py----结束 4.2 ClickHouse源码下载安装步骤一:下载源码# git clone https://github.com/ClickHouse/ClickHouse.git步骤二:下载源码中超链接的文件# git submodule update --init –recursive步骤三:安装依赖# yum -y install lz4-devel openssl-devel zlib-devel zstd-devel protobufdevel libicu-devel readline-devel gperf----结束4.2 修改cmakelist编译选项在/home/ClickHouse/cmakelist中1.添加以下几行命令,防止Could NOT find Threads (missing: Threads_FOUND)报错set(CMAKE_THREAD_LIBS_INIT "-lpthread")set(CMAKE_HAVE_THREADS_LIBRARY 1)set(CMAKE_USE_WIN32_THREADS_INIT 0)set(CMAKE_USE_PTHREADS_INIT 1)set(THREADS_PREFER_PTHREAD_FLAG ON)cmake_minimum_required(VERSION 3.3) 2. 注释掉如下三行命令,禁止将警告作为错误报出 3. 修改以下标黄的语句,添加arm类型,防止产生no suitable type find的报错 4.3 Cmake 编译安装[root@apms-ch-arm-0002 ClickHouse]export CC=gcc;export CXX=g++;rm -rf build;mkdir -p build && cd build;cmake .. -DENABLE_TCMALLOC=OFF -DENABLE_JEMALLOC=OFF -DCMAKE_INSTALL_PREFIX=/opt/clickhouseMake –j32Make install 可能出现的问题:如果在make的过程中产生unknown architectural extension的报错,说明汇编器版本太低。需要建立一个软链接到ascd /usr/bincp as as2.27rm -rf asln -s /······/install-mirror/bin/as as 4.4 配置环境变量步骤 1 配置环境变量[root@apms-ch-arm-0002 build]# export PATH=/opt/clickhouse/bin:$PATH[root@apms-ch-arm-0002build]#export LD_LIBRARY_PATH=/opt/clickhouse/lib:$LD_LIBRARY_PATH 步骤 2 准备数据库配置文件。[root@apms-ch-arm-0002 ~]# mkdir -p /etc/clickhouse-server/[root@apms-ch-arm-0002 ~]# cp /home/ClickHouse/programs/server/config.xml /etc/clickhouse-server/[root@apms-ch-arm-0002 ~]# cp /home/ClickHouse/programs/server/users.xml /etc/clickhouse-server/----结束 5.检查是否安装成功
-
widevine 服务器返回500错误,通过终端抓包看,报消息体错误。HTTP/1.1 500 Internal Server ErrorServer: Apache-Coyote/1.1Date: Mon, 18 May 2020 06:11:15 GMTContent-Type: application/octet-streamContent-Length: 17Connection: closeMALFORMED_REQUEST
-
如下图,有一个http的抓包信息,为啥平均请求次数和执行时间显示为0呢?
-
1. 简介企业或用户将数据中心部署在线下,采用独立软件提供商(Independent Software Vendor)软件进行管理。线下数据运维成本较高,故障容灾单一化,是目前遇到的瓶颈。采用云上数据库并平滑兼容线下ISV软件管理可以降低企业上云难度,加速企业上云,本文以金蝶K/3 WISE 为例,配合华为云SQL Server 实例快速迁移数据中心。适用场景说明:a) 支持本地ISV应用迁移上云b) 支持云上虚拟机中的ISV应用,将数据库远程安装至RDS SQL Server。 2. 案例实现2.1 云上环境搭建 环境说明: a)本地环境:Windows Server 2016 标准版 64位 ,已经安装了金蝶K/3 WISE 相关组件,并创建测试账套,数据库实体为AIS20200415112523,数据库用户为sa。 b)云上环境:华为云SQL Server Microsoft SQL Server 2016 Enterprise Edition 单机实例 4核16GB ,字符集尽量保持和线下一致(线下字符集区分大小写可能会有影响)。华为云弹性云服务器 Windows Server 2016 标准版 64位 4核16GB(用于安装金蝶客户端及账套管理)。备注:安装金蝶的弹性云服务器需要和RDS实例在同一个地域,且VPC相同。否则可能需要搭建专用网络通道进行预先测试连通性后方可兼容,非同vpc下的访问时效不能完全保证。注意:2008版本可能会出现无法使用服务名注册账套最终导致使用客户端登录失败,不建议使用2008版本进行对接c) 本文适配华为云 RDS SQL Server版本如下:SQL Server 2017企业版/标准版SQL erver 2016企业版/标准版SQL Server 2014企业版/标准版SQL Server 2012企业版/标准版2.2 数据准备在本地服务器上,使用数据库管理工具(如SQL Server Management Studio)登录本地数据库,找到对应账套数据库(这里为AIS20200415112523)。 选中数据库,右键数据库属性->选项,选择恢复模式为full 模式或使用命令修改USE master; ALTER DATABASE database_name SET RECOVERY FULL; 选中当前链接,右键属性,选择数据库设置,点选压缩备份。 右键选中数据库,任务->备份 选择备份,并将其命名为同数据库名的.bak文件存储。 至此数据文件准备完毕。如部署在其他云或者其他服务器上,参见https://support.huaweicloud.com/bestpractice-drs/drs_04_0003.html选择合适的迁移上云方案进行迁移数据。2.3 数据全量迁移上云选择华为云对象存储服务(OBS)。创建一个标准存储、公共读写的桶。 页面访问并上传文件可能无法上传,建议使用obsbroswer(可能下线)或者obs broswer plus传输文件。 获取访问密钥(AK/SK),详情见链接指导:https://support.huaweicloud.com/qs-obs/obs_qs_0005.html 使用工具登录桶,找到对应创建的桶:上传备份文件到桶 跳转到数据复制服务,选择备份迁移管理,创建迁移任务,选择数据库类型为SQL Server,备份文件来源为自建OBS桶,选择桶名,找到上传的备份文件,点击下一步。 选择对应创建的实例,选择全量备份,最后一个备份,覆盖还原,执行预校验,全部数据库,点击确认即可。 等待迁移任务完成 2.4 云上数据库实例配置当前华为云SQL Server 数据库默认开启分布式事务(MSDTC),我们通过配置msdtc 来实现云数据库实例和云弹性服务器之间的同步。详情查看分布式事务:https://support.huaweicloud.com/usermanual-rds/rds_sqlserver_01_0001.html主机名称:输入要与RDS实例建立分布式事务的主机名。主机名在1到64个字符之间,由字母、数字或中划线组成,不能包含其他特殊字符,且主机名字不可重复。主机IP: 输入要与RDS实例建立分布式事务的主机IP。主机IP需要先配置安全组的出入规则。 云上主机Win+R ->cmd 键入 hostname 或者控制面板->系统和安全—>系统 RDS数据库页面,点击实例,选择分布式事务点击添加主机,键入主机名称和可以连通云上数据库实例的ip地址,点击测试连接,通过测试后,点击确定,测试不通过请排查输入的信息是否正确,尤其确认ip是否可以连通(一般建议内网IP,若跨VPC等,需要提前测试连通性)。 2.5 云上弹性服务器配置RDS数据库页面,点击实例,选择分布式事务,点击复制RDS实例信息 将RDS实例信息配置到ECS的hosts文件中,路径为“C:\Windows\System32\drivers\etc\hosts”在ECS端:打开“控制面板”,选择“系统和安全 > 管理工具”,在“管理工具”页面打开“组件服务”。选择“计算机 > 我的电脑 > Distributed Transaction Coordinator”。右键单击“本地DTC”,选择“属性”。按如下配置设置后会重启msdtc服务 2.6 测试结果在ECS端,根据产品要求安装金蝶K/3 wise 客户端和账套管理系统点击账套管理,在弹出的账套管理数据库设置页面设置相关身份验证信息和数据服务器数据服务器填入云端数据库的服务器名(即为上一步设置的)。数据库实体选择对应的数据库即可。 设置完毕后,进入系统,点击注数据库->注册账套 进入后,填写上一步的服务器名为当前数据服务器,填入对应的sqlserver 身份验证,目前华为云的默认数据库账号为rdsuser,填写完毕后点击数据库实体,点击右键,弹出空白框,点击所有后,可显示当前云上所有的数据库实体,选择迁移的账套数据库(注意:如果设置迁移的是账套数据库会提示为无效账套)即可。 为方便链接,可在系统->预设连接中,配置云上实例为默认的连接。 至此对接华为云sqlserver实例完毕,点击金蝶K3 wise客户端,使用已经配置的金蝶账号即可登录使用。
-
目前我这边使用的版本最新的SCE是3.6R006C85,与华为技术工程师沟通过,该版本不支持HTTP直接调用,需要最新版SCE开发软件,可以直接调用HTTP接口的CELL,还望给一个下载链接
-
目前我这边使用的版本最新的SCE是3.6R006C85,与华为技术工程师沟通过,该版本不支持HTTP直接调用,需要最新版SCE开发软件,可以直接调用HTTP接口的CELL,还望给一个下载链接
-
1 Hpl简介 HPL是一个软件包,用于在分布式内存计算机上以双精度(64位)算法解决(随机)密集线性系统。因此,它可以被视为高性能计算Linpack Benchmark的便携式以及免费使用的实现。 2 环境信息2.1 环境信息项目版本下载地址CentOS7.6https://www.centos.org/download/Kernel4.14.0包含在操作系统镜像中CPU鲲鹏920服务器配置16U16GB40GB 3 配置编译环境3.1 Yum源配置说明:根据依赖或软件来源的不同,以及配置过程的不同,yum源配置分为如下三种:1、本地yum源2、网络yum源3、华为yum源不作任何配置时,则默认使用Centos官方yum源(需要外网权限)。Yum源详细配置,可以参考:《KunPeng平台软件移植Yum源配置参考》,本次使用本地yum源方式。3.2 安装依赖包步骤1 安装依赖包。yum install wget gcc-c++ gcc-gfortran----结束 4 安装说明:本文将介绍两种安装方式,请视具体情况选择其中一种安装方式。表 4-1 安装方式说明安装方式安装说明源码编译安装 源码安装,与环境内核无冲突,可定制,但是复杂度高。rpm方式安装rpm包方式,方便简单(当部署环境与本文档环境一致时,推荐使用本方式)。4.1 源码编译安装4.1.1 获取源码步骤 1 下载并解压mpich源码包。wget http://www.mpich.org/static/downloads/3.2.1/mpich-3.2.1.tar.gztar -xzf mpich-3.2.1.tar.gz 步骤 2 下载并解压blas源码包。wget http://www.netlib.org/blas/blas-3.8.0.tgztar -xzf blas-3.8.0.tgz 步骤 3 下载并解压cblas源码包。wget http://www.netlib.org/blas/blast-forum/cblas.tgztar -xzf cblas.tgz 步骤 4 下载并解压hpl源码包。wget http://www.netlib.org/benchmark/hpl/hpl-2.3.tar.gztar -xzf hpl-2.3.tar.gz说明:如果提示”wget: 未找到命令”,请先用yum install wget安装wget工具。 4.1.2 编译安装mpich参考鲲鹏论坛https://bbs.huaweicloud.com/forum/thread-51290-1-1.html 的第4.1.2章节 编译安装4.1.3 编译安装blas步骤 1 编译安装。cd /opt/BLAS-3.8.0make -j16链接.o文件生成libblas.a文件:ar rv libblas.a *.o 4.1.4 编译安装cblas步骤 1 编译前配置。cd /opt/CBLAS将4.1.3章节编译产生的blas_LINUX.a文件拷贝到当前目录:cp BLAS-3.8.0/blas_LINUX.a ./修改Makefile.in文件中的参数:vi Makefile.inBLLIB = ../blas_LINUX.a CBLIB = ../lib/cblas_$(PLAT).a 步骤 2 编译安装。make -j16测试运行:./testing/xzcblat14.1.5 编译安装hpl步骤 1 编译前配置。sudo cp /opt/CBLAS/lib/* /usr/local/libsudo cp /opt/BLAS-3.8.0/blas_LINUX.a /usr/local/lib切换至解压目录:cd /opt/hpl-2.3复制文件:cp setup/Make.Linux_PII_CBLAS ./ 开始修改配置文件:vi Make.toparch = Linux_PII_CBLAS vi Makefilearch = Linux_PII_CBLAS vi Make.Linux_PII_CBLASARCH = Linux_PII_CBLAS TOPdir = /opt/hpl-2.3 MPdir = /usr/localMPlib = $(MPdir)/lib/libmpi.a /usr/lib64/libpthread-2.17.so /usr/lib64/libc-2.17.so LAdir = /usr/local/libLAinc = LAlib = $(LAdir)/cblas_LINUX.a $(LAdir)/blas_LINUX.a CC = /usr/local/bin/mpicc LINKER = /usr/local/bin/mpif77 步骤 2 编译安装。make arch=Linux_PII_CBLAS4.2 RPM方式安装4.2.1 mpich安装参考鲲鹏论坛https://bbs.huaweicloud.com/forum/thread-51290-1-1.html 的第4.2.1章节 安装4.2.2 hpl安装说明:附件中的rpm都是通过开源代码编译打包而成,并验证通过,打包过程参考”6 RPM打包“。见附件步骤 1 复制RPM包至服务器“ /opt”目录并安装。ll /opt步骤 2 安装RPM包。yum localinstall /opt/ hpcg-3.1.0-1.el7.aarch64.rpm ----结束 5 运行和验证5.1 运行测试步骤 1 执行验证。切换目录。源码方式安装:cd /opt/hpl-2.3/bin/Linux_PII_CBLASRpm方式安装:cd /usr/local/hpl-2.3/bin/Linux_PII_CBLAS 执行验证命令:mpirun -np 4 ./xhpl > HPL-Benchmark.txt会生成以下文件:查看文件结果: ----结束6 RPM打包(参考)说明:本段提供了RPM包制作的详细过程,当部署环境与本文档环境不兼容时,可参考此打包过程,自制RPM包,然后再安装到部署环境。6.1 准备RPM 打包环境步骤 1 安装rpmdevtools。yum install rpmdevtools步骤 2 生成打包目录树。cd ~/rpmdev-setuptree步骤 3 进入目录~/rpmbuild,应有如下文件夹:cd ~/rpmbuild----结束 6.2 mpich打包参考鲲鹏论坛https://bbs.huaweicloud.com/forum/thread-51290-1-1.html 的第6.2章节打包 6.3 hpl打包6.3.1 编辑SPEC文件前置条件:先按照4.1章节编译安装mpich、blas、cblas步骤 1 生成SPEC文件模板。1.切换目录至~/rpmbuild/SPECS。cd ~/rpmbuild/SPECS2.生成模板文件hpl2.3.spec。rpmdev-newspec hpl2.3.specls 步骤 2 修改SPEC文件。vi hpl2.3.spec修改后,hpl2.3.spec文件内容如下: Name: hpl Version: 2.3 Release: 1%{?dist} Summary: HPL is a software package that solves a (random) dense linear system in double precision (64 bits) arithmetic on distributed-memory computers. License: GPL URL: http://www.netlib.org/benchmark/hpl/ %undefine _disable_source_fetch Source0: http://www.netlib.org/benchmark/hpl/hpl-2.3.tar.gz BuildRequires: gcc-c++ gcc-gfortran %description HPL is a software package that solves a (random) dense linear system in double precision (64 bits) arithmetic on distributed-memory computers. It can thus be regarded as a portable as well as freely available implementation of the High Performance Computing Linpack Benchmark.The algorithm used by HPL can be summarized by the following keywords: Two-dimensional block-cyclic data distribution - Right-looking variant of the LU factorization with row partial pivoting featuring multiple look-ahead depths - Recursive panel factorization with pivot search and column broadcast combined - Various virtual panel broadcast topologies - bandwidth reducing swap-broadcast algorithm - backward substitution with look-ahead of depth 1.The HPL package provides a testing and timing program to quantify the accuracy of the obtained solution as well as the time it took to compute it. The best performance achievable by this software on your system depends on a large variety of factors. Nonetheless, with some restrictive assumptions on the interconnection network, the algorithm described here and its attached implementation are scalable in the sense that their parallel efficiency is maintained constant with respect to the per processor memory usage. %prep %setup -c -n %{name}-%{version} %build cd %{name}-%{version} cp setup/Make.Linux_PII_CBLAS ./ sed -i '47,47s/arch = UNKNOWN/arch = Linux_PII_CBLAS/g' Make.top sed -i '50,50s/arch = UNKNOWN/arch = Linux_PII_CBLAS/g' Makefile sed -i '70,70s#TOPdir = $(HOME)/hpl#TOPdir = /root/rpmbuild/BUILD/hpl-2.3/hpl-2.3#g' Make.Linux_PII_CBLAS sed -i '84,84s#MPdir = /usr/local/mpi#MPdir = /usr/local/#g' Make.Linux_PII_CBLAS sed -i '86,86s#MPlib = $(MPdir)/lib/libmpich.a#MPlib = $(MPdir)/lib/libmpi.a /usr/lib64/libpthread-2.17.so /usr/lib64/libc-2.17.so#g' Make.Linux_PII_CBLAS sed -i '95,95s#LAdir = $(HOME)/netlib/ARCHIVES/Linux_PII#LAdir = /usr/local/lib#g' Make.Linux_PII_CBLAS sed -i '97,97s#LAlib = $(LAdir)/libcblas.a $(LAdir)/libatlas.a#LAlib = $(LAdir)/cblas_LINUX.a $(LAdir)/blas_LINUX.a#g' Make.Linux_PII_CBLAS sed -i '169,169s#CC = /usr/bin/gcc#CC = /usr/local/bin/mpicc#g' Make.Linux_PII_CBLAS sed -i '176,176s#LINKER = /usr/bin/g77#LINKER = /usr/local/bin/mpif77#g' Make.Linux_PII_CBLAS make arch=Linux_PII_CBLAS mkdir -p %_buildrootdir/hpl-2.3-1.el7.aarch64/usr/local/ cp -r %_builddir/hpl-2.3/hpl-2.3 %_buildrootdir/hpl-2.3-1.el7.aarch64/usr/local/ %files /usr/local %doc %changelog见附件----结束 6.3.2 RPM打包步骤 1 rpmlint检查SPEC文件或RPM包。1.安装rpmlint。yum install rpmlint 2.错误检查。说明:如果返回错误/警告,使用 “-i” 选项查看更详细的信息。但由于rpmlint检测较严格,一些错误可忽略,可根据实际情况结合检测结果进行修改。rpmlint –i hpl2.3.spec 步骤 2 构建SRPM和RPM。rpmbuild -ba hpl2.3.spec 步骤 3 查看生成的RPM包。ls ~/rpmbuild/RPMS/aarch64步骤 4 RPM包验证。RPM包的验证,可参考”5 运行和验证“。----结束 7 FAQ7.1 RPM打包流程、示例及问题集参考:https://bbs.huaweicloud.com/forum/thread-38327-1-1.html
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签