新闻详情

新闻详情

首页 / 资讯中心 / 详情

Ubuntu安装MySQL完整指南:从版本选型到问题排查

发布时间:2026/9/26 6:03:01来源:尧图网络
Ubuntu安装MySQL完整指南:从版本选型到问题排查
最近又有朋友在群里问Ubuntu上面怎么装MySQL装到一半卡住了怎么处理还有人说装完之后密码不对进不去。这些场景我太熟悉了从最早在大学用VMware开Ubuntu虚拟机折腾到后来在公司负责Linux服务器的数据库部署再到现在自己搭开发环境Ubuntu环境下安装MySQL这个组合前前后后至少操作过几十次。说容易也容易apt一条命令就能把服务跑起来说麻烦也麻烦版本选型、安全初始化、字符集、远程权限、参数调优每个环节都有讲究。这篇文章我把整套流程和踩过的坑整理出来从环境准备、安装方式选型到安全配置和问题排查尽量写得可以直接照着做。适合刚入手Linux的新人也适合在服务器上部署数据库时想少走弯路的运维和开发朋友。1. 为什么是Ubuntu MySQL装之前先分清场景和版本1.1 版本选型系统自带的MySQL和官方源里的MySQL是两码事Ubuntu的软件仓库里一直有mysql-server包但它不一定是你想要的最新版。拿Ubuntu 20.04来说自带源里的MySQL通常停留在8.0.19左右安全补丁和bugfix都是滞后的到了22.04和24.04自带源里的8.0版本会稍微新一些但同样不是官方源里从头维护的那种。假如你只是本地临时起个服务系统自带版够用但如果你要跑业务、要长期维护我更建议直接用MySQL官方提供的APT仓库。这里有个细节值得说清楚Ubuntu源里那个mysql-server实际上也来自MySQL官方只是发行版在打包发布时会把版本号固定下来后续不会再主动跟着官方版本走。MySQL官方源则不同它会持续推送新的小版本比如从8.0.33升到8.0.34这类维护一旦中断后面遇到bug就要自己去查补丁了。所以多花两分钟配官方源长期看是划算的。还有一部分朋友会问MariaDB行不行。作为一个从MySQL移植过来的分支产品MariaDB在绝大多数场景下确实能无缝替换很多云厂商的MySQL兼容服务底层其实就是MariaDB或者Percona。但如果你依赖的是MySQL 8.0的某些新特性比如窗口函数、CTE公共表表达式、caching_sha2_password认证插件或者你要用Navicat、MySQL Workbench这类工具直接连那就老老实实装MySQL。MariaDB的默认认证插件和8.0不一样某些客户端连接时会碰到旧客户端不支持新认证协议的问题。1.2 四种安装方式apt、tar包、源码编译与容器化安装方式优点缺点适合场景apt安装最快、依赖自动处理、systemd服务自动配置好版本受仓库控制绝大多数开发/生产环境tar.gz二进制包版本任意选、不受系统源管控、可安装到任意目录需要自己初始化数据目录和配置文件需要特定版本或自定义安装路径源码编译可定制编译参数、适配特定CPU/内核优化耗时长、依赖gcc/cmake等工具链、升级麻烦嵌入式平台或极致优化需求Docker容器环境隔离、秒级启动、方便迁移有一定性能损耗、需要额外学习容器操作测试开发环境、微服务架构我见过不少新手一上来就找源码编译安装MySQL 8.0因为网上有教程觉得自己编译才厉害。但说句实在话绝大多数场景下根本不需要这么做。源码编译要装gcc、make、cmake、ncurses等一堆工具链在Ubuntu上如果build-essential没装好光是安装gcc失败这个报错就能卡半天后面第5章我会细说。编译一次花费几十分钟属于常态而且编译出来的版本后续升级还是得走编译流程。如果你的需求只是跑一个数据库服务apt是最稳的如果你确实有特殊版本需求请用官方编译好的二进制包别自己从源代码折腾。容器的路线也说一下。如果你的环境是Kubernetes这类容器平台或者想要一个用完就扔的本地测试库直接用Docker跑官方mysql:8镜像会非常省事docker run --name mysql-test -e MYSQL_ROOT_PASSWORDyour_password -d mysql:8不用手工初始化不用管systemd数据目录挂出来就行。不过容器方式对网络和磁盘I/O有额外开销生产环境的数据库我更倾向裸机或虚拟机上的apt安装这块见仁见智吧。1.3 环境定位开发机、测试机和生产机的安装思路完全不同同样是搭MySQL在不同环境下的姿势差很远。在开发笔记本或虚拟机上你怎么折腾都行装错版本卸载重来也快甚至可以开多个容器伺候不同项目的数据库。但到了生产服务器上原则就变成少操作、少变更、每一步都要有回滚预案。比如apt upgrade这种命令在开发机上没什么风险但生产机上如果因为升级内核或库文件导致服务起不来那就麻烦了。还有一点是关于虚拟机和双系统的。很多人学Linux是先装一个VMware或VirtualBox然后在虚拟机里跑Ubuntu镜像。这种环境装MySQL跟在物理机上没有本质区别apt逻辑完全一样。如果你用的是Windows的WSL2把Ubuntu作为发行版跑起来装MySQL的步骤也基本适用只是WSL2的场景下systemd可能没有默认启用需要用service mysql status来管理服务这点在5.1小节会再提到。2. 动手前的环境准备先把系统基础打牢2.1 更新系统与安装基础工具安装MySQL之前先把系统更新一遍避免软件源里的包索引太旧导致安装报404或版本冲突。按顺序执行sudo apt update sudo apt upgrade -y第一条update是刷新软件包索引第二条upgrade是把已安装的软件升到源里的最新版。这里要说明一下upgrade要不要执行取决于环境。我自己的习惯是本地虚拟机直接升生产服务器先看变更记录确认没有特别针对内核或重要库的升级再决定毕竟生产环境稳定第一。另外升级完如果涉及内核更新一般建议重启一次再继续装MySQL否则旧内核还在占用某些资源数据库起来之后表现可能不太对。接下来装基础依赖sudo apt install -y wget curl gnupg lsb-releasewget和curl后面要做下载gnupg用于导入MySQL官方源的GPG签名这个步骤很重要如果跳过apt在更新源的时候就会因为签名校验失败拒绝安装lsb-release则用来识别当前Ubuntu的发行版代号方便配置源路径。2.2 确认系统版本与架构装之前先确认两件事系统是什么版本、CPU是什么架构。命令很简单lsb_release -a uname -mlsb_release -a会输出类似Release: 22.04和Codename: jammy这样的信息这个Codename是配置软件源时的关键参数。uname -m如果是x86_64说明是64位x86架构如果是aarch64说明是ARM64像RK3588这类开发板移植Ubuntu时会遇到这种情况。MySQL官方源和二进制包对这两种架构都支持但你必须选对对应的版本否则安装后启动时会报wrong ELF class或者直接段错误。还有一个我在实际中踩过的坑很多人从网上搜索到Ubuntu 26镜像之类的新版本或者别人发的教程基于某个特定版本结果自己的Ubuntu版本比教程老很多照着敲命令却发现apt源里根本没有那个包。所以新老版本之间差了太多的话建议先升级Ubuntu本身或者老老实实按自己当前版本的教程走别硬套版本号。2.3 软件源配置镜像站和官方源别混着乱加刚装完的Ubuntu默认源一般指向archive.ubuntu.com在某些网络环境下下载速度可能不理想。如果你发现apt update很慢或者下载MySQL时一直卡住可以把源改成镜像站比如阿里云或者清华的Ubuntu源镜像。以阿里云为例把/etc/apt/sources.list里的archive.ubuntu.com替换成mirrors.aliyun.com即可。注意不同Ubuntu版本的源格式不一样22.04及之后用的是deb822格式/etc/apt/sources.list.d/ubuntu.sources老版本还是传统的sources.list别把两种混了。这里我要专门提醒一句不要在一个系统里同时添加多个互相冲突的第三方源。比如你既加了MySQL官方源又加了Percona源还装过某些带mariadb的PPAapt在解析依赖时会直接陷入混乱结果可能是一场依赖关系损坏的持久战。处理这类问题的办法我在5.3会讲但在动手之前保持源列表干净比什么都重要。3. 官方推荐apt源安装MySQL 8.0完整流程3.1 为什么把官方APT仓库作为首选方案首选官方源的原因不复杂第一它是数据库发行方自己维护的仓库小版本更新和补丁推送最及时第二它会在配置包安装阶段自动根据你的Ubuntu版本来选择匹配的源路径你不用手动编辑sources.list第三apt会自动帮你处理依赖、创建mysql用户、注册systemd服务几乎不需要手动干预。相对而言Ubuntu系统自带的mysql-server虽然也能用但版本固定、补丁滞后长期维护成本更高。如果你非要问没有官方源直接用apt install mysql-server行不行答案是行尤其是在Ubuntu 22.04/24.04上自带的MySQL 8.0版本也不算太落后。但对于追求稳定和更新的生产环境我还是会优先选择官方源。区别就像一个是发行版替你把包冻结了一个是数据库团队持续在修bug你是要一个固定版本还是一个持续更新的版本这取决于项目周期。3.2 添加MySQL官方APT仓库添加官方源的官方推荐方式是通过一个deb配置包。这里以较新的配置包版本为例实际操作时建议去MySQL官网的APT Repository页面看最新的版本号cd /tmp curl -fsSL https://repo.mysql.com/mysql-apt-config_0.8.33-1_all.deb -o mysql-apt-config.deb下载完先校验一下签名以防文件在传输过程中被篡改md5sum mysql-apt-config.deb比对完官网给出的MD5值没问题后安装这个仓库配置包sudo dpkg -i mysql-apt-config.debdpkg -i装这个包的时候会弹出一个图形化的配置界面基于debconf运行纯文本界面让你选择要安装的MySQL产品。默认就是MySQL Server 8.0一般直接按Tab切到OK回车即可不用做多余操作。装完之后这个配置包会在/etc/apt/sources.list.d/下生成一个mysql.list文件指向官方源同时把MySQL官方的GPG密钥导入系统。接着更新源sudo apt update如果apt update没有报错说明官方源已经生效。执行apt policy mysql-server可以看到可安装的版本一般会列出类似于8.0.36-1ubuntu22.04这样的版本号说明源已经匹配到了你的系统。3.3 执行安装并确认服务状态仓库配置好了接下来就是真正装服务sudo apt install -y mysql-server这一步会把mysql-server、mysql-client、mysql-common以及一堆依赖包一起装上。安装过程会自动创建mysql系统用户、初始化数据目录、安装systemd服务单元。安装完成后看一下服务状态systemctl status mysql如果显示active (running)说明已经起来了。再确认开机自启systemctl enable mysql在Ubuntu上这个服务的systemd名称是mysql不是mysqld这一点很多人会记混。在CentOS/RHEL上服务名可能叫mysqld但在Ubuntu、Debian系里面你用systemctl start mysqld多半会得到Unit mysqld.service could not be found的提示。验证数据库版本mysql --version输出类似mysql Ver 8.0.36 for Linux on x86_64 (MySQL Community Server - GPL)就说明装好了。3.4 首次进入MySQL理解Ubuntu的root认证机制装完之后你大概率急着去登MySQL然后发现sudo mysql -u root能进但mysql -u root -p输入任何密码都进不去。这不是密码错了而是Ubuntu下MySQL 8.0的root默认用的是auth_socket认证插件它不走密码只认系统里的root用户。也就是说你在Linux下用sudo调用mysql客户端进程的权限就是rootMySQL一看socket来源是本机root就放行了。这种认证方式对本机管理很安全但对远程访问完全不适用。如果你希望root也能用密码登录比如通过配置工具、图形化客户端连需要改认证插件ALTER USER rootlocalhost IDENTIFIED WITH caching_sha2_password BY 你的新密码; FLUSH PRIVILEGES;这里要注意两点MySQL 8.0推荐使用caching_sha2_password作为默认认证插件而不是老的mysql_native_password如果执意要改成mysql_native_password来兼容非常老的客户端8.0里也能改但官方已经将其标记为废弃我不建议新环境这么干。然后我通常还会顺手进去看一眼基础状态SHOW VARIABLES LIKE version; SELECT port, datadir;确认端口默认是3306、数据目录在/var/lib/mysql这套装的就算落地了。4. 安全初始化与基础配置装完不配等于没装4.1 必做操作跑一遍mysql_secure_installation无论什么环境装完MySQL后的第一件事就是执行安全初始化脚本sudo mysql_secure_installation这个脚本是交互式的会依次问你几个问题。我把自己实际的操作选择列一下方便你照着选是否安装密码强度校验组件VALIDATE PASSWORD COMPONENT建议输入y并选择强度级别。如果只是本地测试库选0或1即可生产库建议选2要求密码必须够长够杂。修改root密码在Ubuntu默认auth_socket方案下这个环节可能提示你root已经配置好了不用再改。如果系统自带的老版本MySQL没启用auth_socket它会提示你输入新密码。Remove anonymous users?移除匿名用户选y。匿名用户存在意味着任何本机用户都能以匿名身份连库这属于明显的安全隐患。Disallow root login remotely?禁止root远程登录选y。数据库的管理员账号不应该允许远程直连远程操作建议通过专有账号来做。Remove test database and access to it?删除test库选y。test数据库是安装自带的一个空库不留。Reload privilege tables now?重新加载权限表选y。只要这一步做完这台数据库的安全性就从裸奔变成了及格线。别笑我见过不止一次装了MySQL直接root密码设成123456然后绑定0.0.0.0丢到公网上没过几天库就被加密勒索的。默认设置不是万能的但至少能挡住大部分随手扫码的攻击。4.2 字符集一句话说清utf8和utf8mb4的区别现在新项目我建议一律用utf8mb4。MySQL里的utf8其实是个历史遗留命名它最多存3字节像emoji这类4字节字符直接存不进去会出现报错Incorrect string value: \xF0\x9F...。utf8mb4是完整的4字节字符集覆盖所有Unicode字符这也是MySQL 8.0里默认字符集。配置方式是在my.cnf配置目录下加一个自定义文件不建议直接改系统自带的/etc/mysql/my.cnf主文件因为里面全是include的指向改乱了很难恢复。正确做法是新建一个文件sudo nano /etc/mysql/mysql.conf.d/zz-custom.cnf里面写[mysqld] character-set-server utf8mb4 collation-server utf8mb4_unicode_ci注意文件名用zz开头可以让它排在最后加载避免后面的文件覆盖你的设置mysqld配置是按字典序加载的最后读到的生效。然后重启服务sudo systemctl restart mysql重启后验证SHOW VARIABLES LIKE character_set_server; SHOW VARIABLES LIKE collation_server;如果显示utf8mb4和utf8mb4_unicode_ci就生效了。有些帖子建议在[client]段也写上default-character-setutf8mb4我习惯在客户端连接参数里处理这样更灵活如果你经常直接用命令行客户端加上也不算错。4.3 远程连接绑定地址、用户授权与防火墙默认配置下MySQL只监听127.0.0.1别的主机根本连不过来。要允许特定网段的机器连接先改监听地址。在刚才那个zz-custom.cnf的[mysqld]下加bind-address 0.0.0.0或者只监听某个特定内网IP比如bind-address 192.168.1.10。我强烈建议不要随手写0.0.0.0除非你知道自己在干什么。0.0.0.0意味着所有网卡上的请求都会监听3306端口如果服务器有公网IP风险会成倍上升。然后创建专用账号而不是把root暴露出去CREATE USER app_user192.168.% IDENTIFIED BY 一个足够强的密码; GRANT SELECT, INSERT, UPDATE, DELETE ON app_db.* TO app_user192.168.%; FLUSH PRIVILEGES;这里的主机段192.168.%表示只允许来自192.168网段的客户端登录这是一种比%安全得多的写法。授权时遵循最小权限原则能用SELECT就不给INSERT能仅限某些表就不给全库。如果开了ufw防火墙记得放行sudo ufw allow from 192.168.1.0/24 to any port 3306最后用另一台机器测一下mysql -h 你的服务器IP -P 3306 -u app_user -p能连上就说明远程访问已经通了。这里连续踩坑提醒很多人改了bind-address之后发现还是连不上排查顺序应该是防火墙 → bind-address是否生效 → MySQL用户授权主机段是否正确 → 客户端是否用的对的端口。别一上来就卸载重装。4.4 性能参数先用基础项别急着照抄大神配置我遇到过不少朋友装完MySQL第一件事就是把网上的高并发优化配置整段复制进my.cnf结果服务器512MB内存跑着一个2GB的buffer pool直接OOM崩溃。参数调优一定要基于自己的机器来。常用的几个基础参数如下参数建议解释innodb_buffer_pool_size物理内存的50%~70%最大不要超过80%InnoDB的缓冲池决定热数据缓存量max_connections起步100~200压测后再加并发连接数上限过高会增大内存消耗long_query_time2秒慢查询阈值配合慢日志定位性能问题slow_query_logON开启慢查询日志生产环境必须开配置写在zz-custom.cnf里[mysqld] innodb_buffer_pool_size 1G max_connections 300 slow_query_log 1 long_query_time 2然后重启并验证SHOW VARIABLES LIKE innodb_buffer_pool_size; SHOW VARIABLES LIKE max_connections;看到参数变成新值就生效了。性能调优是个长期迭代的过程第一步先用一个保守的配置跑起来配合监控看CPU、内存、磁盘I/O再逐步调整。数据库这行的老话是稳定压倒一切单点性能再好看挂了都是白搭。5. 安装与启动过程中的高频报错问题排查实录5.1 ERROR 2002 (HY000)连不上本地socket的多种可能这个错误在网上几乎是最常见的MySQL问题。报错信息一般长这样ERROR 2002 (HY000): Cant connect to local MySQL server through socket /tmp/mysql.sock (2)第一次遇到的人多半会懵其实原因就那么几种按出现频率排一下第一MySQL服务根本没起来。你先执行systemctl status mysql看一眼。如果是inactive或者failed就systemctl start mysqlstart之后再看状态。服务都没跑socket文件自然不存在报这个错太正常了。第二socket路径对不上。Ubuntu下MySQL服务端的socket默认一般放在/var/run/mysqld/mysqld.sock而客户端默认可能去/tmp/mysql.sock找。用sudo mysql也进不去时可以试试mysql --socket/var/run/mysqld/mysqld.sock -u root -p或者直接用TCP方式连接本机mysql -h 127.0.0.1 -P 3306 -u root -p第三种情况更隐蔽/var/run/mysqld这个目录的属主或权限不对mysqld进程启动时无法在里面创建socket文件。这个目录本身是tmpfs重启后会清空正常应该由mysql用户拥有。修复sudo mkdir -p /var/run/mysqld sudo chown mysql:mysql /var/run/mysqld sudo systemctl restart mysql在WSL2环境下还会遇到一个特例因为WSL2默认不完整支持systemd你可能发现systemctl status报System has not been booted with systemd。这种情况改用service命令来管理sudo service mysql status sudo service mysql start除了上述还有一个容易忽略的点是错误消息后面带的数字。比如(111)表示Connection refused多半是bind-address没配好或者端口被占用(2)才是文件不存在。看到报错先别急着重启看后面的数字能省不少时间。5.2 忘记root密码跳过授权表恢复法忘记root密码这事每个做数据库的人基本都碰到过。恢复思路是让mysqld以跳过权限验证的方式启动然后重置密码。老版本的经典做法是用mysqld_safesudo mysqld_safe --skip-grant-tables 但在MySQL 8.0和最新版Ubuntu上系统服务管理方式变了直接用mysqld_safe可能报错。更稳妥的流程是先停止服务sudo systemctl stop mysql以跳过授权表的模式手动启动mysqldsudo mysqld --skip-grant-tables --skip-networking 这里加--skip-networking是为了在重置密码期间禁止远程连接避免有人趁虚而入。等几秒让进程起来然后另开一个终端sudo mysql -u root进入后关键是先执行FLUSH PRIVILEGES;否则后面ALTER USER会因为没有权限加载而报错。然后重置密码FLUSH PRIVILEGES; ALTER USER rootlocalhost IDENTIFIED BY 新密码;在MySQL 8.0里老的SET PASSWORD PASSWORD(newpass)写法已经没用了PASSWORD()函数被移除了直接ALTER USER才是正路。退出后把之前手动起的mysqld进程停掉再正常启动sudo pkill mysqld sudo systemctl start mysql整个流程核心就一句话临时绕过权限验证只是手段重置完密码一定要切回正常启动模式并且建议立刻跑一遍mysql_secure_installation检查各项安全项。5.3 apt依赖报错、安装gcc失败这类编译坑如果是用apt安装常见的依赖报错形式有mysql-server : Depends: mysql-server-8.0 but it is not going to be installed。多数时候修复命令是sudo apt --fix-broken install如果上次某个dpkg操作中途中断了还可能出现dpkg was interrupted, you must manually run sudo dpkg --configure -a的提示sudo dpkg --configure -a跑完再继续安装。至于ubuntu安装gcc失败我猜很多人是看了源码编译教程后去装gcc、build-essential时碰到的。如果你真的走编译路线需要sudo apt install -y build-essential cmake libncurses5-dev libssl-dev pkg-config其中build-essential会带上一整套gcc、g、make等工具链。安装失败基本逃不出三种原因一是apt源有问题update都过不去先修源二是系统里残留的损坏依赖先apt --fix-broken install再装三是磁盘空间不足可以用df -h看这种直接在编译中途报错错误信息往往还很误导。我自己早年第一次源码编译MySQL卡在cmake检查环境那一步折腾了很长时间最后发现是libncurses没装。后来就学乖了除非特殊需求打死不碰源码编译一条apt install多省心。5.4 中文乱码与客户端显示问题装好后如果你从命令行插入中文数据查出来显示乱码先别急着骂数据库多数情况下是连接层的字符集没对齐。数据库层设好了utf8mb4不代表客户端就自动用utf8mb4通信。命令行客户端里可以显式指定mysql --default-character-setutf8mb4 -u root -p连接后执行SHOW VARIABLES LIKE character_set%;核心看一下character_set_client和character_set_results是否一致。在SQL中也可以临时调整SET NAMES utf8mb4;然后测试SELECT 中文测试 AS test;如果显示正常说明环境没问题。编程语言接MySQL时还要注意连接串比如JDBC里除了URL指定useUnicodetruecharacterEncodingutf8驱动版本也得匹配8.0Python的pymysql则是在connect时传charsetutf8mb4别用旧的charsetutf8。另外还有个容易忽略的点如果你通过SSH或其他终端工具连到服务器终端本身用的编码如果不是UTF-8那不管数据库怎么配你看到的内容都是乱码。这种假乱码我遇到太多次了检查顺序是数据库字符集 → 连接参数 → 终端编码别在第一层就折腾半天。5.5 内存不足导致的启动失败与OOM被杀最后说一个跟硬件强相关的问题。Ubuntu服务器内存如果偏小比如只有1GB甚至512MBMySQL的InnoDB默认配置可能会吃满内存然后被系统的OOM Killer杀掉。表面现象是systemctl start mysql后过了几秒服务又没了或者启动瞬间触发一堆Out of memory日志。排查命令sudo dmesg | grep -i oom如果看到mysqld被kill的记录基本可以确定是内存不足。解决方法有两类一是调低MySQL内存占用把innodb_buffer_pool_size调到一个安全值比如256MB甚至128MB同时调低max_connections、table_open_cache等二是给系统增加swap很多云主机的swap默认是0适当加一点会有帮助sudo fallocate -l 2G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile然后在/etc/fstab里加上一行让swap开机自动挂载。不过要说明白swap只是兜底手段性能跟真实内存差了好几个量级。数据库这类应用如果条件允许内存还是给足一点尤其是buffer pool这种拿来缓存热数据的太小了SQL跑得慢是一回事换来换去把磁盘I/O拖垮才是真要命。5.6 老客户端连不上MySQL 8.0的认证问题如果你用Navicat、MySQL Workbench或某些很老的驱动连8.0可能会报Authentication plugin caching_sha2_password cannot be loaded。这首先不是一个bug而是MySQL 8.0把默认认证插件换成了更安全的caching_sha2_password老的客户端不认识新的握手协议而已。解决办法要么升级客户端/驱动到支持caching_sha2_password的版本要么针对个别老客户端做兼容处理把它改回mysql_native_passwordALTER USER app_user% IDENTIFIED WITH mysql_native_password BY 密码;这是权宜之计官方已把mysql_native_password标记为废弃能升级客户端就去升级客户端。还有一个更隐蔽的问题有些客户端默认启用了SSL参数而服务端SSL配置异常导致连接时卡在握手阶段报ssl类错误。这种情况要看服务端SSL配置或者客户端把useSSL参数关掉仅限内网可信环境。这种连不上的问题在排查时容易被忽略多半以为是自己密码或账号写错了实际上根本问题不在那一层。写到这里Ubuntu环境下安装MySQL这条线的核心内容基本都过了一遍。我自己这些年最大的体会是装数据库从来不是跑一条命令的事版本选型、安全初始化、字符集、权限模型、内存参数每一步都决定了它将来能在生产里跑多久。别嫌这些步骤繁琐也别看到网上那种一键安装就觉得万事大吉真正出问题的时候前面多做的每一步都是在帮你少熬一个通宵。最后再分享一个我保持很久的小习惯每装完一台数据库我都会在/etc/mysql/mysql.conf.d/下留一个命名带日期的备份文件比如zz-custom.cnf.bak-20250601下次改配置出问题三秒钟就能回滚到上一版。数据库这东西稳比炫技重要得多。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Jev:零生成的TypeSafe AI中间件与确定性拒绝实践 2026/9/26 7:27:05

Jev:零生成的TypeSafe AI中间件与确定性拒绝实践

1. 这不是AI模型,是HN社区一次精准的“反技术表演”“发布3天登顶HN”——这个标题里藏着一个被绝大多数人忽略的关键矛盾:登顶Hacker News的,根本不是一个能生成文本的AI模型,而是一个刻意拒绝生成任何字的系统。我第一次看到标题…

阅读更多 →
HTML 代码格式化在线工具 2026/9/26 7:26:59

HTML 代码格式化在线工具

一、前言 做前端网页开发、页面源码分析、爬虫开发的时候,经常会拿到经过压缩处理的 HTML 代码。为了减小网页体积,线上页面源码会去除换行、空格与缩进,所有标签挤成一整行。 想要阅读 DOM 结构、排查页面布局 bug、分析别人的页面源码&am…

阅读更多 →
Rufus 制作系统启动U盘:一个窗口搞定 Windows 11 安装盘 2026/9/26 7:26:59

Rufus 制作系统启动U盘:一个窗口搞定 Windows 11 安装盘

Rufus 制作系统启动U盘:一个窗口搞定 Windows 11 安装盘 【免费下载链接】rufus The Reliable USB Formatting Utility 项目地址: https://gitcode.com/GitHub_Trending/ru/rufus Rufus 是一款免费的开源 U 盘格式化工具,单个可执行文件&#xff…

阅读更多 →
多Agent框架AgentScope实战:从编排到RAG as Service的Java落地经验 2026/9/26 7:26:58

多Agent框架AgentScope实战:从编排到RAG as Service的Java落地经验

搞多Agent应用开发快两年,从LangChain一路试到AutoGen、MetaGPT、CrewAI,框架换了七八个,最后真正长期留在生产环境里跑着的,反而是AgentScope。上个月我把一轮AgentScope Java的企业级实战经验整理成文档丢到团队wiki&#xff0c…

阅读更多 →
晋级答辩复盘别再手动听录音了!我用这套AI方案,3小时录音10分钟搞定 2026/9/26 7:26:58

晋级答辩复盘别再手动听录音了!我用这套AI方案,3小时录音10分钟搞定

你有没有经历过这样的场景:一场晋级答辩下来,手心冒汗、脑子空白,评审老师说的那些关键评价、改进建议,当时根本没记住几个。等回到工位上想复盘,只能翻出手机里那长达两三个小时的录音,从头开始听。快进、…

阅读更多 →
isomorphic-git 错误码全指南:从 Error Codes 索引到源码级排查实战 2026/9/26 7:26:58

isomorphic-git 错误码全指南:从 Error Codes 索引到源码级排查实战

开发工具 【免费下载链接】isomorphic-git A pure JavaScript implementation of git for node and browsers! 项目地址: https://gitcode.com/gh_mirrors/is/isomorphic-git 点击查看 免费下载 isomorphic-git 是一套纯 JavaScript 实现的 Git 库,可在…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉