浅析Centos7安装Oracle12数据库

news2025/4/12 23:14:55

        Linux下的Oracle数据库实在是太难安装了,事贼多,我都怀疑能安装成功是不是运气的成分更高一些。这里虚拟机是VMware Workstation 15.5,操作系统是Centos7,Oracle版本是Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production。
Oracle下载链接: https://pan.baidu.com/s/1koFPbw26lxCcsIdPEsuZXQ?pwd=nwvk 提取码: nwvk

1、在虚拟机上安装Centos7
        要求:
                a、物理内存:2G【建议啊】
                b、硬盘:40G【默认20G是不够的】
                c、 swap交换分区:3G【小于3G则Oracle安装检查环境时会提示swap大小不足,当然右上角有相关选项,勾选是可以略过这步的,但没必要,不至于穷到连3G都不能给swap】
                d、带GUI的服务器【不能最小安装,因为Oracle12的安装是带有图形界面的】
                e、为Centos7设置固定IP【这个想当服务器用的都得有固定IP吧】
        开始:
                创建新的虚拟机

                选择【典型】,点击【下一步】按钮

                选择【稍后安装操作系统】,点击【下一步】

                选择【Linux】与【CentOS 7 64位】,点击【下一步】

                改好Centos7要安放的位置后点击【下一步】

                硬盘改为40G,默认的20G不够,点击【下一步】

                点击【自定义硬件】

                点击【关闭】按钮后再点击【完成】按钮。

                点击【编辑虚拟机设置】

                将你的Centos7的镜像文件【我的是CentOS-7-x86_64-DVD-1810.iso】挂载到光盘上准备运行。点击【确定】按钮。

                点击【开启此虚拟机】,等待安装。

                鼠标点击进入安装界面【注:一定要点击进去啊,不会就点击屏幕中央位置,然后鼠标会改变形状】后按向上的方向键,使【Install CentOs 7】选项变白,回车开始安装。这时鼠标是在安装界面里的,要想出来可按【Ctrl+Alt】。

                安装界面语言选择【中文】(鼠标要点入安装界面啊),点击【继续】按钮。
                进入安装选择界面后要多等待一会,程序要检查软件安装依赖关系,这时不要乱点。

                先改日期时间

        亚洲+上海,改完日期与时间后点击左上角【完成】按钮。

                点击【软件选择】,默认是最小安装,这个不行,得改为带GUI的服务器。

                点击【完成】按钮后程序会重新检查软件依赖关系,等会,别乱动,这个看机器性能,我机器慢,等了好几分钟呢。

                点击【安装位置】,我们要手工分区。

                点击【我要配置分区】,再点击【完成】按钮。

                将新挂载点将使用的分区方案改为【标准分区】

                再点击【+】按钮

                首先是挂载【/boot】引导分区,容量1G就够了。点击【添加挂载点】

                将文件系统改为【ext4】格式。再点击左下角的【+】按钮

                其次选择【swap】交换分区,容量3G,这个很重要,点击【添加挂载点】

                文件系统默认是swap格式的,不用动。再点击【+】按钮

                最后挂载【/】根目录,容量不用填。点击【添加挂载点】按钮。

                将文件系统改为【ext4】格式。点击左上角的【完成】按钮

                点击【接受更改】按钮完成安装位置选项。

                点击【KDUMP】按钮

                去掉【启用kdump】选项,点击【完成】按钮。

                点击【网络和主机名】

                修改主机名,再点击【应用】按钮。

                再点击右上角【打开/关闭】按钮

                打开网络连接。这里要记住路由与DNS的地址,后面配置固定IP要用到。点击【完成】按钮。

                点击【SECURITY POLICY】选项。

                点击【打开/关闭】按钮,取消密码安全性限制。

                点击【完成】按钮。

                点击【开始安装】按钮

                先设置root密码

                我设的密码太简单,需要点2次【完成】按钮才能成功。再点击【创建用户】

                密码简单,再点击2次【完成】按钮才创建用户成功。
                耐心等待安装就行......

                漫长的时间啊,终于等到了,点击【重启】按钮。

                这里要接受许可。

                点击【完成】按钮。

                网络和主机名我们前面配置过,这里就不用再配置了。点击【完成配置】按钮。
                
                这里点击【未列出】,我们要用root登录系统。

                输入密码后进入系统界面。

                点击右上角【前进】按钮,再点击【前进】按钮

                这里关闭隐私,再点击【前进】按钮,再点击下一界面的【跳过】按钮,再点击下一界面的开始使用按钮。

                点击右上角的【X】退出。终于进来正常的界面了。

2、为安装Oracle数据库做准备工作
        换yum源:
                我发现yum原来默认的国外镜像网站不好用了,你说操蛋不,我得换成阿里云的镜像网站,你的yum要是没事就可以略过此步。
                鼠标右键点击桌面,右键菜单选择【打开终端】

        我执行yum list提示如下

                真的不好用了啊,必须为yum换源了。

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo


        清除本地yum缓存、索引、头文件、插件

yum clean all

        把服务器的包信息下载到本地电脑缓存起来

yum makecache


                更新已安装软件版本,防止与原来yum源安装的软件依赖发生意外冲突。但不更新linux内核。

yum -y upgrade


         这个时间有点长,等待。更新完成后测试了一下yum,发现OK。

yum search ifconfig


        设置固定IP
                编辑网络配置文件

vim /etc/sysconfig/network-scripts/ifcfg-ens33


        首先将 BOOTPROTO="dhcp" 改为 BOOTPROTO="static",我这里将其注释了然后重新复制一份再修改。
        最后再在最后面补充以下内容

IPADDR="192.168.126.100"
NETMASK="255.255.255.0"
GATEWAY="192.168.126.2"
DNS1="192.168.126.2"


 

        按【esc】键,再按【:wq】保存退出。
        IPADDR是本机固定IP,NETMASK是掩码,GATEWAY是网关,DNS1是首选DNS。前面安装网络与主机名时有下面的界面显示了IP相关信息,我们原样拿过来用就行,我就把IP改了一下,100好记。

        若前面安装忘记了网络相关信息也不怕,点击虚拟机VMware的菜单【编辑】

下的【虚拟网络编辑器】菜单


        点击【NAT】模式,再点击【NAT设置】按钮

        在这里也能看到网络IP相关信息。
        执行下列代码让网络马上生效

systemctl restart network

再执行下面代码查看网络具体信息。

ifconfig

        关闭防火墙:
        关闭防火墙为了防止安装过程中的某些操作被防火墙阻止,确保安装程序可以正常访问所需要的端口与服务。安装完成后再重新启动防火墙并开放oracle的1521端口就行。
        执行下面3条命令

systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service

        【systemctl stop firewalld.service】是关闭防火墙
        【systemctl disable firewalld.service】是禁止防火墙的开机自启
        【systemctl status firewalld.service】是查看防火墙状态

        安装依赖包:

yum install -y binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33.i686 glibc glibc.i686 glibc-devel glibc-devel.i686 ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libX11 libX11.i686 libXau libXau.i686 libXi libXi.i686 libXtst libXtst.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel libstdc++-devel.i686 libxcb libxcb.i686 make nfs-utils net-tools smartmontools sysstat unixODBC unixODBC-devel gcc gcc-c++ libXext libXext.i686 zlib-devel zlib-devel.i686

       这些都是要安装Oracle数据库的软件依赖包,好多啊,有些依赖包前面安装系统时已经安装过了,还有些未安装过的。这些依赖包内容可以在Oracle官网上的文档中查到。

        执行下面命令检查依赖包是否全部安装完成

rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' binutils compat-libcap1 compat-libstdc++-33 cpp gcc gcc-c++ glibc glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make mpfr sysstat

        基本上不会有什么问题。

        创建组:

groupadd oinstall
groupadd dba
groupadd oper
groupadd osoper

        这里创建了4个组。

        创建用户并修改密码:

useradd -g oinstall -G dba,oper oracle
passwd oracle

        这里创建oracle用户来管理Oracle数据库的安装及后面的日常操作。该用户隶属于【oinstall】组,附加组是【dba】与【oper】。

        修改内核限制参数:

vim /etc/security/limits.conf

        在配置文件末尾插入下面内容

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240


        按【esc】键,再按【:wq】保存退出。
        其中【oracle soft nproc 2047】是单用户可使用进程数量
                【oracle soft nofile 1024】是用户可打开文件数量
                【oracle soft stack 10240】是堆栈设置

        手动配置内核参数:

vim /etc/sysctl.conf

在配置文件末尾插入下面内容

fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500

        按【esc】键,再按【:wq】保存退出。
        刷新内核参数,使其马上生效。

sysctl -p

        修改login配置文件:

vim /etc/pam.d/login

        在配置文件末尾插入下面内容

session required /lib64/security/pam_limits.so
session required pam_limits.so

        按【esc】键,再按【:wq】保存退出。

        修改profile文件:

vim /etc/profile

在配置文件末尾插入下面内容

if [ $USER = "oracle" ] ; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi

        按【esc】键,再按【:wq】保存退出。

        配置环境变量:

        创建Oracle安装软件的存放目录,后面我们会把该文件拷贝到此目录下。

mkdir -p /setup/oracle

        创建Oracle数据库软件安装目录,后面安装时会将Oracle数据库安装到此目录下。

mkdir -p /app/oracle/product/12.1.0/dbhome_1

        配置oracle用户的环境变量,后面我们要用前面创建的oracle用户来专门安装管理Oracle12数据库,因此这里要特意为该用户配置一下环境变量,别的用户是不能管理Oracle数据库的。

vim /home/oracle/.bash_profile

        在配置文件末尾插入下面内容

export ORACLE_BASE=/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/12.1.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH

        按【esc】键,再按【:wq】保存退出。
        刷新配置,使其马上生效。

source /home/oracle/.bash_profile

        进入到Oracle软件存放目录

cd /setup/oracle

        将oracle安装软件拷贝到该目录,我用的是MobaXterm软件,用啥软件都行,能把文件拷贝过来就行。


        拷贝完毕后回到Centos的终端窗口,查看文件

ls

        2个文件都已经拷贝过来了,下面解压这2个文件。
        【注】:若无unzip软件可先安装【yum -y install unzip】

unzip V46095-01_1of2.zip
unzip V46095-01_2of2.zip

        重新查看一下该目录下文件

ls

        2个压缩文件已经解压到 /setup/oracle/database目录下了。

        文件授权:
                后面我们要用oracle用户登录来安装Oracle数据库,而前面的所有操作都是用root用户来完成的,所以必须把Oracle数据库的安装软件授权给oracle用户,否则无权管理这些文件。

chown -R oracle:oinstall /setup/oracle/database/

        查看一下授权后内容

ll

        可以看到 /setup/oracle/databae/ 目录及其下属所有文件都已经改为oracle用户所有了。
        同理我们再把Oracle数据库软件要安装到的目录也更改一下权限,因为该目录也是用root用户建立的,不改不行啊!

chown -R oracle:oinstall /app/

        建议现在重启,然后在虚拟机上以oracle用户登录

reboot

因为改了很多东西,也不知道有没有问题,改没改错,重启看一下。

这里我们用oracle用户登录

        没问题,进来了,由于头一次使用oracle用户登录,需要一些配置,与前面的相同,这里略。
在桌面上按右键选择【打开终端】,这回真的要开始安装Oracle了。
        若不想重启系统的话也没毛病,切换用户即可。

su - oracle

       【
                设置DISPLAY变量:
                我是在虚拟机上直接安装Oracle数据库,因此不用设置DISPLAY变量。但若你是在客户端连接软件上的话那就麻烦了,需安装支持图形界面的软件,还得设置DISPLAY变量
                export DISPLAY=192.168.126.100:0.0
                xclock
        】

        临时将系统换成英文
        因为Oracle安装包提供的jdk内缺少中文字体,安装时显示的都是乱码,因此最简单的方法就是临时将系统的中文改为英文。

export LANG=en_us

        进入Oracle软件存放目录

cd /setup/oracle/database

        显示目录内容

ll

        运行该文件

./runInstaller

        检测通过,可以启动Oralce安装界面了。

        我服了,分辨率不够,看不到安装界面全景啊。继续改!
选择Centos左上角菜单【应用程序】->【系统工具】->【设置】

        点击【设备】

        修改高分辨率

        点击【应用】按钮,再点击【保留更改】按钮。拉动底下向右滚动条,点击右上角的【X】退出即可。这回就能看全了。

        去掉勾选,点击【next】按钮。【上面2图中的下图是从网上找的中文对照,省得看得不习惯】


        选择【yes】按钮


        点击【next】按钮。


        选择【Server class】,点击【next】按钮。

        选择【Single instance database installation】,点击【next】按钮。

        选择【Typical install】典型安装,点击【next】按钮。


        翻译不完全一样,大致对照理解一下就行。输入新数据库登录密码,去掉【Create Container databae】勾选,点击【next】按钮。

        密码太简单,提示安全问题,不管它,选【Yes】继续。

        点击【next】按钮。

        上面是检测安装环境,若是前面swap未设置3G这里就会有提示。我们继续

        没问题,点击【install】按钮

        安装中。。。

        这是2个shell文件,需要以root用户权限来执行
回到终端窗口,先按一下回车显示正常状态,然后切换用户

su

输入密码后执行第一条命令

/app/oraInventory/orainstRoot.sh

再执行第二条命令

/app/oracle/product/12.1.0/dbhome_1/root.sh

这里会有个提示,停顿一下,回车即可。

        回到Oralce安装窗口点击刚才那个弹出窗口中的【ok】按钮,继续安装中。。。

        Oracle安装程序开始创建数据库了


        点击【ok】按钮。


        数据库安装成功,点击【close】按钮结束。

收尾工作:

        【确保我们现在是以root用户登录,刚才前面执行2个shell命令时已经改过了。】
        数据库自启动
                重启linux后oracle数据库是不会自动启动的,得我们手工配置一下才行。
                a、修改Oracle的配置文件

vim /etc/oratab

                        将    【orcl:/app/oracle/product/12.1.0/dbhome_1:N】
                        改为【orcl:/app/oracle/product/12.1.0/dbhome_1:Y】
                        就是将最后一个字母N改为Y就ok了。

                        按【esc】键,再按【:wq】保存退出。

                b、修改Centos的自启动配置文件

vim /etc/rc.d/rc.local

                        rc.local是开机启动文件,通过编辑该文件,用户可以自定义开机启动程序。
                        将需要开机启动的程序命令或脚本路径添加到该文件中,系统启动时该文件将被自动执行。
                        将下面的内容添加到该配置文件中。

su oracle -lc "/app/oracle/product/12.1.0/dbhome_1/bin/dbstart"
su oracle -lc "/app/oracle/product/12.1.0/dbhome_1/bin/lsnrctl start"


                按【esc】键,再按【:wq】保存退出。

                为该启动文件设置可执行权限【默认该文件是没有可执行权限的,不改重启时它不执行啊】

chmod u+x /etc/rc.d/rc.local

启动防火墙

systemctl start firewalld.service

        防火墙很重要,不可能因为Oralce数据库就永远关闭吧,前面安装需要关闭一下,现在安装完事了,只要开放Oracle的1521端口就行了。

systemctl enable firewalld.service

查看一下防火墙现在的状态

systemctl status firewalld.service

开放Oracle数据库的1521端口

firewall-cmd --permanent --add-port=1521/tcp

让设置马上生效

firewall-cmd --reload

查看防火墙是否成功开放了1521端口

firewall-cmd --query-port=1521/tcp

        OK,到此我们的收尾工作已经全部完成,马上重启,看看是否成功!

reboot

我们还是用oracle用户登录,桌面上点击右键,选择【打开终端】。

查看Oracle数据库是否启动,这里我们只要查看是否有Oracle的进程就可以了。

ps -ef | grep pmon

查看Oracle的监听是否启动

lsnrctl status

完全没问题,都正常启动了。


        若Oracle数据库未启动,则需输入下列命令启动。
                sqlplus / as sysdba
                #启动命令
                startup
                #查看启动状态
                select status from v$instance;
                #关闭
                shutdown immediate
        若监听未启动,则需输入下列命令启动。
                lsnrctl start

测试连接:

        用datagrip测试一下连接,成功!

搞定,收工!


        如果,我是说如果连接不成功,总是提示:
ORA-12505: 无法连接到数据库。SID orcl 未注册到 host 192.168.126.100 port 1521 中的监听程序。
        也就是说监听程序不认你给出的SID,拒绝连接。
        问题是给出的SID是正确的,啥毛病也没有啊,但监听就是不认,咋办啊!
        那就硬改一下试试,把SID写死!
        监听程序是listener.ora文件,编辑该文件。

vim /app/oracle/product/12.1.0/dbhome_1/network/admin/listener.ora

在后面加上如下内容

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = orcl)
      (ORACLE_HOME = /app/oracle/product/12.1.0/dbhome_1/)
    )
  )

        ‌SID_LIST_LISTENER是Oracle数据库监听器配置文件listener.ora中的一个条目,用于定义静态注册的服务信息。静态注册是指将数据库实例的信息硬编码在监听器配置文件中,以便在数据库实例关闭时也能通过监听器连接到数据库。
        这也是实在没招了啊!
        按【esc】键,再按【:wq】保存退出。
先停止监听程序

lsnrctl stop

再重新启动监听程序

lsnrctl start

        有UNKNOWN提示,不管他。这回再尝试连接数据库,你会发现可能就好用了。写死了当然好用了啊!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2333427.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

代码随想录算法训练营Day27 | Leetcode 56. 合并区间、738.单调递增的数字、968.监控二叉树

代码随想录算法训练营Day27 | Leetcode 56.合并区间、738.单调递增的数字、968.监控二叉树 一、合并区间 相关题目:Leetcode56 文档讲解:Leetcode56 视频讲解:Leetcode56 1. Leetcode56. 合并区间 以数组 intervals 表示若干个区间的集合&am…

ESP32S3 链接到 WiFi

以下是关于如何让 ESP32S3 连接到 WiFi 的完整流程和代码示例: ESP32S3 链接到 WiFi 1. 设置工作模式 ESP32 可以工作在两种模式下: Station (STA) 模式:作为无线终端连接到无线接入点(AP),类似于手机或…

2024年博客之星的省域空间分布展示-以全网Top300为例

目录 前言 一、2024博客之星 1、所有排名数据 2、空间属性管理 二、数据抓取与处理 1、相关业务表的设计 2、数据抓取处理 3、空间查询分析实践 三、数据成果挖掘 1、省域分布解读 2、技术开发活跃 四、总结 前言 2024年博客之星的评选活动已经过去了一个月&#xf…

蓝桥赛前复习2:一维差分二维差分

一维差分 问题描述 给定一个长度为 nn 的序列 aa。 再给定 mm 组操作,每次操作给定 33 个正整数 l,r,dl,r,d,表示对 al∼ral∼r​ 中的所有数增加 dd。 最终输出操作结束后的序列 aa。 Update:由于评测机过快,n,mn,m 于 2024…

算法---子序列[动态规划解决](最长递增子序列)

最长递增子序列 子序列包含子数组&#xff01; 说白了&#xff0c;要用到双层循环&#xff01; 用双层循环中的dp[i]和dp[j]把所有子序列情况考虑到位 class Solution { public:int lengthOfLIS(vector<int>& nums) {vector<int> dp(nums.size(),1);for(int i …

100道C#高频经典面试题带解析答案——全面C#知识点总结

100道C#高频经典面试题带解析答案 以下是100道C#高频经典面试题及其详细解析&#xff0c;涵盖基础语法、面向对象编程、集合、异步编程、LINQ等多个方面&#xff0c;旨在帮助初学者和有经验的开发者全面准备C#相关面试。 &#x1f9d1; 博主简介&#xff1a;CSDN博客专家、CSD…

MQTT的构成、使用场景、工作原理介绍

一、MQTT内容简介 MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;是一种轻量级、基于发布-订阅模式的消息传输协议【适用于资源受限的设备和低带宽、高延迟或不稳定的网络环境】它在物联网应用中广受欢迎&#xff0c;能够实现传感器、执行器和其它设备之间的…

Vanna + qwq32b 实现 text2SQL

Vanna 是一个开源的 Text-2-SQL 框架&#xff0c;主要用于通过自然语言生成 SQL 查询&#xff0c;它基于 RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索增强生成&#xff09;技术。Vanna 的核心功能是通过训练一个模型&#xff08;基于数据库的元数据和用户提…

电脑知识 | TCP通俗易懂详解 <一>

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f68d;什么是TCP/TCP协议 三、&#x1f9cd;‍♂为什么TCP可靠 1.&#x1f970;关于可靠 2.&#x1f920;哪里可靠 3.&#x1f393;️图片的三次握手&#xff0c;四次挥手 4.&#x1f4da;️知识点总结 四、&…

精品推荐-最新大模型MCP核心架构及最佳实践资料合集(18份).zip

精品推荐-最新大模型MCP核心架构及最佳实践资料合集&#xff0c;共18份。 1、2025年程序员必学技能&#xff1a;大模型MCP核心技术.pdf 2、MCP 架构设计剖析&#xff1a;从 Service Mesh 演进到 Agentic Mesh.pdf 3、MCP 架构设计深度剖析&#xff1a;使用 Spring AI MCP 四步…

Linux 线程:从零构建多线程应用:系统化解析线程API与底层设计逻辑

线程 线程的概述 在之前&#xff0c;我们常把进程定义为 程序执行的实例&#xff0c;实际不然&#xff0c;进程实际上只是维护应用程序的各种资源&#xff0c;并不执行什么。真正执行具体任务的是线程。 那为什么之前直接执行a.out的时候&#xff0c;没有这种感受呢&#xf…

VMware虚拟机Ubuntu磁盘扩容

VMware中操作&#xff1a; 选择要扩容的虚拟机&#xff0c;点击编辑虚拟机设置 打开后点击磁盘——>点击扩展&#xff08;注意&#xff1a;如果想要扩容的话需要删除快照&#xff09; 调整到你想要的容量 点击上图的扩展——>确定 然后我们进到虚拟机里面 首先&#…

游戏引擎学习第217天

运行游戏并在 FreeVariableGroup 中遇到我们的断言 其实在美国&#xff0c;某些特定的小糖果&#xff08;例如小糖蛋&#xff09;只在圣诞节和复活节期间出售&#xff0c;导致有些人像我一样在这段时间吃得过多&#xff0c;进而增加体重。虽然这种情况每年都会发生&#xff0c…

Day 8 上篇:深入理解 Linux 驱动模型中的平台驱动与总线驱动

B站相应的视屏教程&#xff1a; &#x1f4cc; 内核&#xff1a;博文视频 - 总线驱动模型实战全解析 —— 以 PCA9450 PMIC 为例 敬请关注&#xff0c;记得标为原始粉丝。 在 Linux 内核驱动模型中&#xff0c;设备与驱动的组织方式不是随意堆砌&#xff0c;而是基于清晰的分类…

全新突破 | 更全面 · 更安全 · 更灵活

xFile 高可用存储网关 2.0 重磅推出&#xff0c;新增多空间隔离功能从根源上防止数据冲突&#xff0c;保障各业务数据的安全性与独立性。同时支持 NFS、CIFS、FTP 等多种主流文件协议&#xff0c;无需繁琐的数据拷贝转换&#xff0c;即可与现有系统无缝对接&#xff0c;降低集成…

T-Box车载系统介绍及其应用

定义 T-Box汽车系统&#xff0c;全称为Telematics - BOX&#xff0c;也常简称为车载T - BOX&#xff0c;是汽车智能系统及车联网系统中的核心组成部分&#xff0c;是安装在车辆上的一种高科技远程信息处理器。 工作原理 T-Box的核心功能主要通过MPU和MCU实现。MPU负责应用程序功…

SQLyog使用教程

准备工作 链接本地数据库 准备 1&#xff1a;安装mySQL数据库 2&#xff1a;安装SQLyong 连接本地数据库 打开SQLyong应用&#xff0c;将会出现下面的页面 点击新建&#xff0c;输入链接名 输入密码&#xff0c;点击 连接 按钮 如果出现连接错误&#xff0c;且错误号为2058…

for循环的优化方式、循环的种类、使用及平替方案。

本篇文章主要围绕for循环,来讲解循环处理数据中常见的六种方式及其特点,性能。通过本篇文章你可以快速了解循环的概念,以及循环在实际使用过程中的调优方案。 作者:任聪聪 日期:2025年4月11日 一、循环的种类 1.1 默认有以下类型 原始 for 循环 for(i = 0;i<10;i++){…

使用 Python 扫描 Windows 下的 Wi-Fi 网络实例演示

使用 Python 扫描 Windows 下的 Wi-Fi 网络 代码实现代码解析 1. 导入库2. 解码混合编码3. 扫描 Wi-Fi 网络4. 运行函数 这是我当前电脑的 wifi 连接界面。 这个是运行的效果图&#xff1a; 代码实现 我们使用了 Python 的 subprocess 模块来调用 Windows 的内置命令 netsh…

python manimgl数学动画演示_微积分_线性代数原理_ubuntu安装问题[已解决]

1.背景 最近调研python opencv, cuda加速矩阵/向量运算, 对于矩阵的线性变换, 秩, 转秩, 行列式变化等概概念模糊不清. 大概课本依旧是天书, 于是上B站搜索线性代数, 看到 3Blue1Brown 线性变换本质 视频, 点击观看. 惊为天人 --> 豁然开朗 --> 突然顿悟 --> 开心不已…