尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
02-MySQL数据库服务安装部署全流程
文章目录1. 数据库服务程序下载2. 数据库服务安装2.1 软件环境准备2.2 数据目录初始化2.3 初始化数据库2.4 启动数据库服务2.5 验证是否启动成功2.6 配置远程3. 安装使用常见问题和处理3.1 常见问题问题1初始化报错libaio问题2: 初始化报错数据文件目录不为空问题3启动后初始无法登录3.2 启动失败排错过程步骤一系统环境与基础资源排查先排除外部干扰步骤二分析错误日志步骤三日志没有有效信息总结排错核心原则本文演示安装的环境使用的是CentOS 7.9MySQL 8.0.36。1. 数据库服务程序下载MySQL 可通过官方网站或合规镜像站下载两种渠道均具备可用性。官方下载渠道MySQL官方网站https://dev.mysql.com/downloads/是最权威的下载源可获取社区版免费、企业版需授权的安装包、源码包涵盖Windows、Linux、macOS等多系统版本且能精准选择对应版本如5.7、8.0 LTS。镜像站下载场景因官方服务器多部署在海外国内用户常选择镜像站以提升下载速度主流靠谱的镜像站包括阿里云镜像站https://mirrors.aliyun.com/mysql/网易开源镜像站https://mirrors.163.com/mysql/Downloads/。镜像站文件也是同步的官方安装包而且镜像站的版本一般只是常用的一些生产环境建议核对安装包 MD5/SHA256 校验值企业版需从官方获取授权镜像站仅提供社区版。简而言之MySQL 可从官网优先或合规镜像站下载核心是确保下载源安全、版本准确镜像站是国内提升下载效率的常用选择。官方地址可直接点击下载https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.36-linux-glibc2.17-x86_64.tar.xz选择官网网站的DOWNLOADS进行数据库软件程序下载选择在数据库官方下载页面中选择MySQL Community (GPL) Downloads链接进行数据库程序社区版下载进入数据库程序的社区版下载页面后会看到社区版数据库服务的多种安装场景选择MySQL Community Server方式安装或者到官方历史版下载页面选择历史版本进行下载进入到社区版服务器安装场景界面需要选择数据库服务的安装部署环境和需要下载的程序具体版本信息选择好筛选项之后找到Compressed TAR Archive压缩的 TAR 归档文件项下载这是官方提供的核心安装包格式。查看Linux系统的glibc运行使用的C语言库版本信息[rootmysql ~]# getconf GNU_LIBC_VERSIONglibc2.17[rootmysql ~]# ldd --versionldd(GNU libc)2.17Copyright(C)2012Free Software Foundation, Inc. This isfreesoftware;see thesourceforcopying conditions. There is NO warranty;not evenforMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Written by Roland McGrath and Ulrich Drepper.2. 数据库服务安装在Linux系统中常见的部署安装方式序号安装方式特征说明01采用二进制方式安装直接解压缩预编译二进制程序包完成简单配置与初始化即可使用。部署简单无法自定义编译参数安装包体积较大中小企业离线部署场景常用。02采用rpm/deb本地包方式安装下载对应系统架构的独立软件包离线安装需要匹配系统版本不会自动处理依赖缺失依赖包需手动逐个下载安装。部署较繁琐无编译定制能力。03采用系统包管理器(yum/dnf/apt等)方式安装配置软件仓库源联网执行安装可自动下载并解决全部依赖。操作简单软件版本由仓库决定无法自定义编译参数。04采用源码包方式安装下载软件源代码包预先安装编译环境与依赖库通过gcc等工具编译后安装。部署复杂度最高编译耗时久优势是编译阶段可灵活定制功能、参数。因为这里主要围绕数据库服务的应用和管理进行说明所以选择二进制安装方式安装过程更加简单和规范。2.1 软件环境准备查看系统环境[rootmysql ~]# cat /etc/redhat-release #操作系统版本。CentOS Linux release7.9.2009(Core)关闭防火墙systemctl stop firewalld# 临时关闭重启失效systemctl disable firewalld# 永久关闭,推荐防止重启失效如果不想关闭防火墙的话则需要开放远程端口号默认3306# 1. 永久添加端口规则firewall-cmd--permanent--add-port3306/tcp--zonepublic# 2. 重新加载防火墙配置使规则生效firewall-cmd--reload# 3. 验证端口是否开放成功firewall-cmd --query-port3306/tcp# 返回yes则成功关闭selinux安全功能setenforce0# 临时关闭selinuxgetenforce# 查看关闭selinux# 修改配置文件永久关闭sed-is#SELINUXenforcing#SELINUXdisabled#g/etc/selinux/config不关闭的话会影响安装后的MySQL初始化操作导致初始化失败。卸载mariadb依赖包yum remove mariadb-libs-y# 卸载系统已经安装的mariadb依赖包rpm-qa|grepmariadb# 验证是否卸载部署官方 MySQL 时卸载系统自带 MariaDB 依赖包是为了消除二者在库文件、配置、依赖链上的核心冲突确保 MySQL 安装过程顺畅、运行状态稳定避免后续运维中出现不可逆的兼容性故障。安装相关依赖包yuminstallncurses ncurses-devel ncurses-compat-libs libaio libaio-devel openssl openssl-devel-y一键安装编译 / 运行 MySQL 所需的底层依赖库主要用于解决源码编译 / 手动部署 MySQL 时的依赖缺失问题。依赖包核心作用对MySQL的必要性ncurses提供终端字符界面处理、光标控制、命令行交互基础功能必备MySQL客户端/服务端运行依赖ncurses-develncurses的开发库含头文件、静态库源码编译MySQL时需调用其接口源码编译必备归档包安装可选ncurses-compat-libs提供ncurses 5.x兼容库如libncurses.so.5解决CentOS 7 ncurses 6.x与MySQL 5.7/8.0早期版本8.0.30-的兼容冲突CentOS 7部署低版本MySQL必备libaio提供异步I/OAIO运行时库文件如libaio.so.1是InnoDB引擎异步读写的核心运行依赖必备MySQL初始化/启动核心依赖libaio-devel提供异步I/OAIO开发接口头文件/静态库编译MySQL时需调用AIO相关接口源码编译必备归档包安装可选但建议安装避免依赖缺失openssl提供SSL/TLS加密能力支持MySQL数据传输加密、用户密码加密必备开启MySQL SSL功能依赖openssl-developenssl的开发库源码编译MySQL时需编译SSL相关模块源码编译必备归档包安装可选这里使用归档包部署MySQL这几个依赖包解决的主要问题ncurses/ncurses-compat-libs解决终端交互与版本兼容问题避免启动时报“libncurses.so.5缺失”libaio-devel解决InnoDB引擎异步I/O报错确保mysqld正常启动openssl确保MySQL SSL功能可正常启用如远程连接加密。2.2 数据目录初始化下载、解压mysql软件包直接下载或者上传压缩安装包在指定路径解压安装包并做拷贝解压内容到/usr/local路径下。[rootmysql ~]# cd /opt[rootmysql opt]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.36-linux-glibc2.17-x86_64.tar.xz# 这里建议直接选择已经下载好的安装包进行上传安装稳定[rootmysql opt]# tar xf mysql-8.0.36-linux-glibc2.17-x86_64.tar.xz[rootmysql opt]# mv /opt/mysql-8.0.36-linux-glibc2.17-x86_64 /usr/local/mysql[rootmysql opt]# ls -l /usr/local/mysql配置PATH环境变量# 配置PATH环境变量[rootmysql opt]# echo export PATH/usr/local/mysql/bin:$PATH /etc/profile# 加载生效[rootmysql opt]# . /etc/profile# 检查环境变量是否生效[rootmysql opt]# echo $PATH/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin创建数据目录文件授权之间将软件包解压并拷贝到/usr/local路径下那里是MySQL的程序安装数据还需要创建MySQL的数据目录并授权这两个目录是MySQL的核心目录。# 创建MySQL数据目录[rootmysql opt]# mkdir -p /data/3306/data# 创建管理用户mysql,[rootmysql ~]# useradd mysql -s /sbin/nologin -M[rootmysql ~]# id mysql# 授权目录文件[rootmysql opt]# chown -R mysql.mysql /data[rootmysql opt]# ls -ld /data编写数据库服务配置文件配置文件通常为/etc/my.cnf是管控数据库服务运行参数、性能、安全的核心文件合理编写可保障 MySQL 稳定运行、适配业务场景需求。MySQL支持/etc/my.cnf主配置、/etc/my.cnf.d/*.cnf子配置这种配置文件方式而且也是生产环境的推荐做法符合 Linux 系统的配置规范便于统一管理子配置覆盖主配置同名参数。这里暂时先只使用主配置文件。[rootmysql opt]# vim /etc/my.cnf # 创建主配置文件[rootmysql opt]# mkdir -p /etc/my.cnf.d/ # 创建子配置文件路径配置文件内容结构按 “模块” 划分核心模块为[mysqld]服务端核心参数其他常用模块如[mysql]客户端参数、[mysqld_safe]安全启动参数等标识现阶段可以先简单配置一下后续再进行补充优化# 增加简易配置文件后面在优化[rootmysql opt]# cat/etc/my.cnfEOF[mysqld]usermysqlbasedir/usr/local/mysqldatadir/data/3306/dataport3306socket/tmp/mysql.sock[mysql]socket/tmp/mysql.sock EOF# 验证配置文件内容[rootmysql opt]# cat /etc/my.cnf[mysqld]usermysqlbasedir/usr/local/mysqldatadir/data/3306/dataport3306socket/tmp/mysql.sock[mysql]socket/tmp/mysql.sock# 配置文件授权[rootmysql opt]# chown mysql.mysql /etc/my.cnf # 必选[rootmysql opt]# chown -R mysql.mysql /etc/my.cnf.d/ # 可以等用到的时候再操作建议一起授权2.3 初始化数据库初始化数据库是归档包部署 MySQL 的必备步骤用于完成 MySQL 实例的首次初始化创建系统库、初始化权限表、生成基础配置数据库初始化命令应用解读# 初始化MySQL数据库[rootmysql opt]# mysqld --initialize-insecure --usermysql --basedir/usr/local/mysql --datadir/data/3306/data参数核心含义与作用必要性mysqldMySQL服务端核心可执行程序归档包路径/usr/local/mysql/bin/mysqld负责执行初始化逻辑必选--initialize-insecure以“无安全初始化”模式创建实例1. 不生成临时root密码区别于--initialize2. 创建rootlocalhost用户且密码为空3. 适合内网/测试环境简化首次登录流程必选或替换为--initialize--usermysql指定初始化过程中创建的所有文件/目录的属主为mysql用户避免权限归属错误导致启动失败必选--basedir/usr/local/mysql指定MySQL的安装根目录归档包解压路径初始化时从该目录加载核心库、配置模板等必选--datadir/data/3306/data指定MySQL数据文件的存储目录自定义路径需提前创建初始化生成的系统库、日志文件等均存于此必选初始化数据库的实质就是创建基础的数据库系统的库文件等信息查看初始化的mysql库表等文件。# 验证初始化结果[rootmysql opt]# ls /data/3306/data/ -ltotal79292-rw-r-----1mysql mysql56Jun2717:42 auto.cnf-rw-------1mysql mysql1705Jun2717:42 ca-key.pem-rw-r--r--1mysql mysql1112Jun2717:42 ca.pem-rw-r--r--1mysql mysql1112Jun2717:42 client-cert.pem-rw-------1mysql mysql1705Jun2717:42 client-key.pem-rw-r-----1mysql mysql196608Jun2717:42#ib_16384_0.dblwr-rw-r-----1mysql mysql8585216Jun2717:42#ib_16384_1.dblwr-rw-r-----1mysql mysql6209Jun2717:42 ib_buffer_pool-rw-r-----1mysql mysql12582912Jun2717:42 ibdata1drwxr-x---2mysql mysql4096Jun2717:42#innodb_redodrwxr-x---2mysql mysql6Jun2717:42#innodb_tempdrwxr-x---2mysql mysql143Jun2717:42 mysql-rw-r-----1mysql mysql26214400Jun2717:42 mysql.ibddrwxr-x---2mysql mysql8192Jun2717:42 performance_schema-rw-------1mysql mysql1705Jun2717:42 private_key.pem-rw-r--r--1mysql mysql452Jun2717:42 public_key.pem-rw-r--r--1mysql mysql1112Jun2717:42 server-cert.pem-rw-------1mysql mysql1709Jun2717:42 server-key.pemdrwxr-x---2mysql mysql28Jun2717:42 sys-rw-r-----1mysql mysql16777216Jun2717:42 undo_001-rw-r-----1mysql mysql16777216Jun2717:42 undo_002初始化的相关知识不同版本的初始化命令异同#5.7之前初始化/usr/local/mysql/scripts/mysql_install_db#5.7和8.0初始化/usr/local/mysql/bin/mysqld--initialize和--initialize-insecure区别选项root密码处理安全级别适用场景--initialize-insecure无密码rootlocalhost空密码低内网测试、自动化部署--initialize生成随机临时密码存错误日志高生产环境需改密码后登录虽然说是生产环境建议用--initialize初始化后从错误日志datadir下的.err文件提取临时密码greptemporary password/data/3306/data/*.err但是我个人还是建议采用--initialize-insecure选项进行无密码初始化生产环境上各项配置完成后交付前创建密码即可省去很多麻烦。2.4 启动数据库服务归档包安装 MySQL 后可通过脚本、原生命令、系统服务管理器等多种方式启动服务优先推荐systemctl 原生服务启动这是 CentOS 7 系统的标准化启动方式通过编写systemd service文件实现对 MySQL 服务的全生命周期管理稳定性和可运维性最优个人优先推荐自定义service文件的方式。# 1. 创建并编辑 systemd 服务文件vim/usr/lib/systemd/system/mysqld.service写入以下配置适配归档包安装路径[Unit]DescriptionMySQL ServerDocumentationman:mysqld(8)Documentationhttp://dev.mysql.com/doc/refman/en/using-systemd.htmlAfternetwork.target syslog.target local-fs.target[Install]WantedBymulti-user.target[Service]UsermysqlGroupmysqlExecStart/usr/local/mysql/bin/mysqld --defaults-file/etc/my.cnf--usermysqlLimitNOFILE5000TypenotifyRestarton-failureRestartSec5sExecStop/usr/local/mysql/bin/mysqladmin --defaults-file/etc/my.cnfshutdownTimeoutStartSec60# 2. 重载 systemd 配置新增/修改服务文件后必执行systemctl daemon-reload# 3. 启动 MySQL 服务systemctl start mysqld# 4. 设置开机自启生产环境建议开启systemctlenablemysqld# 5. 查看服务运行状态systemctl status mysqld备选方案基于 init.d 脚本启动归档包内置了标准化的启动脚本/usr/local/mysql/support-files/mysql.server可移植到系统init.d目录实现服务管理也可通过systemctl关联该脚本启动虽操作更简便但属于兼容/过渡方案存在功能局限性。基础操作直接调用 init.d 脚本# 1. 复制官方脚本到系统 init.d 目录cp/usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld# 2. 赋予执行权限避免启动权限不足chmodx /etc/init.d/mysqld# 3. 启动服务/etc/init.d/mysqld start# 常用运维操作/etc/init.d/mysqld stop# 停止服务/etc/init.d/mysqld restart# 重启服务/etc/init.d/mysqld status# 查看服务状态兼容 systemctl 调用过渡方案# 复制脚本后直接通过 systemctl 管理cp/usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld systemctl start mysqld# 启动systemctlenablemysqld# 开机自启调试场景直接执行 mysqld 命令启动通过原生mysqld命令启动属于最底层的方式可直接指定核心运行参数启动速度快但无进程守护、无运维管理能力仅适用于参数调试、启动故障排查等临时场景。# 后台启动指定安装目录、数据目录等核心参数需与配置文件一致/usr/local/mysql/bin/mysqld\--basedir/usr/local/mysql\--datadir/data/3306/data\--usermysql\--socket/tmp/mysql.sock手动运维mysqld_safe 启动mysqld_safe是对mysqld命令的封装自带进程监控能力进程崩溃后自动重启可读取my.cnf配置文件无需手动指定所有参数且错误输出和日志更友好比直接执行mysqld更适合手动启动场景。# 后台启动指定配置文件和运行用户推荐方式/usr/local/mysql/bin/mysqld_safe\--defaults-file/etc/my.cnf\--usermysql2.5 验证是否启动成功验证是否启动成功最直接的方法就是登录验证。[rootmysql ~]# mysqlWelcome to the MySQL monitor. Commands end with;or\g. Your MySQL connectionidis8Server version:8.0.36 MySQL Community Server - GPL 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. Typehelp;or\hforhelp. Type\ctoclearthe current input statement. mysql因为初始化的时候选择了管理员密码为空的配置项所以这里没有密码也可以登录数据库。但是一般不会将root密码置空。所以可能需要重置设置一个密码。ALTERUSERrootlocalhostIDENTIFIEDBYnew_password ;除此之外还可以通过服务进程、服务状态、端口监听等方式初步判断 MySQL 的启动情况但这类检查无法完全规避 “假运行” 问题 —— 例如进程存在但核心服务未初始化完成、端口监听但连接被拒绝等。相比之下实际连接测试能直接触达服务核心是验证其是否真正启动成功、且具备正常服务能力的最直观依据。# 检查 systemd 服务状态[rootmysql ~]# systemctl status mysqld# 检查 MySQL 进程是否运行过滤出核心mysqld进程排除grep本身ps-ef|grepmysqld|grep-vgrep# 检查 3306 端口是否监听ss-tnlp|grep33062.6 配置远程首先要确保网络环境的通畅和端口号的开放然后检查防火墙是否开放指定业务端口。CentOS 7开放端口号可以参考### 查看所有开放的端口号firewall-cmd --list-all### 设置开放的端口号firewall-cmd --add-servicehttp--permanentfirewall-cmd --add-port3306/tcp--permanent### 重启防火墙firewall-cmd--reloadMySQL内的设置调整修改用户连接地址usemysql;# 切换数据库## 查看user表中host字段和user字段mysqlselecthost,userfromuser;-----------------------------|host|user|-----------------------------|localhost|mysql.infoschema||localhost|mysql.session||localhost|mysql.sys||localhost|root|-----------------------------4rowsinset(0.00sec)可以看到 root 用户当前的主机配置信息为localhost即只允许本机连接登录想要远程登录就要在这里进行修改或直接添加用户权限规则例如设置 root 远程登录对10.0.0.0 网段开放。# 在原基础上修改问题是本地可能无法登录UPDATEUSERSEThost10.0.0.%WHEREuserroot;# 推荐创建新的用户权限规则GRANTALLPRIVILEGESON*.*TOroot10.0.0.%IDENTIFIEDBYyour_passwordWITHGRANTOPTION;这里的用户权限规则方式设置的权限是最高权限仅对root用户开放。不建议给其他用户直接套用。刷新操作使更改生效mysqlflushprivileges;Query OK,0rowsaffected(0.00sec)3. 安装使用常见问题和处理3.1 常见问题问题1初始化报错libaio[rootlocalhost opt]# mysqld --initialize-insecure --usermysql --basedir/usr/local/mysql --datadir/data/3306/datamysqld: errorwhileloading shared libraries: libaio.so.1: cannotopenshared object file: No suchfileor directory# 原因缺少libaio-devel依赖包# 解决yum install libaio-devel -y# 如果不知道包名,可以执行 yum provides libaio -y 查找问题2: 初始化报错数据文件目录不为空2021-11-09T04:08:57.631792Z0[ERROR][MY-010457][Server]--initializespecified but the data directory has filesinit. Aborting.2021-10-09T04:08:57.631803Z0[ERROR][MY-013236][Server]The designated data directory /data/3306/data/ is unusable. You can remove all files that the server added to it.# 解决rm -rf /data/3306/data/* 手动清空问题3启动后初始无法登录[rootlocalhost ~]# mysqlERROR1045(28000): Access deniedforuserrootlocalhost(using password: NO)# 原因此问题一般都是数据库初始化问题或者数据库文件损坏以及目录权限问题。# 解决办法删除初始化目录然后重新初始化数据库剩余过程不变。rm-rf/data/3306/data/* mysqld --initialize-insecure--usermysql--basedir/usr/local/mysql--datadir/data/3306/data3.2 启动失败排错过程步骤一系统环境与基础资源排查先排除外部干扰安全策略方面主要是防火墙和selinux策略防护防护墙主要是影响远程连接问题如果是启动失败的话优先检查SELinux状态这最常见的权限干扰源。getenforce# 输出Enforcing开启Permissive宽松Disabled关闭# 临时关闭测试是否是SELinux导致setenforce 0# 永久关闭编辑/etc/selinux/config设置SELINUXdisabled需重启检查端口/进程冲突看看是否之前安装了其他MySQL/MariaDB服务占用了服务端口3306ss-tnlp|grep3306# 查看3306端口占用进程ps-ef|grep-Emysqld|mariadb|grep-vgrep# 查看数据库相关进程# 若有冲突杀死进程pkill -9 mysqld 或 pkill -9 mariadb还有检查数据目录权限MySQL运行用户需读写权限ls-ld/data/3306/data# 查看目录权限需为mysql:mysqlls-l/data/3306/data/ibdata1# 检查核心文件权限对应日志中ibdata1不可写# 修复权限chown -R mysql:mysql /data/3306/data; chmod 700 /data/3306/data步骤二分析错误日志排除系统环境外部干扰的前提下通过查找分析错误日志来排查问题出在哪里。常见错误日志场景及解决方案日志错误信息核心原因解决方案The innodb_system data file ibdata1 must be writableibdata1文件权限/SELINUX限制或磁盘只读1. 修复权限chown mysql:mysql /data/3306/data/ibdata12. 关闭SELinuxsetenforce 03. 检查磁盘是否只读mountThe server quit without updating PID file (/data/3306/data/master.pid)1. 数据目录权限错误2. 磁盘满3. 配置文件PID路径错误4. 之前进程未彻底关闭1. 检查PID文件路径权限mkdir -p $(dirname /data/3306/data/master.pid) chown mysql:mysql $(dirname /data/3306/data/master.pid)2. 删除残留PID文件rm -f /data/3306/data/master.pid3. 检查磁盘空间df -h /dataCant open shared libraryMySQL依赖库缺失/损坏重新安装MySQL依赖yum install -y libaio-devel numactlInnoDB: Database page corruptionInnoDB数据文件损坏1. 测试环境删除数据文件重新初始化rm -rf /data/3306/data/* mysqld --initialize-insecure --usermysql2. 生产环境通过备份恢复或使用innodb_force_recovery临时启动风险高步骤三日志没有有效信息如果错误日志文件为空、无法生成或没有关键错误信息则聚焦「配置文件启动命令」的排查确认配置文件有效性# 验证配置文件语法核心语法错误会导致启动失败且无日志mysqld --defaults-file/etc/my.cnf --validate-config# 验证指定配置文件# 若报错根据提示修复如括号缺失、参数拼写错误、路径不存在# 1.3 检查配置文件核心参数避免参数错误导致启动失败grep-Edatadir|socket|port|user/etc/my.cnf# 关键参数校验标准# - datadir路径存在且权限为mysql:mysql# - socket路径所在目录可写避免/tmp权限问题# - user必须为mysql避免用root启动手动指定配置文件启动# 手动启动MySQL并输出控制台日志替代日志文件直接看启动报错mysqld --defaults-file/etc/my.cnf--usermysql--console# 控制台会输出启动过程中的所有错误如参数错误、文件缺失、权限问题若复杂配置排查困难创建极简配置文件测试启动# 创建临时最小配置文件cat/tmp/my-mini.cnfEOF [mysqld] usermysql datadir/data/3306/data socket/tmp/mysql.sock port3306 log-error/tmp/mysql-error.log EOF# 用最小配置启动mysqld --defaults-file/tmp/my-mini.cnf--usermysql# 若启动成功说明原配置文件存在错误逐步对比排查总结排错核心原则先外后内先排除SELinux、防火墙、端口冲突等外部环境问题再排查MySQL自身日志优先90%的启动失败可通过错误日志定位根因无日志时用「控制台启动最小配置」兜底权限为王MySQL启动失败80%与权限相关数据目录/日志文件/PID文件的mysql用户读写权限。
RELATED

相关推荐

微信AI隐私边界剖析:从权限模型到最小权限原则的工程实践

微信AI隐私边界剖析:从权限模型到最小权限原则的工程实践

微信AI隐私这次上热搜,员工回应里那句“能接触信息不超过本人可查看权限”,我反复看了好几遍。作为一个常年跟权限系统打交道的开发者,这句话在我眼里不是一句公关辞令,而是一个可以拆出完整技术方案的边界声明:AI接触…

📅 2026/10/17 1:38:54
Python Web攻击检测系统:基于字节熵与多模型联动的真实流量实战

Python Web攻击检测系统:基于字节熵与多模型联动的真实流量实战

简介:本资源是一套基于Python与机器学习的Web攻击检测系统完整源码实现,面向网络安全初学者、渗透测试人员及AI安全方向开发者,旨在解决SQL注入、XSS等常见Web攻击的自动化识别与防御问题。压缩包共66个文件,涵盖17个核心Python脚…

📅 2026/10/17 1:38:54
令牌环IEEE 802.5深度解析:从确定性介质访问控制到工程启示

令牌环IEEE 802.5深度解析:从确定性介质访问控制到工程启示

看到“令牌环网IEEE 802.5”这个题目,估计不少人第一反应是:这不是早就被以太网淘汰的技术吗,教材为什么还要花一整节讲它,考试还要考?我当年第一遍学计算机网络时也是这个心态,觉得知道个“环形拓扑令牌传…

📅 2026/10/17 1:38:54
MORE NEWS

更多资讯

📰

32 层混合注意力架构拆解:Qwen3.5-9B_gpuep_1.0_gpu_128 如何用线性注意力撑起 256K 上下文

【免费下载链接】Qwen3.5-9B_gpuep_1.0_gpu_128 项目地址: https://ai.gitcode.com/hf_mirrors/amd/Qwen3.5-9B_gpuep_1.0_gpu_128 点击查看 免费下载 Qwen3.5-9B_gpuep_1.0_gpu_128 是 AMD 面向本地设备优化的 Qwen3.5-9B ONNX 导出版本,它采用「32 层…

📰

千元“双拆除”锐龙R7迷你主机:0.68L小钢炮能玩黑神话?

最近我在二手平台刷迷你主机的时候,注意到一个很有意思的现象:一大批标价千元出头、写着"全新仅拆封"的准系统迷你主机密集出现,体积只有0.68升,CPU清一色挂着锐龙R7的名头,商家还专门在标题里强调"DDR…

📰

Creo二次开发:球标函数实现原理与工程实践

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

📰

SpringBoot配置文件加密实战:Jasypt整合与生产落地指南

1. 为什么要给SpringBoot配置文件做加密先讲一个实际场景。有一次我在给某金融项目做代码安全评审,打开配置文件一看,数据库连接串、Redis密码、第三方支付密钥,全部明文躺在application.yml里。当时我就问负责这个模块的同事,我说…

📰

电动长途自驾与露营指南:充电规划、反向放电与自由出行

把油箱换成电池之后,我一度觉得自由变少了。充电桩在哪、续航还剩多少、冬天打折多狠……每一项都像新的牵绊。可真正开着电动车跑了大半年的长途和露营之后,我的结论彻底反过来:电动化其实把我从“油量表焦虑”里解放了出来,换来…

📰

深度学习激活函数速查:Sigmoid、ReLU、Tanh、Softmax公式与实现

提到神经网络,就很难绕开激活函数。我最早接触深度学习时,干的第一件事就是把常见的几个激活函数的公式、导数、代码和图像全部过了一遍。今天这篇内容就是当时整理的强化版:Sigmoid、Tanh、ReLU、Leaky ReLU、ELU、Softmax,每个都…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬