news 2026/9/17 12:47:10

Oracle 19c Linux保姆级安装教程:从下载到DBCA建库

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Oracle 19c Linux保姆级安装教程:从下载到DBCA建库

很多人拿到Oracle 19c的下载安装教程后,第一反应都是找一个“绿色免安装”的包,或者直接在官网点下载,然后被登录页拦住,再被一堆Linux依赖包折磨到怀疑人生。我当年第一次装19c,环境是CentOS 7,内存给了4G,本来以为像装Windows软件一样一路Next就行,结果栽在缺包、缺用户、缺内核参数上,最后不得不全部卸载重来。后来自己整理了一份保姆级操作步骤,先后在几台测试机上验证过,也算把这条路踩熟了。这篇文章就是那份笔记的完整版,覆盖从下载、系统准备、软件安装、DBCA建库到监听故障排查的每一个环节,适合刚接触Oracle数据库、想在一台Linux服务器上把19c跑起来的同学。文章会尽量做到每一步都告诉你为什么,而不只是让你复制粘贴。

1. 为什么选择Oracle 19c:版本定位与安装前必须想清楚的事

1.1 19c不是“19.0”,是长期支持版本

很多新手会把19c和19.x混在一起。Oracle的c表示Cloud,19c实际上是12c Release 2的延续,属于18c的升级版,官方定位是长期支持版。在数据库领域,选版本最怕选到过渡版本,19c的好处在于它和20c之后的新版本相比,既有现代架构(CDB/PDB)又不会频繁变化,也因此很多企业生产库仍然以19c为主。如果你是学习或做一个内部小项目,19c是现阶段性价比高的选择。

即便你之前对Oracle完全没概念,也可以把19c理解成“一个稳定了很久的数据库版本”,社区资料丰富、网上提问的答案多、第三方工具兼容性好,遇到问题基本都能搜到解决方案。相比动不动冒出新特性的21c、23c,19c更适合作为入门学习和生产实践的起点。

1.2 安装前必须满足的硬条件

内存和磁盘是硬指标。官方文档说至少2G内存,但我建议内存不低于4G,因为后面DBCA建库时如果你选了带PDB的架构,启动多个实例会吃不少内存。磁盘方面,安装软件加数据文件至少预留15G,如果你还要做闪回区、归档日志,20G以上更稳妥。Swap区域的设置也要注意,通常建议是内存的1.5倍,如果内存8G则swap至少4G。

操作系统建议使用Linux x86-64平台,比如Red Hat 7、CentOS 7、Oracle Linux 7/8。虽然也有Windows版本,但生产环境绝大多数是Linux,本文也以Linux为例。如果你用的是CentOS 8或Rocky Linux,也可以参考同样的步骤,只是一些依赖包的名字会有差异,遇到找不到包的情况时用yum provides去查就可以。

1.3 标题里的“8.7”到底指什么

先解释一下标题。这里“8.7”并不是Oracle的版本号,也不是19c的补丁编号,而是我自己教程归档时的一个序列号:这是第八个系列里的第七篇。网上有朋友误以为19c还有一个8.7版本,实际不是。Oracle 19c的官方安装包名称一般长这样:LINUX.X64_193000_db_home.zip,其中的193000代表19.3.0.0.0。先把版本概念理清,再去下载安装,心里的底就足很多。

为什么要专门说这个?因为我在群里看到过有人拿着第三方网站的“19.8”截图到处问,最后发现是网页标题拼接出来的误导信息。下载之前认准官方文件名和校验值,比什么都重要。

2. Oracle账号与安装包下载:没有账号也能下载的完整路径

2.1 注册Oracle账号流程与避坑

Oracle官网下载确实需要登录Oracle Account。这个账号是免费的,不要被第三方代下载网站忽悠。打开Oracle下载中心,找到Oracle Database 19c for Linux x86-64,点击下载会跳转到登录页。注册时需要注意:邮箱要能收到验证邮件,国家/地区选择不会影响下载,密码需要包含大写字母、数字和特殊字符。注册完成后回到下载页重新登录,就可以看到两个zip包:一个约2.7G的LINUX.X64_193000_db_home.zip,另一个是补丁说明等小文件。通常只需要下载那个大的主安装包。

注册过程还有一个容易忽略的点:Oracle官网的登录态过期时间很短,如果你下载到一半去开其他页面,可能回来就要重新登录。建议下载前先登录,然后直接点击下载按钮,不要开着下载页面长时间不动,避免会话超时后下载中断。

2.2 老生常谈的“没有Oracle账号怎么下载”

网传各种绕过登录的方法,实际最稳妥的还是注册免费账号。如果你所在网络环境确实无法访问官网,那就需要找公司已有的安装包离线传播,这也是很多企业内部的标准做法。拿到离线包后,一定先核对文件大小和校验值。怎么核对?下载完成后用md5sum或sha256sum命令:

sha256sum LINUX.X64_193000_db_home.zip

看输出和Oracle官网页面上给出的校验值是否一致。不一致的包坚决不要用。解压到一半报错是最轻的后果,装出来的数据库存在未知风险才麻烦。另外,不要从一些来路不明的网盘拿所谓的“破解版”或“绿色版”,那里面被塞了多少私货没人知道。

2.3 解压而不是双击安装

拿到zip后,在Linux里先创建ORACLE_HOME的目录,然后把zip解压进去:

mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1 cd /u01/app/oracle/product/19.3.0/dbhome_1 unzip -q /path/to/LINUX.X64_193000_db_home.zip

解压后的目录里会出现runInstaller、database目录等。到这里,安装介质才真正准备好了。注意:这个目录就是未来的ORACLE_HOME,所以做大纲时要提前规划好,别随便解压在/tmp,目录权限后面会统一处理。如果解压时提示磁盘空间不足,先清理/opt或者扩容,不要继续硬装。

3. 操作系统层面的配置:依赖包、内核参数、用户和环境

3.1 一次性装齐依赖包

Oracle安装程序有前置检查,缺包会直接中断。与其等到出错再去补,不如先装齐。CentOS 7或RHEL 7环境,我习惯先执行:

yum -y install bc binutils compat-libcap1 compat-libstdc++-33 \ elfutils-libelf elfutils-libelf-devel fontconfig-devel \ glibc glibc-devel ksh libaio libaio-devel \ libX11 libX11-devel libXau libXau-devel libXi libXi-devel \ libXtst libXtst-devel libXrender libXrender-devel \ libgcc libstdc++ libstdc++-devel libxcb make \ net-tools nfs-utils python perl \ smartmontools sysstat unzip

有些包在不同源里名字可能不太一样,比如compat-libstdc++-33在CentOS 7源里可能存在,如果找不到,可以用yum provides命令查一下。其实更省事的方法是先把这个命令跑一遍,然后再运行runInstaller -executePrereqChecks,让它列出还缺哪些包,最后统一补齐。这样既能保证不遗漏,也不用对着官方文档一个个找。

3.2 用户与目录权限

Oracle不允许直接用root安装。需要创建专用用户和用户组:

groupadd oinstall groupadd dba groupadd oper useradd -g oinstall -G dba,oper oracle echo "oracle" | passwd --stdin oracle

目录结构一般如下:

mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1 mkdir -p /u01/app/oracle/oradata mkdir -p /u01/app/oracle/fast_recovery_area chown -R oracle:oinstall /u01/app

/u01/app/oracle是ORACLE_BASE,dbhome_1是ORACLE_HOME。chown前要确认/u01没有其他重要文件,如果你是在独立挂载的磁盘上操作,也要先确认挂载点存在且没有占用。目录创建好后,用ll /u01/app确认属主已经变成oracle:oinstall,然后再进行下一步。

3.3 内核参数:这是新手最容易跳过的坑

很多速成教程不会讲内核参数,结果安装到52%突然报错,回头看全是shared memory设置不够。我一般把参数写到单独的sysctl文件里,方便卸载和复查:

vi /etc/sysctl.d/98-oracle.conf

内容如下:

fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 536870912 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576

保存后执行:

sysctl -p /etc/sysctl.d/98-oracle.conf

其中kernel.shmmax是共享内存段最大值,这个值可以按内存大小调整,比如4G内存设为2G也是可以的,关键是不要小于Oracle SGA的预估大小。kernel.sem表示信号量,Oracle官方文档给出的基准值就是上面这组。如果你之前调过生产库的参数,直接覆盖可能会有影响,但测试机不用太担心。

用户资源限制也要配置,否则安装时文件描述符不够:

vi /etc/security/limits.d/oracle-limits.conf
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 oracle hard stack 32768

配置生效后,需要重新登录oracle用户,再用ulimit -n检查是否已经变成1024或更大。很多人在这一步做了但没重新登录,后面照样报错,看到ulimit输出还是1024就慌了。这里特别提醒,修改limits文件后,必须完全退出oracle用户的会话重新登录,su - oracle都不一定生效,最好通过SSH断开重连。

3.4 环境变量与/etc/hosts

安装之前最好是先把oracle用户的基础环境变量写好。我们这里写一个最小版本,等建库后再补全:

vi /home/oracle/.bash_profile

添加:

export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1 export ORACLE_SID=ORCL export PATH=$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

同时ping一下主机名,如果解析有问题,编辑/etc/hosts:

192.168.1.100 myhost

注意主机名和IP的对应关系必须正确,否则后面配置监听会碰到一堆幺蛾子,其中一个就是监听起不来。

4. 安装Oracle 19c软件:runInstaller逐步图解级操作

4.1 没有图形界面怎么调出安装窗口

runInstaller是图形化安装程序。如果你本机有图形桌面,直接以oracle用户运行./runInstaller。如果远程SSH连接,需要用X11转发或VNC。X11转发最简单的办法是:Windows上用Xshell和Xmanager(或者用MobaXterm自带X server),Linux上用ssh -X。核心前提:服务器上要装了xterm等X11客户端库,前面依赖包里的libX*就是为这个准备的。以MobaXterm为例,连接后运行runInstaller时它会自动把图形窗口转发到本地。如果转发失败,检查/etc/ssh/sshd_config里X11Forwarding是否设置成yes。

如果你和我一样用的是阿里云、腾讯云这类没有图形桌面的云服务器,也可以直接用VNC,但在软件安装阶段我更推荐X11转发,因为配置成本最低。

4.2 几步关键的界面选择

运行:

cd /u01/app/oracle/product/19.3.0/dbhome_1 ./runInstaller

界面一出现,我建议不要急着一路Next。按下面的选择走:

  • Configure Security Updates:取消勾选“I wish to receive security updates via My Oracle Support”,点Next,如果弹出警告点Yes。这一步只是关闭邮件通知,不影响安装。
  • Installation Option:选择“Set Up Software Only”。为什么不选“Create and configure a single instance database”?对于保姆级教程来说,软件安装和建库分开做,出问题时更容易定位。而且DBCA建库后面单开一章,反而更清晰。
  • Database Installation Options:选择“Single instance database installation”。
  • Database Edition:选Enterprise Edition。如果你只是想学基础操作,Standard Edition其实也够,但企业版是大家最常用的,跟着做不会错。
  • Oracle Home位置:会自动填入我们刚才设置的ORACLE_HOME,确认无误后继续。
  • Prerequisite Checks:这是整个安装里最有可能报错的地方。如果前面依赖包、内核参数都做了,这里基本是绿勾。如果有红叉,不要直接忽略,先看它缺什么,然后切到root用户补包/调参后点Check Again。

当信息确认无误,点击Install,安装进度条开始走。安装时间取决于机器性能,通常10到30分钟。这里不要频繁点击界面,否则有可能造成进程卡住。

4.3 两个root脚本的坑

进度条走到接近尾声时,安装界面会提示用root执行两个脚本:orainstRoot.shroot.sh。切记不要直接在界面里取消等待,也不要开一堆root终端同时执行。我在测试机上曾经同时执行过,结果因为环境变量冲突导致root.sh执行不完整。正确做法是单独开一个root终端,按顺序执行:

cd /u01/app/oracle/product/19.3.0/dbhome_1 sh orainstRoot.sh sh root.sh

root.sh执行时会问你本地bin目录路径,直接回车用默认值即可。执行成功后回到安装界面点OK,软件安装才算彻底完成。如果root.sh中途报错,先不要急着重新跑,先看报错信息。常见的是权限不对或者/u01/app/oraInventory目录不存在,这时根据提示修复后再执行。

4.4 静默安装备用方案

如果实在没有图形界面也不会配X11转发,可以走静默安装。用官方模板生成响应文件:

cd /u01/app/oracle/product/19.3.0/dbhome_1 ./runInstaller -silent -responseFile <(cat <<'EOF' oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0 oracle.install.option=INSTALL_DB_SWONLY UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/u01/app/oraInventory ORACLE_BASE=/u01/app/oracle ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1 oracle.install.db.InstallEdition=EE oracle.install.db.OSDBA_GROUP=dba oracle.install.db.OSOPER_GROUP=oper EOF )

静默安装没有进度条,可以通过查看日志判断进度,日志一般在/u01/app/oraInventory/logs/installActions*.log。这种方式适合批量部署,但新手用图形界面体验更直观,出错时也更容易定位。

5. 使用DBCA创建数据库:单机CDB/PDB的搭建全过程

5.1 为什么19c默认是CDB/PDB架构

19c沿用12c引入的多租户架构,简单理解就是:一个容器数据库CDB可以包含多个可插拔数据库PDB。对企业来说,这能显著降低资源占用,这也是为什么19c建库时默认就会问你要不要创建CDB/PDB。新手一开始听到这两个词容易懵,但实际操作中只需要记住:如果创建CDB,通常会有PDB$SEED和一个实际使用的PDB,比如ORCLPDB。

如果你以前用过11g或12c的非CDB模式,会看到很多教程说可以创建non-CDB,但19c里官方对这种模式的支持越来越弱,建议直接用CDB/PDB,不要逆着趋势走。

5.2 用dbca图形建库

软件装完后,先配置监听,再建库更顺畅。监听配置可以用netca:

netca -silent -responsefile $ORACLE_HOME/assistants/netca/netca.rsp

或者直接运行netca,在弹出的界面一路Next,创建一个监听在1521端口的LISTENER。建完监听后验证:

lsnrctl status

看到“Service”和端口监听说明正常。如果提示无法连接,先回到第3节的/etc/hosts排查。

然后启动DBCA:

dbca

图形建库关键步骤:

  • Database operation:选择Create a database。
  • Creation Mode:选择Advanced configuration,这样可以选择数据文件路径、内存比例、字符集等。
  • Deployment Type:选择Oracle Single Instance database。
  • Database Identification:Global database name和SID可以都用ORCL,勾选Create as Container database,PDB name填ORCLPDB。
  • Storage:使用File System即可。
  • 机器内存不大时,数据库安装类型选Server,内存分配建议填总内存的40%左右。比如4G内存就填1600MB。
  • Block Size用默认8K,Processes默认300也够用。
  • Character Sets:如果只是学习建议选UTF8或其超集AL32UTF8,避免中文乱码。
  • 设置sys和system用户密码时,Oracle 19c有密码复杂度要求,至少8位且包含大写字母和数字。不要用类似123456的弱口令,数据库装好后很难在非公开环境里解释为什么密码这么脆弱。我实际碰到过因为密码太简单,建库步骤一直卡在密码校验,还以为程序挂了的案例。

确认后点Create Database,DBCA会在后台构建数据字典并创建服务。这个过程通常5到15分钟。完成后会显示Database creation complete,并告知Enterprise Manager URL,不用管它,直接点Close。

5.3 建库后的第一眼验证

建库成功后,登录验证:

sqlplus / as sysdba SQL> select status from v$instance;

应该返回OPEN。然后查PDB:

SQL> show pdbs;

能看到PDB$SEED和ORCLPDB。此时如果想去PDB里操作:

SQL> alter session set container=ORCLPDB;

如果都用默认配置,这条命令之后就可以创建用户、建表了。注意:在19c里,普通业务用户最好建在PDB里,而不要都堆在CDB$ROOT里。这样以后做数据隔离、迁移会方便很多。

6. 安装后的环境变量、开机自启与日常管理基线

6.1 补全oracle用户环境变量

前面写的环境变量是基础版,建库后要补上一些辅助设置。完整版.bash_profile可以参考:

export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1 export ORACLE_SID=ORCL export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 export PATH=$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export TNS_ADMIN=$ORACLE_HOME/network/admin

NLS_LANG建议明确设置,否则Sqlplus连接时客户端字符集和服务端不一致,中文会变成问号。TNS_ADMIN则帮助一些第三方工具找到tnsnames.ora。

6.2 监听与tnsnames.ora

监听默认配置在$ORACLE_HOME/network/admin/listener.ora,一般DBCA会生成基本配置。如果监听状态正常,不需要手动改。但用PL/SQL Developer或DBeaver远程连接时,需要在本机或服务器的tnsnames.ora里配置服务名。服务器端可以这样加一个条目:

ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = your_host_ip)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL) ) )

如果连接PDB,SERVICE_NAME要写ORCLPDB,而不是ORCL。这是新手最容易踩的连接错误。我见过有人用SqlDeveloper连接时一直用ORCL去连PDB,报ORA-01033后就怀疑数据库没装好,其实只是服务名写错了。

6.3 设置开机自启(可选但有备无患)

对于测试机,重启后数据库不会自动启动,手动执行很麻烦。可以写一个最简单的启动脚本放到rc.local里。首先确认rc.local有执行权限:

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

然后在/etc/rc.local末尾添加(以oracle用户执行):

su - oracle -c "/u01/app/oracle/product/19.3.0/dbhome_1/bin/lsnrctl start" su - oracle -c "/u01/app/oracle/product/19.3.0/dbhome_1/bin/sqlplus / as sysdba <<EOF startup exit EOF"

这种方式虽然是“野路子”,但在脚本规模小的场景下足够。如果你想做得更规范,可以注册systemd服务,但在生产环境我建议先和运维同事确认节奏,不要擅自改开机项。重启之后记得用第6.4节的基本命令检查一遍,别只看进程有没有。

6.4 日常管理基线命令

安装完成后,至少要知道这几个命令用于体检:

ps -ef | grep pmon lsnrctl status sqlplus / as sysdba SQL> select name, open_mode from v$database; SQL> show sga;

如果这些输出都正常,说明这套Oracle 19c已经从下载安装走到了可以使用的状态。把这几个命令存成一个check_oracle.sh脚本,以后每次重启都能快速确认状态,比临时敲命令高效得多。

7. 保姆级避坑:监听起不来、Ora-28547、图形弹出失败等高频问题

7.1 监听服务无法启动的完整排查链路

监听起不来是安装后最高频的问题。我见过太多人一上来就查listener.ora,结果根本不是配置问题。我的排查顺序是:

  1. 先看hosts文件。执行hostname拿到主机名,再grep <主机名> /etc/hosts。如果主机名没有对应IP,监听会报TNS-12545或类似错误。好多人因为hosts里只有localhost.localdomain,导致监听绑不到正确地址。
  2. 再看端口占用。netstat -tlnp | grep 1521。如果有别的进程占用,或者之前残留的Oracle进程,需要先处理。
  3. 再看环境变量。确保以oracle用户执行的which tnslsnr指向的是当前ORACLE_HOME/bin/tnslsnr。如果PATH混乱,可能监听程序和客户端程序来自不同安装,导致版本不一致。
  4. 最后才看监听日志:tail -100 $ORACLE_HOME/network/log/listener.log。日志里会有具体的错误码。

下面这张表是我在实际环境中遇到比较多的监听相关错误码,可以对照排查:

错误码典型原因处理方向
TNS-12541无监听端点检查listener.ora端口和监听状态
TNS-12545连接超时或主机名不可达检查hosts、防火墙、网络
TNS-12560协议适配器错误常见于Oracle进程未启动或ORACLE_HOME不对
TNS-01189监听文件损坏重新生成listener.ora或恢复备份

7.2 ora-28547:Connection to server failed, probable Oracle Net admin error

这个错误常见于用PL/SQL Dev或Navicat连接时报错。它不是一个单一的根因,最典型的是本机oracle客户端和服务器版本不匹配,或者ORACLE_HOME环境变量没设置好。在服务器本机,如果你同时装过Oracle 18c和19c,却没有正确切换环境变量,执行sqlplus时加载的是旧版本libclntsh.so,就容易出现Ora-28547。解决思路:

  • 在oracle用户下检查环境变量是否指向19c的ORACLE_HOME。
  • 检查tnsnames.ora里SERVICE_NAME是否写错,比如把PDB名写成CDB名。
  • ldd $ORACLE_HOME/bin/sqlplus查看动态库依赖,确认没有异常。
  • 如果用的是DBeaver等外部工具,注意驱动版本,不要用太老的Oracle JDBC驱动连19c。

这个错误的排查核心就是“客户端、驱动、服务端三方版本要接近”。有时你本地装过11g客户端,再装一个19c客户端,连接又不用新客户端的tnsnames,就会触发版本匹配问题。最干净的办法是把旧客户端从PATH中移除,确保当前生效的client是19c。

7.3 没有图形界面的服务器安装解决方案

如果完全没有X11转发条件,除了静默安装之外,还可以用VNC。在服务器上安装VNC server:

yum -y install tigervnc-server vncserver :1 -geometry 1280x800

然后用Windows端的VNC Viewer连接IP:1,输入密码后就能看到一个虚拟桌面,在里面打开终端跑runInstaller。这种方法比X11转发更稳,因为网络断了图形窗口还在虚拟桌面上。缺点是占用内存,配置低的测试机跑起来会卡。如果只是临时装一次,我更推荐X11转发,因为配置成本更低。

如果你用的是Windows下的Xshell,再配一个Xmanager,基本能做到无感转发图形界面。具体操作是:Xshell会话属性里勾选“转发X11连接”,Xmanager后台运行,然后runInstaller的窗口就会自动出现在Windows桌面上。这个方案我在公司云主机上用过很多次,稳定且不需要root权限额外安装东西。

7.4 安装过程卡住、日志排查和卸载重装

如果在安装中出现进度条长时间不动,先去日志目录看实时日志:

tail -f /u01/app/oraInventory/logs/installActions*.log

大多数卡住是因为rpm包冲突、目录权限错误或者/tmp空间不足。日志会给出具体位置。实在救不回来的,需要清理重来。卸载Oracle 19c的正确顺序是:先停掉监听和数据库,再运行$ORACLE_HOME/bin/deinstall,然后删除相关目录和用户,最后清理/etc/oratab/etc/oraInst.loc。不要一上来就rm -rf /u01/app,这样容易留下很多残留,下次安装时各种灵异报错。

卸载前可以用lsnrctl stopsqlplus / as sysdba执行shutdown abort来释放占用,否则deinstall会因为进程还在而半途失败。deinstall命令会在最后自动清理大部分文件,但用户组和用户目录还需要手动删除。清理干净后,重装之前再检查一遍/etc/oratab,确保没有旧条目残留。

我在实际操作中的体会是,大多数安装问题都不是能力问题,而是“没按顺序来”。装Oracle最忌讳跳步骤。依赖没装就急着跑runInstaller,环境变量没配好就急着lsnrctl,这些都会在后期集中爆发。建议把我上面这些章节当作一张检查表,每完成一项就确认一项。机器装完记着用sync和reboot做一次干净重启,再验证数据库状态。这样一套走下来,你会比很多装了多年数据库但没踩过坑的人更清楚问题出在哪。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/17 12:46:02

MySQLdb 连库脚本:用走 TaoToken 的 Codex 对照 cursor 与 fetchall 改写

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/17 12:45:50

低功耗FPGA实现边缘AI:让智能玩具真正本地化思考

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/17 12:45:20

惊了!法语翻译价格水这么深?别再当冤大头了!

不管是去法国留学要翻成绩单&#xff0c;还是做中法贸易要译合同&#xff0c;一碰到法语翻译&#xff0c;大家先问的就是价格。这行水可太深了&#xff0c;有人花几百块翻的文件被使馆打回&#xff0c;有人贪便宜找机器翻译闹了笑话。其实找对渠道就能不花冤枉钱&#xff0c;比…

作者头像 李华
网站建设 2026/9/17 12:43:57

Django构建个性化餐饮推荐系统:协同过滤与ItemCF详解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/17 12:40:21

OpenClaw 报网络错误?TaoToken 的接口 Base URL 这样填

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/17 12:39:58

PTV3:序列化点云Transformer如何实现更简单、更快、更强

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华