首页
友情链接
关于
Search
1
Docker 拉取镜像报错 “missing signature key” 解决办法
1,524 阅读
2
如何在CentOS 7中升级Linux内核
616 阅读
3
docker 常用命令
239 阅读
4
k8s 常用命令
235 阅读
5
创建PV报错信息:device is partitioned
230 阅读
默认分类
Liinux系统管理
容器
云计算
虚拟化
编程语言
数据库
AI
登录
/
注册
Search
标签搜索
Docker
shell脚本
Linux 系统管理
k8s
LVM
KVM
网络服务
Nginx
Ubuntu
内核升级
Linux用户管理
系统管理
MySQL
共享存储
Abbott
累计撰写
38
篇文章
累计收到
2
条评论
首页
栏目
默认分类
Liinux系统管理
容器
云计算
虚拟化
编程语言
数据库
AI
页面
友情链接
关于
搜索到
38
篇与
的结果
2025-09-09
My SQL 运算符和字句之 where
MySQL where✅ 概念:我们知道 SQL SELECT 命令用于从 MySQL 表中获取记录。除此之外,我们还可以使用称为 WHERE 子句的条件子句与 SELECT 语句结合使用来过滤结果。使用此 WHERE 子句,我们可以指定一个选择标准以从表中选择所需的记录。WHERE 子句的工作方式类似于任何编程语言中的 if 条件 。此子句用于将给定值与 MySQL 表中可用的字段值进行比较。如果外部给定的值等于 MySQL 表中的可用字段值,则返回该行。✅ WHERE 子句中使用的运算符:下面是比较运算符的列表,可以与 WHERE 子句一起使用 =: 检查两个作数的值是否相等,如果是,则条件变为 true !=: 检查两个作数的值是否相等,如果值不相等,则条件变为 true。 >: 检查左作数的值是否大于右作数的值,如果是,则条件变为 true。 =: 检查左作数的值是否大于或等于右作数的值,如果是,则条件变为 true。
2025年09月09日
9 阅读
0 评论
0 点赞
2025-06-16
Nginx 优化
Nginx 的优化是一个系统工程,涉及服务器硬件、操作系统、Nginx 配置本身,以及您所服务的应用类型。核心配置优化 (Master-Worker 架构)Nginx 采用 Master-Worker 架构,一个 Master 进程负责读取和解析配置,管理 Worker 进程;Worker 进程则负责处理实际的请求。1. worker_processes auto; auto 是 Nginx 1.8.1 及更高版本推荐的值。Nginx 会根据可用的 CPU 核心数自动调整 Worker 进程的数量。这样可以最大化 CPU 利用率,并避免手动设置可能导致的资源浪费或不足。1. 为什么是 CPU 核心数? Nginx 是事件驱动的非阻塞服务器。一个 Worker 进程可以高效处理数万甚至数十万并发连接,因为当一个连接处于等待状态(例如等待数据从磁盘读取或网络发送)时,Worker 进程可以立即切换到处理另一个连接。过多的 Worker 进程会导致:- 上下文切换开销: 操作系统需要花费更多时间在 Worker 进程之间切换,这会抵消并行处理带来的益处。- 内存消耗: 每个 Worker 进程都会消耗一定的内存。{callout color="#ff9300"}特殊情况{/callout}磁盘 I/O 密集型应用 (如大型静态文件服务器):** 如果您的 Nginx 主要用于提供大量静态文件,并且这些文件分散在不同的磁盘上,那么适当增加 Worker 进程数量(可能略高于 CPU 核心数)可能有助于利用多磁盘的并行 I/O 能力。但这需要仔细测试。CPU 密集型模块 (不常见): 如果您使用了某些 CPU 密集型的 Nginx 模块 (例如自定义的 Lua 脚本执行大量计算),那么也可能需要根据实际情况调整。但对于常规使用,auto 或 CPU 核心数通常是最佳选择。worker_connections 10240;(示例子值) 这是单个 Worker 进程可以处理的最大并发连接数。这个值直接影响 Nginx 服务器的总并发能力:总并发连接数 = worker_processes * worker_connections。{callout color="#00fdff"}关键考量:{/callout}文件描述符 (File Descriptors - FD): 每个连接在操作系统中都会占用一个文件描述符。因此,worker_connections 的值不能超过操作系统对单个进程允许的最大文件描述符数量(ulimit -n)。系统级限制: 还需要检查系统级的最大文件描述符限制 (/proc/sys/fs/file-max)。内存消耗 每一个连接都会消耗少量内存,如果 worker_connections 设置过大,可能会导致内存不足。还待更新
2025年06月16日
25 阅读
0 评论
1 点赞
2025-06-16
源码编译PHP
{progress percentage="" color="#00fdff"/}环境准备:操作系统: Red Hat Enterprise Linux 8.8 (Ootpa)内核版本: Linux 4.18.0-477.10.1.el8_8.x86_641. 下载/解压软件包 [root@php-server ~]# wget https://www.php.net/distributions/php-8.4.1.tar.gz [root@php-server ~]# tar -xf php-8.4.1.tar.gz -C /usr/local/ [root@php-server php84]# ln -s php-8.4.1 php842. 安装依赖[root@php-server php84]# dnf -y install libjpeg libjpeg-devel libpng libpng-devel oniguruma freetype freetype-devel libxml2 libxml2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn openssl openssl-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2-devel openldap-devel automake autoconf libtool make openldap-devel gcc gcc-c++ sqlite-devel libxslt-devel wget vim3. 检查环境./configure --prefix=/usr/local/php8/ --with-config-file-path=/usr/local/php8/etc/ --with-curl --with-freetype-dir --with-gd --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-sqlite --with-pear --with-png-dir --with-jpeg --with-xmlrpc --with-xsl --with-zlib --with-bz2 --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --with-pdo-mysql --enable-gd --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-zip --with-ldap4. 编译过程[root@php-server php84]# make5. 编译安装(出现以下表示编译成功)[root@php-server php84]# make install Installing shared extensions: /usr/local/php8/lib/php/extensions/no-debug-non-zts-20240924/ Installing PHP CLI binary: /usr/local/php8/bin/ Installing PHP CLI man page: /usr/local/php8/php/man/man1/ Installing PHP FPM binary: /usr/local/php8/sbin/ Installing PHP FPM defconfig: /usr/local/php8/etc/ Installing PHP FPM man page: /usr/local/php8/php/man/man8/ Installing PHP FPM status page: /usr/local/php8/php/php/fpm/ Installing phpdbg binary: /usr/local/php8/bin/ Installing phpdbg man page: /usr/local/php8/php/man/man1/ Installing PHP CGI binary: /usr/local/php8/bin/ Installing PHP CGI man page: /usr/local/php8/php/man/man1/ Installing build environment: /usr/local/php8/lib/php/build/ Installing header files: /usr/local/php8/include/php/ Installing helper programs: /usr/local/php8/bin/ program: phpize program: php-config Installing man pages: /usr/local/php8/php/man/man1/ page: phpize.1 page: php-config.1 Installing PEAR environment: /usr/local/php8/lib/php/6. 需要安装依赖<font color=red>获取方式:RPM resource oniguruma[root@php-server ~ ]# wget https://www.rpmfind.net/linux/almalinux/8.10/AppStream/x86_64/os/Packages/oniguruma-6.8.2-3.el8.x86_64.rpm [root@php-server ~ ]# wget https://www.rpmfind.net/linux/almalinux/8.10/PowerTools/x86_64/os/Packages/oniguruma-devel-6.8.2-3.el8.x86_64.rpm [root@php-server ~ ]# dnf -y install oniguruma-6.8.2-3.el8.x86_64.rpm oniguruma-devel-6.8.2-3.el8.x86_64.rpm7. 启动PHPCopy PHP的配置文件[root@php-server php8]# cp ../php84/php.ini-development etc/php.ini [root@php-server php8]# cp etc/php php-fpm.conf.default php-fpm.d/ php.ini-development [root@php-server php8]# cp etc/php-fpm.d/www.conf.default etc/php-fpm.d/www.conf [root@php-server php8]# cp etc/php-fpm.conf.default etc/php-fpm.conf启动 [root@php-server php8]# sbin/php-fpm查看进程[root@php-server php8]# ss -luntp Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=790,fd=3)) tcp LISTEN 0 2048 127.0.0.1:9000 0.0.0.0:* users:(("php-fpm",pid=150797,fd=5),("php-fpm",pid=150796,fd=5),("php-fpm",pid=150795,fd=7)) tcp LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=790,fd=4)) [root@php-server php8]# lsof -i:9000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME php-fpm 150795 root 7u IPv4 265939 0t0 TCP localhost:cslistener (LISTEN) php-fpm 150796 nobody 5u IPv4 265939 0t0 TCP localhost:cslistener (LISTEN) php-fpm 150797 nobody 5u IPv4 265939 0t0 TCP localhost:cslistener (LISTEN) 修改PHP服务监听的IP地址;(默认是监听127.0.0.1)修改监听地址[root@php-server php8]# cat etc/php-fpm.d/www.conf | grep listen ; - 'listen' (unixsocket) ; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on ; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on ; 'port' - to listen on a TCP socket to all addresses ; '/path/to/unix/socket' - to listen on a unix socket. ;listen = 127.0.0.1:9000 ;listen = 0.0.0.0:9000 #监听本机的所有网卡 listen = 192.168.107.119:9000 重启[root@php-server php8]# pkill php-fpm [root@php-server php8]# ss -luntp Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=790,fd=3)) tcp LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=790,fd=4)) [root@php-server php8]# sbin/php-fpm [root@php-server php8]# ss -lutnp Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=790,fd=3)) tcp LISTEN 0 2048 192.168.107.119:9000 0.0.0.0:* users:(("php-fpm",pid=150815,fd=5),("php-fpm",pid=150814,fd=5),("php-fpm",pid=150813,fd=7)) tcp LISTEN 0 128 [::]:22
2025年06月16日
29 阅读
0 评论
1 点赞
2024-12-17
mycat 读写分离
环境介绍系统版本内核版本数据库版本读写分离组建java 版本Red Hat Enterprise Linux 8.8 (Ootpa)Linux 4.18.0-477.10.1.el8_8.x86_64mysql-8.4.3-linux-glibc2.28-x86_64Mycat-server-1.6java version "1.8.0_431"系统架构实现主从主从不在这叙述mysql> show replica status \G; *************************** 1. row *************************** Replica_IO_State: Waiting for source to send event #复制IO的状态 Source_Host: 192.168.137.69 #源主机地址 Source_User: repl5 #连接源主机数据库的用户 Source_Port: 3306 Connect_Retry: 60 #连接重试时间 60 Source_Log_File: 3306bin.000007 #源日志文件名称 Read_Source_Log_Pos: 1955 #读取源日志的起始位置(偏移量) Relay_Log_File: mysql-slave-relay-bin.000002 #中继日志文件 Relay_Log_Pos: 786 #中继日志的位置(偏移量) Relay_Source_Log_File: 3306bin.000007 #从master同步中继日志文件的名称 Replica_IO_Running: Yes #复制节点的IO线程的状态:YES 表示成功;connection:正在连接 NO:连接不成功 Replica_SQL_Running: Yes #复制节点的SQL线程的状态 ====================== Replicate_Do_DB: #库复制 Replicate_Ignore_DB: ====================== ====================== Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: #表复制状态信息 Replicate_Wild_Ignore_Table: ====================== Last_Errno: 0 #最新/上一次的错误信息 Last_Error: Skip_Counter: 0 Exec_Source_Log_Pos: 1955 #执行源日志的偏移量 Relay_Log_Space: 1003 #中继日志的空间 Until_Condition: None #直到条件 Until_Log_File: Until_Log_Pos: 0 ===================== Source_SSL_Allowed: No 描述SSL验证 Source_SSL_CA_File: Source_SSL_CA_Path: Source_SSL_Cert: Source_SSL_Cipher: Source_SSL_Key: Seconds_Behind_Source: 0 Source_SSL_Verify_Server_Cert: No ====================== Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Source_Server_Id: 19 #源server的ID Source_UUID: f7b42b90-b769-11ef-8b2f-525400d39ac1 #源UUID Source_Info_File: mysql.slave_master_info #源数据库文件描述信息 SQL_Delay: 0 #SQL线程的延迟时间 SQL_Remaining_Delay: NULL #SQL 剩余延迟时间 Replica_SQL_Running_State: Replica has read all relay log; waiting for more updates #SQL线程的状态 Source_Retry_Count: 10 #重试次数10 Source_Bind: Last_IO_Error_Timestamp: #最新/上一次IO错误的时间戳 Last_SQL_Error_Timestamp: #最新/上一次SQL错误的时间戳 Source_SSL_Crl: Source_SSL_Crlpath: Retrieved_Gtid_Set: f7b42b90-b769-11ef-8b2f-525400d39ac1:8-9 #已获取全局事务标识符集合 Executed_Gtid_Set: f7b42b90-b769-11ef-8b2f-525400d39ac1:1-9 #已执行全局事务标识符集合 Auto_Position: 1 #自动定位 Replicate_Rewrite_DB: Channel_Name: Source_TLS_Version: Source_public_key_path: Get_Source_public_key: 0 Network_Namespace:部署mycat节点一、获取软件包及解压wget https://github.com/MyCATApache/Mycat-download/blob/master/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz tar xf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local/二、修改配置文件server.xml(保持原文件不动)schema.xml[root@mycat-server ~]# cat /usr/local/mycat/conf/schema.xml <?xml version="1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schema xmlns:mycat="http://io.mycat/"> <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100"> <!-- auto sharding by id (long) --> <table name="travelrecord" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" /> <!-- global table is auto cloned to all defined data nodes ,so can join with any table whose sharding node is in the same data node --> <table name="company" primaryKey="ID" type="global" dataNode="dn1,dn2,dn3" /> <table name="goods" primaryKey="ID" type="global" dataNode="dn1,dn2" /> <!-- random sharding using mod sharind rule --> <table name="hotnews" primaryKey="ID" autoIncrement="true" dataNode="dn1,dn2,dn3" rule="mod-long" /> <!-- <table name="dual" primaryKey="ID" dataNode="dnx,dnoracle2" type="global" needAddLimit="false"/> <table name="worker" primaryKey="ID" dataNode="jdbc_dn1,jdbc_dn2,jdbc_dn3" rule="mod-long" /> --> <table name="employee" primaryKey="ID" dataNode="dn1,dn2" rule="sharding-by-intfile" /> <table name="customer" primaryKey="ID" dataNode="dn1,dn2" rule="sharding-by-intfile"> <childTable name="orders" primaryKey="ID" joinKey="customer_id" parentKey="id"> <childTable name="order_items" joinKey="order_id" parentKey="id" /> </childTable> <childTable name="customer_addr" primaryKey="ID" joinKey="customer_id" parentKey="id" /> </table> <!-- <table name="oc_call" primaryKey="ID" dataNode="dn1$0-743" rule="latest-month-calldate" /> --> </schema> <!-- <dataNode name="dn1$0-743" dataHost="localhost1" database="db$0-743" /> --> <dataNode name="dn1" dataHost="localhost1" database="db1" /> <dataNode name="dn2" dataHost="localhost1" database="db2" /> <dataNode name="dn3" dataHost="localhost1" database="db3" /> <!--<dataNode name="dn4" dataHost="sequoiadb1" database="SAMPLE" /> <dataNode name="jdbc_dn1" dataHost="jdbchost" database="db1" /> <dataNode name="jdbc_dn2" dataHost="jdbchost" database="db2" /> <dataNode name="jdbc_dn3" dataHost="jdbchost" database="db3" /> --> <dataHost name="localhost1" maxCon="1000" minCon="10" balance="1" dbType="mysql" dbDriver="jdbc"> <heartbeat>select user()</heartbeat> <writeHost host="192.168.137.69" url="jdbc:mysql://192.168.137.69:3306" user="mycat1" password="mycat@123"> <readHost host="192.168.137.61" url="jdbc:mysql://192.168.137.61:3306" user="mycat1" password="mycat@123" /> </writeHost> </dataHost> </mycat:schema>三、启动Mycat[root@mycat-server mycat]# bin/mycat start错误过程错误的原因:JDBC 驱动未正确配置Mycat 在执行 JDBC 操作时找不到合适的驱动程序。MySQL的JDBC驱动通常是com.mysql.cj.jdbc.Driver,但是 Mycat 可能没有正确加载该驱动。解决方法:1. 确保 JDBC 驱动在 Mycat 中正确配置:检查Mycat 配置文件 conf/mysql.properties 或其他相关的配置文件,确保 mysql.driver 参数正确指定为 MySQL 驱动:mysql.driver=com.mysql.cj.jdbc.Driver2. 确保 MySQL JDBC 驱动存在:确保 Mycat的lib/目录中包含 MySQL JDBC 驱动 mysql-connector-java-x.x.x.jar。如果没有,可以手动下载并将其放置到 lib/ 目录中。你可以从 MySQL 官方下载页面 下载适合的 JDBC 驱动,并将其放入 lib 目录。[root@mycat-server ~]# wget https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-j-8.4.0-1.el8.src.rpm [root@mycat-server ~]# rpm -ivh mysql-connector-j-8.4.0-1.el8.src.rpm [root@mycat-server ~]# cd rpmbuild/SOURCES/ [root@mycat-server SOURCES]# tar xf mysql-connector-j-8.4.0.tar.gz [root@mycat-server SOURCES]# cd mysql-connector-j-8.4.0 [root@mycat-server mysql-connector-j-8.4.0]# cp mysql-connector-j-8.4.0.jar /usr/local/mycat/lib/3.重新启动mycat[root@mycat-server mycat]# bin/mycat start切记一定:要观察日志
2024年12月17日
95 阅读
0 评论
0 点赞
2024-12-04
StarVCenter 构建私有云方案(小型)
StarVCenter 私有云部署 一套国产超融合云平台IaaS软件,StarVCenter还提供了超融合技术,将计算、存储和网络等资源整合到一个硬件节点中,形成一个完整的虚拟化基础设施。这种超融合架构可以提高资源利用率,减少部署和维护成本,同时还可以提供更高的性能和可靠性。官网文档:StarVCenter帮助文档StarVCenter的超融合技术包括以下特点:硬件节点整合:将计算、存储和网络等资源整合到一个硬件节点中,形成一个完整的虚拟化基础设施。简化部署:通过自动化部署和配置,简化了整个虚拟化环境的部署和维护。高性能和可靠性:通过整合计算、存储和网络等资源,提高了系统的性能和可靠性。灵活扩展:支持在线扩容和缩容,可以根据业务需要灵活调整资源。总之,StarVCenter的超融合技术可以帮助用户实现高效的虚拟化基础设施部署和管理,提高资源利用率和降低成本。StarVCenter追求极致好用,社区免费使用(不超过20台物理服务器)、社区免费技术支持、永久免费升级。除了基本的虚拟化管理功能,StarVCenter还提供了一些高级功能,如:多云管理:支持管理多个云平台,包括公有云和私有云,提供了跨云平台的资源管理和调度功能。容器管理:支持管理容器化应用,如Docker和Kubernetes,可以实现容器的部署、管理和监控。自动化运维:支持自动化运维功能,如自动化部署、配置管理、故障诊断和性能优化等,提高运维效率和减少人为错误。安全管理:提供了安全管理功能,包括访问控制、审计和日志管理等,保障虚拟化环境的安全性。[项目白皮书]:(http://www.starvcs.com/white_paper.pdf)
2024年12月04日
86 阅读
0 评论
1 点赞
2024-09-26
创建PV报错信息:device is partitioned
错误信息[y40@localhost ~]$ sudo vgextend rhel /dev/sdb /dev/sdc Cannot use /dev/sdb: device is partitioned Cannot use /dev/sdc: device is partitioned原因:是因为磁盘里的数据没有清楚赶紧导致错误信息解决方法:[y40@localhost ~]$ sudo wipefs --all --backup /dev/sdb /dev/sdb:8 个字节已擦除,位置偏移为 0x00000200 (gpt):45 46 49 20 50 41 52 54 /dev/sdb:8 个字节已擦除,位置偏移为 0x773c255e00 (gpt):45 46 49 20 50 41 52 54 /dev/sdb:2 个字节已擦除,位置偏移为 0x000001fe (PMBR):55 aa [y40@localhost ~]$ sudo wipefs --all --backup /dev/sdc /dev/sdc:8 个字节已擦除,位置偏移为 0x00000200 (gpt):45 46 49 20 50 41 52 54 /dev/sdc:8 个字节已擦除,位置偏移为 0x7470c05e00 (gpt):45 46 49 20 50 41 52 54 /dev/sdc:2 个字节已擦除,位置偏移为 0x000001fe (PMBR):55 aa /dev/sdc:将调用 ioctl 来重新读分区表:成功再次创建PV[y40@localhost ~]$ sudo pvcreate /dev/sdb /dev/sdc Physical volume "/dev/sdb" successfully created. Physical volume "/dev/sdc" successfully created.
2024年09月26日
230 阅读
0 评论
0 点赞
2024-09-21
Ubuntu 配置静态IP地址
一、修改配置/etc/netplan``root@y36-server-ubuntucom:~# cat /etc/netplan/50-cloud-init.yaml # This file is generated from information provided by the datasource. Changes # to it will not persist across an instance reboot. To disable cloud-init's # network configuration capabilities, write a file # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following: # network: {config: disabled} network: ethernets: enp7s0: dhcp4: true dhcp6: false version: 2 bridges: bri0: interfaces: [enp7s0] addresses: [192.168.107.67/24] gateway4: 192.168.107.254 routes: - to: default via: 192.168.99.1 nameservers: addresses: - 114.114.114.114 - 8.8.8.8 - 8.8.4.4 parameters: stp: true forward-delay: 4 dhcp4: no 切记:注意缩进二、测试文件配置文件是否有误root@y36-server-ubuntucom:~# sudo netplan try 三、应用配置文件root@y36-server-ubuntucom:~# sudo netplan apply
2024年09月21日
57 阅读
0 评论
0 点赞
2024-07-10
docker 拉去镜像失败Retrying in 1 second
错误信息:一直停留在等待或者重试的状态解决方案: 使用加速器(阿里加速器)1.登录阿里云官方网站注册属于自己的镜像加速器2.配置docker文件[root@web-server18-20 ~]# cat /etc/docker/daemon.json { "registry-mirrors": [ 隐藏内容,请前往内页查看详情 "] }3.重启docker及加载配置文件[root@web-server18-20 ~]# systemctl daemon-reload [root@web-server18-20 ~]# systemctl restart docker 4.垃取镜像测试[root@web-server18-20 ~]# docker pull nginx Using default tag: latest latest: Pulling from library/nginx a2abf6c4d29d: Extracting [=============================================> ] 28.84MB/31.36MB a9edb18cadd1: Download complete 589b7251471a: Download complete 186b1aaa4aa6: Download complete b4df32aa5a72: Waiting a0bcbecc962e: Waiting 至此垃取完成!!!!!!!
2024年07月10日
216 阅读
0 评论
0 点赞
2024-07-10
国内安装docker源失败
错误原因:是因为国内安全机构发现docker有些镜像涉及安全的问题,所以设置了网络那么我们应该怎么解决问题?解决方案:使用国内镜像源- 阿里源- [清华源]()- 华为源[root@web-server18-20 ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo [root@web-server18-20 ~]# sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin Failed to set locale, defaulting to C.UTF-8 Updating Subscription Management repositories. Unable to read consumer identity This system is not registered with an entitlement server. You can use subscription-manager to register. Docker CE Stable - x86_64 139 kB/s | 66 kB 00:00 Last metadata expiration check: 0:00:01 ago on Wed Jul 10 15:23:43 2024. Dependencies resolved. ===================================================================================================================================================== Package Architecture Version Repository Size ===================================================================================================================================================== Installing: containerd.io x86_64 1.6.32-3.1.el8 docker-ce-stable 35 M docker-buildx-plugin x86_64 0.14.0-1.el8 docker-ce-stable 14 M docker-ce x86_64 3:26.1.3-1.el8 docker-ce-stable 27 M docker-ce-cli x86_64 1:26.1.3-1.el8 docker-ce-stable 7.8 M docker-compose-plugin x86_64 2.27.0-1.el8 docker-ce-stable 13 M
2024年07月10日
114 阅读
0 评论
0 点赞
2024-07-08
RedHat /CentOS 7 install NFS
NFS 代表网络文件系统,它可以帮助您在 Linux / Unix 系统之间共享文件和文件夹。NFS 使您能够在本地挂载远程共享NFS 的优点在 *nix 系统之间共享文件/文件夹允许在本地挂载远程文件系统可作为集中存储系统它可以用作VMware和其他虚拟化平台的存储域(数据存储)。允许应用程序与多个节点共享配置和数据文件。允许在共享中更新文件。配置 NFS 服务器安装 NFS 服务器使用 yum 命令为 NFS 服务器安装以下软件包。yum install -y nfs-utils-安装软件包后,启用并启动 NFS 服务。 systemctl start nfs-server rpcbind systemctl enable nfs-server rpcbind创建 NFS 共享现在,让我们创建一个要与 NFS 客户端共享的目录。在这里,我将在 / 分区中创建一个名为 nfs_vlome 的新目录。# mkdir /nfs_vlome允许 NFS 客户端读取和写入创建的目录。chmod 777 /nfs_vlome/我们必须修改 /etc/exports 文件以创建您想要共享的目录 /nfs_vlome 的条目# vim /etc/exports并添加此内容/nfs_vlome 192.168.212.42(rw,sync,no_root_squash)192.168.212.42: 客户端计算机的 IP 地址。我们也可以使用主机名而不是 IP 地址。还可以使用子网(如 192.168.100.0/24)定义客户端的范围。rw: 共享文件夹的可写权限sync:对相应文件系统的所有更改都会立即刷新到磁盘;正在等待相应的写入操作。no_root_squash:默认情况下,root 用户在客户端计算机上发出的任何文件请求都将被视为服务器上的 nobody 用户。(请求映射到哪个 UID 取决于服务器上用户“nobody”的 UID,而不是客户端。如果选择了 no_root_squash,则客户端计算机上的 root 用户对系统上的文件的访问级别将与服务器上的 root 用户相同。使用以下命令导出共享目录。exportfs -r配置 NFS 服务器后,我们需要在 NFS 客户端中挂载该共享目录。配置防火墙规则我们需要在 NFS 服务器上配置防火墙,以允许 NFS 客户端访问 NFS 共享。为此,请在 NFS 服务器上运行以下命令:firewall-cmd --permanent --add-service mountd firewall-cmd --permanent --add-service rpc-bind firewall-cmd --permanent --add-service nfs firewall-cmd --reload
2024年07月08日
159 阅读
0 评论
0 点赞
2024-07-05
Red Hat 8 源码构建mysql:8.0.35版
一、主机信息[root@bogon mysql]# cat /etc/redhat-release Red Hat Enterprise Linux release 8.8 (Ootpa) [root@bogon mysql]# uname -r 4.18.0-477.10.1.el8_8.x86_64 [root@bogon mysql]# lscpu | grep '^CPU(s):' CPU(s): 2 [root@bogon mysql]# free -h total used free shared buff/cache available Mem: 3.6Gi 282Mi 1.3Gi 8.0Mi 2.0Gi 3.0Gi Swap: 3.9Gi 0B 3.9Gi二、下载源码包官方下载三、创建管理目录且解压[root@bogon mysql]# mkdir /usr/local/mysql8 [root@bogon ~]# tar xf mysql-boost-8.0.38.tar.gz -C /usr/local/mysql8/ [root@bogon ~]# cd /usr/local/mysql8/ [root@bogon mysql8]# ln -s mysql-8.0.38 mysql四、检查环境&编译安装4.1 安装需要软件包[root@bogon mysql8]# dnf -y install cmake make gcc gcc-c++ gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-binutils gcc-toolset-12-annobin-annocheck gcc-toolset-12-annobin-plugin-gcc openssl-devel ncurses-devel libtirpc-devel rpcgen [root@bogon ~]# wget https://dl.rockylinux.org/pub/rocky/8/PowerTools/x86_64/os/Packages/r/rpcgen-1.3.1-4.el8.x86_64.rpm [root@bogon ~]# dnf -y install rpcgen-1.3.1-4.el8.x86_64.rpm4.2 创建用户1.检查是否有mysql用户 [root@bogon mysql8]# id mysql uid=995(mysql) gid=992(mysql) groups=992(mysql) 2.创建用户 [root@bogon mysql8]# useradd -r -s /sbin/false mysql4.3 检查环境及指定参数[root@bogon mysql-8.0.38]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql8/ -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=ON -DWITH_INNODB_MEMCACHED=ON -DWITH_SSL=system -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DCOMPILATION_COMMENT="zsd edition" -DWITH_BOOST=/usr/local/mysql8/mysql-8.0.38/boost/ -DMYSQL_UNIX_ADDR=/usr/local/mysql8/3306/mysql.sock -DSYSCONFDIR=/usr/local/mysql8/data/3306 -DFORCE_INSOURCE_BUILD=1描述:1. `-DCMAKE_INSTALL_PREFIX=/usr/local/mysql8/`: 指定MySQL安装目录为`/usr/local/mysql8/`。这个目录将包含MySQL的所有组件,如二进制文件、 库和配置文件。 2. `-DDEFAULT_CHARSET=utf8`: 设定默认字符集为UTF-8。UTF-8是一种能够表示大多数文字的编码方式,适用于处理不同语言的数据。 3. `-DDEFAULT_COLLATION=utf8_general_ci`: 设定默认比较规则为`utf8_general_ci`。这是一个用于比较UTF-8字符串的规则,适用于大多数场景。 4. `-DENABLED_LOCAL_INFILE=ON`: 启用本地文件操作功能。这个选项允许MySQL从本地磁盘读取和写入数据。 5. `-DWITH_INNODB_MEMCACHED=ON`: 启用InnoDB存储引擎与Memcached集成。Memcached是一个高性能的内存对象缓存系统,可以提高MySQL的查询性能。 6. `-DWITH_SSL=system`: 使用系统提供的SSL库。这个选项允许MySQL使用安装在系统中的SSL库进行加密通信。 7. `-DWITH_INNOBASE_STORAGE_ENGINE=1`: 启用InnoDB存储引擎。InnoDB是MySQL默认的事务处理存储引擎,支持ACID特性和行级锁定。 8. `-DWITH_FEDERATED_STORAGE_ENGINE=1`: 启用联邦存储引擎。这个选项允许MySQL连接到其他MySQL服务器进行数据查询和操作。 9. `-DWITH_BLACKHOLE_STORAGE_ENGINE=1`: 启用黑洞存储引擎。这是一个虚拟存储引擎,不实际存储数据,可用于模拟其他存储引擎的行为。 10. `-DWITH_ARCHIVE_STORAGE_ENGINE=1`: 启用归档存储引擎。这个存储引擎用于保存不经常修改的数据,提高查询性能。 11. `-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1`: 禁用示例存储引擎。这个选项可以避免安装一个不常用的示例存储引擎。 12. `-DWITH_PERFSCHEMA_STORAGE_ENGINE=1`: 启用性能表存储引擎。这个存储引擎用于存储关于MySQL服务器的性能指标。 13. `-DCOMPILATION_COMMENT="zsd edition"`: 为编译过程添加注释。在这个例子中,注释设置为“zsd edition”,表示此版本是由"zsd"编译和配置的。 14. `-DWITH_BOOST=/usr/local/mysql8/mysql/boost/`: 启用Boost库并指定其安装路径。Boost是一个C++库集合,提供了各种功能和数据结构。MySQL使用Boost库进行一些特定的操作。 15. `-DMYSQL_UNIX_ADDR=/usr/local/mysql/3306/mysql.sock`: 指定MySQL Unix 地址为`/usr/local/mysql/3306/mysql.sock`。这个文件是用于Unix和 Linux系统上的MySQL通信使用的套接字文件,允许MySQL进程之间的通信。 16. `-DSYSCONFDIR=/usr/local/mysql/data/3306`: 指定MySQL的系统配置目录为`/usr/local/mysql/data/3306`。这个目录包含了MySQL服务器的数据文 件和配置文件。 17. `-DFORCE_INSOURCE_BUILD=1`: 强制使用内存源代码构建。这个选项可以确保在编译期间使用内存中的源代码,而不是从磁盘读取源代码。4.4 编译并安装[root@bogon mysql8]# make -j 2 #-j指定并发数,需要查看有多少个内核 [root@bogon mysql8]# make install 4.5 创建MySQL主配置文件[root@localhost ~]# cat /usr/local/mysql8/my.cnf [mysqld] user = mysql basedir=/usr/local/mysql8/ datadir=/usr/local/mysql8/data pid-file = /usr/local/mysql8/data/mysqld.pid socket = /usr/local/mysql8/data/mysqld.sock port = 3306 tmpdir = /tmp五、初始化数据[root@localhost mysql8]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql8/ --datadir=/usr/local/mysql8/data输出结果:六、启动数据库[root@localhost mysql8]# bin/mysqld_safe --defaults-file=/usr/local/mysql8/my.cnf --user=mysql描述1. --defaults-file # 指定mysql的主配置文件2. --user=mysql #指定管理数据库的用户隐藏内容,请前往内页查看详情七、测试数据库1.本地连接测试登录数据库[root@localhost mysql-8.0.38]# bin/mysql -uroot -S /usr/local/mysql8/data/mysqld.sock -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9 Server version: 8.0.38 Copyright (c) 2000, 2024, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> -S #指定mysql数据库的sock文件
2024年07月05日
118 阅读
0 评论
0 点赞
2024-06-27
如何在 Linux 上清除 RAM 内存缓存、缓冲区和交换空间
像任何其他操作系统一样,GNU/Linux 已经有效地实现了内存管理,甚至不止于此。但是,如果任何进程正在消耗您的内存并且您想要清除它,Linux 提供了一种刷新或清除 RAM 缓存的方法。在本文中,我们将探讨如何在 Linux 系统上清除 RAM 内存缓存、缓冲区和交换空间以提高整体性能。让我们探索 Linux 系统上的 RAM 内存缓存、缓冲区和交换空间。 RAM Memory Cache RAM内存缓存 RAM内存缓存是内核用来保存定期访问的数据的一种机制。虽然这提高了系统响应能力,但缓存过载可能会导致过时数据的保留,从而影响性能。 Buffer缓冲区 与缓存一样,缓冲区临时保存数据,但用途不同。缓冲区存储在 CPU 和硬盘等组件之间传输的数据,从而促进顺畅通信。但是,过多的缓冲数据会阻碍系统速度。Swap Space 交换空间 交换空间是硬盘上分配的区域,当物理 RAM 耗尽时充当虚拟内存。虽然它可以防止由于内存不足而导致系统崩溃,但如果过度使用,它可能会降低系统速度。清除 Linux 中的缓存、缓冲区和交换空间在某些情况下,您可能需要清除缓存、缓冲区或交换空间,如下所述。清除 PageCache要仅清除 PageCache,您可以使用以下命令,该命令将专门清除 PageCache,从而帮助释放内存资源。# sync; echo 1 > /proc/sys/vm/drop_caches要仅清除 dentries 和 inode,您可以使用以下命令,该命令将同步文件系统并清除 dentries 和 inode,通过释放缓存的目录和 inode 信息来提高系统性能。# sync; echo 2 > /proc/sys/vm/drop_caches清除 PageCache、dentry 和 Inode要清除 pagecache、dentries 和 inode,您可以使用以下命令,该命令将同步文件系统并清除 pagecache、dentries 和 inode,从而有助于释放内存并提高系统性能。# sync; echo 3 > /proc/sys/vm/drop_caches下面是对上述命令的每个部分的说明:sync:将刷新文件系统缓冲区。“;”:分号用于分隔一行上的多个命令。echo 3 > /proc/sys/vm/drop_caches: 命令用于删除页面缓存,这是最近访问的文件的临时存储区域。注意:drop_caches文件控制应清除哪种类型的缓存数据,其值如下:1 – 仅清除页面缓存。2 – 清除 dentries 和 inode。3 – 清除页面缓存、dentries 和 inode。正如内核文档中提到的,写入 drop_caches 将清理缓存而不会杀死任何应用程序/服务,命令 echo 正在执行写入文件的工作。如果必须清除磁盘缓存,则第一个命令在企业和生产环境中最安全,因为“...echo 1 > ….” 将仅清除 PageCache。不建议使用上面的第三个选项“...echo 3 >”,直到你知道自己在做什么,因为它会清除页面缓存、dentries 和 inode。如何在 Linux 中清除交换空间?要清除交换空间,可以使用带有 -a 选项的 swapoff 命令,这将禁用所有交换分区。# swapoff -a然后,通过运行以下命令将其转回,这将激活所有交换分区# swapon -a在 Linux 中释放缓冲区、缓存和交换是否可取?通常,在 Linux 中手动释放 Linux 内核可能使用的缓冲区和缓存不是一个好主意,Linux 内核旨在有效地管理这些资源,手动清除它们可能会破坏系统性能。但是,在极少数情况下,您需要清除缓冲区和缓存,例如,如果您遇到严重的内存压力并且无法通过其他方式释放内存。在这些情况下,您应该谨慎行事,并注意潜在的性能影响。同样,在正常情况下,在 Linux 中清除交换空间通常不是例行或可取的做法。自动执行内存优化要自动执行该过程并定期清除内存,您可以设置一个 cron 作业以按指定的时间间隔运行命令。打开 crontab 配置# crontab -e添加以下行以在每天午夜清除缓存、缓冲区和交换空间:0 0 * * * sudo sync; echo 3 > /proc/sys/vm/drop_caches 0 0 * * * sudo echo 1 > /proc/sys/vm/drop_caches 0 0 * * * sudo sync; echo 2 > /proc/sys/vm/drop_caches 0 0 * * * sudo swapoff -a && sudo swapon -a是否建议清除 Linux 生产服务器上的 RAM 缓存?考虑这样一种情况:您已安排一个脚本在每天凌晨 2 点清除 RAM 缓存。每天凌晨 2 点,执行脚本,刷新 RAM 缓存。然而,有一天,你的网站上有出乎意料的大量用户在线,对你的服务器资源有很大的需求。同时,计划的脚本运行并清除缓存中的所有内容。现在,所有用户都从磁盘检索数据,这可能会导致服务器崩溃和数据库损坏。因此,只有在必要时才清除 RAM 缓存,并注意您的操作。否则,您将面临成为 Cargo Cult 系统管理员的风险。结论高效的内存管理对于Linux系统的顺利运行至关重要。定期清除RAM内存缓存、缓冲区和交换空间可以显着提高系统性能。通过了解这些机制并使用提供的命令,您可以使 Linux 系统保持最佳运行状态。
2024年06月27日
113 阅读
0 评论
1 点赞
2024-06-16
Redhat 8 安装Nginx
nginx 部署yum|dnf 源部署nginx 依赖与第三方源 epel1、安装第三方源[root@localhost lvm-test]# yum -y install epel-release [root@localhost lvm-test]# ls /etc/yum.repos.d/ a.repo_bak bak CentOS-Base.repo epel.repo epel-testing.repo2、查找nignx服务[root@localhost lvm-test]# yum search nginx3、安装nginx[root@localhost lvm-test]# yum install nginx -y 4、启动nginx服务789版本systemclt[系统管理命令] start(开启)|stop(停止) | reload(重新加载)| enable (开机自启服务) | disable(开机不自启动) [服务的名称] [root@localhost lvm-test]# systemctl start nginx 6版本serivce [服务名称] start |stop5、添加防火墙规则7 8 firewalld#临时修改 [root@localhost lvm-test]# firewall-cmd --add-port=80/tcpiptables6、修改Selinux查看selinux状态[root@localhost lvm-test]# getenforce Enforcing #严格模式设置Selinux#临时修改 [root@localhost lvm-test]# setenforce 0 0#表示宽松模式 1#严谨模式Seliunx 工作流程图:7、测试使用搜索引擎浏览器在地址栏中:http://serverIP
2024年06月16日
182 阅读
0 评论
0 点赞
2024-06-16
初识Nginx
一、 什么是nginxnginx [engine x]是一个HTTP和反向代理服务器、邮件代理服务器和通用TCP/UDP代理服务器,最初由Igor Sysoev编写。长期以来,它一直在许多重负载的俄罗斯网站上运行,包括Yandex、Mail.Ru、VK和Rambler。据Netcraft称,nginx在2024年3月服务或代理了20.63%最繁忙的网站。以下是一些成功故事:Dropbox、Netflix、Wordpress.com、FastMail.FM。 我们在学习Nginx时也采用同样的方式,先来看看Nginx的竞争对手——Apache、Lighttpd、Tomcat、Jetty、IIS,它们都是Web服务器,或者叫做WWW(World Wide Web)服务器,相应地也都具备Web服务器的基本功能:基于REST架构风格 ,以统一资源描述符(Uniform Resource Identifier,URI)或者统一资源定位符(Uniform Resource Locator,URL)作为沟通依据,通过HTTP为浏览器等客户端程序提供各种网络服务。 Tomcat和Jetty面向Java语言,先天就是重量级的Web服务器,它的性能与Nginx没有可比性。apache的特点 Apache有许多优点,如稳定、开源、跨平台等,但它出现的时间太长了,在它兴起的年代,互联网的产业规模远远比不上今天,所以它被设计成了一个重量级的、不支持高并发的Web服务器。为什么选择Nginx更快这表现在两个方面:一方面,在正常情况下,单次请求会得到更快的响应;另一方面,在高峰期(如有数以万计的并发请求),Nginx可以比其他Web服务器更快地响应请求;高扩展性Nginx的设计极具扩展性,它完全是由多个不同功能、不同层次、不同类型且耦合度极低的模块组成;高可靠性高可靠性是我们选择Nginx的最基本条件,因为Nginx的可靠性是大家有目共睹的,很多家高流量网站都在核心服务器上大规模使用Nginx;低内存消耗一般情况下,10000个非活跃的HTTP Keep-Alive连接在Nginx中仅消耗2.5MB的内存,这是Nginx支持高并发连接的基础;单机支持10万以上的并发连接这是一个非常重要的特性!随着互联网的迅猛发展和互联网用户数量的成倍增长,各大公司、网站都需要应付海量并发请求,一个能够在峰值期顶住10万以上并发请求的Server,热部署master管理进程与worker工作进程的分离设计,使得Nginx能够提供热部署功能,即可以在7×24小时不间断服务的前提下,升级Nginx的可执行文件;最自由的BSD许可协议这是Nginx可以快速发展的强大动力。BSD许可协议不只是允许用户免费使用Nginx,它还允许用户在自己的项目中直接使用或修改Nginx源码,然后发布;Apache拥有丰富的模块组件支持,稳定性强,BUG少,动态内容处理强。Nginx轻量级,占用资源少,负载均衡,高并发处理强,静态内容处理高效nginx 官网nginx 官网地址nginx 软件下载nginx 官方文档
2024年06月16日
88 阅读
0 评论
1 点赞
1
2
3