广告位 · 页头(后台-模块管理-新建模块后替换此区域)
首页 > 数据库
MySQL查询时如何区分大小写?

MySQL查询时如何区分大小写?

导读:本期聚焦于沙月恵奈‌创作的《MySQL查询时如何区分大小写?》,敬请观看详情。如果发现MySQL查询时过滤条件里明明是小写字母却匹配不到大写开头的数据,多半是排序规则在起作用。低版本的MySQL在部分字符集下默认采用大小写不敏感的排序规则,导致等值比较时直接忽略字母大小写差异。本文会从字符集与排序规则的关系出发,说明utf8mb4_general_ci、utf8mb4_bin等常见排序规则对查询结果的影响,并演示如何在SQL语句中用BINARY临时转换,或者在建表建列时指定区分大小写的排序规则。还会对比几种方案在索引利用、存储空间和查询性能上的差异,帮助你在实际业务中根据字段用途选择合适的大小写策略。

栏目:MySQL 时间:10-19 MySQL

MySQL怎么导入导出数据库?命令行与工具详解

MySQL怎么导入导出数据库?命令行与工具详解

导读:本期聚焦于Canve创作的《MySQL怎么导入导出数据库?命令行与工具详解》,敬请观看详情。数据库迁移和定时备份是运维工作里绕不开的两件事。无论是把生产库拉到本地排查问题,还是把开发环境的结构同步到测试机,都需要掌握 MySQL 的导入导出方法。很多教程只贴一条 mysqldump 命令,但真实场景里还有字符集、锁表、大表恢复速度、权限不足等问题。本文以命令行工具为主,说明如何用 mysqldump 导出整个数据库、单张表、多个库甚至全实例,再解释如何用 mysql 命令和 source 指令把备份文件恢复到目标实例。同时会介绍 --single-transaction、--default-character-set、--quick 等关键参数,帮助你在不锁表的情况下拿到一致性备份。最后补充 MySQL Workbench、phpMyAdmin 等图形化工具的操作思路,以及常见报错和排查方法。读完以后,你应该能根据实际环境选择合适的导入导出方案。

栏目:MySQL 时间:10-19 MySQL导入导出

如何一步步搭建MySQL集群?主从复制与组复制代码详解

如何一步步搭建MySQL集群?主从复制与组复制代码详解

导读:本期聚焦于美园和花创作的《如何一步步搭建MySQL集群?主从复制与组复制代码详解》,敬请观看详情。单机MySQL在并发写入和数据量上来后,容易出现连接数占满、查询响应缓慢的情况。将多个MySQL节点组成集群,是分摊压力、提高可用性的直接手段。本文选取两条落地方案做代码级演示:一条是基于二进制日志的主从复制,依靠从库承担读请求;另一条是基于Group Replication的组复制集群,节点间通过Paxos协议保持一致,并支持自动选主。文章不只是罗列概念,而是把每一处配置改动、每一条SQL命令和启动参数都列清楚,同时标注server-id冲突、复制账号权限、组复制白名单等容易踩坑的细节。在三台Linux主机上按步骤执行,就能得到一个可验证的MySQL集群环境,并通过模拟主节点宕机来观察故障切换效果。最后补充上线前的性能核对思路,让集群搭建和后续优化衔接起来。

栏目:MySQL 时间:10-19 MySQL集群

MySQL主从密码怎么同步?主从复制账号密码修改配置方法

MySQL主从密码怎么同步?主从复制账号密码修改配置方法

导读:本期聚焦于广州网站建设创作的《MySQL主从密码怎么同步?主从复制账号密码修改配置方法》,敬请观看详情。主库修改业务账号密码后,从库通常会通过binlog自动同步,但复制账号密码变化却不会自动更新。运维常等到从库IO线程报Access denied才发现,CHANGE MASTER TO里保存的还是旧密码。本文从两种密码的同步机制差异讲起,先说明为什么ALTER USER能同步业务密码、却不能同步复制账号密码,再分别给出MySQL 5.7和8.0在从库更新复制密码的完整SQL步骤,包括STOP REPLICA、CHANGE REPLICATION SOURCE TO、START REPLICA以及状态验证。同时介绍如何把连接信息持久化到表中、如何用配置文件配合启动脚本避免重启后仍用旧密码,最后梳理Access denied和caching_sha2_password相关的排查思路。

栏目:MySQL 时间:10-19 MySQL主从密码同步

如果我多次在同一列上添加 UNIQUE 约束,会发生什么情况?

如果我多次在同一列上添加 UNIQUE 约束,会发生什么情况?

导读:本期聚焦于冷风创作的《如果我多次在同一列上添加 UNIQUE 约束,会发生什么情况?》,敬请观看详情。对同一列重复执行 ALTER TABLE 添加 UNIQUE 约束,结果不一定报错,关键看约束名和数据库实现。多数数据库里唯一约束通过唯一索引落地,重复添加等于在同一列上创建多个功能相同的索引,造成磁盘空间浪费和写入性能下降。以 MySQL 为例,执行两次名称不同的 ADD CONSTRAINT 会直接成功,并在 email 列上留下两个唯一索引;PostgreSQL 和 SQL Server 行为类似,但约束名冲突时会报错;Oracle 则可能复用已有索引。真正的问题不是约束能否重复,而是冗余索引对插入、更新、删除操作的影响。文章会从约束与索引的关系、不同数据库行为差异、如何检查清理这几个方面展开,帮助你在迁移脚本和日常维护中避免这处隐性成本。

栏目:MySQL 时间:10-19 UNIQUE约束

MySQL中int(5)的长度到底是多少?

MySQL中int(5)的长度到底是多少?

导读:本期聚焦于马来西亚程序员创作的《MySQL中int(5)的长度到底是多少?》,敬请观看详情。MySQL中int(5)的括号数字是不是代表最多只能存5位整数?如果把这个问题拿去问不同经验的开发者,答案经常不一致。实际上int(5)里的5既不是字节数,也不是存储上限,更不是字符长度,它被称为显示宽度。整型int在MySQL中固定占用4个字节,取值范围始终是负2147483648到2147483647,无符号时是0到4294967295,不会因为括号里的数字而改变。显示宽度只有在同时声明ZEROFILL属性时才会产生可见效果,例如int(5) ZEROFILL存储数字1后查询会显示00001,但如果插入123456,超过5位仍然完整显示,不会被截断。从MySQL 8.0.17开始官方已弃用整数显示宽度,建议新项目直接写int或int unsigned,用约束或应用层控制数据范围。

栏目:MySQL 时间:10-19 MySQL

如何在CentOS 7上快速安装MySQL 8.0并配置官方Yum源与GPG密钥校验?

如何在CentOS 7上快速安装MySQL 8.0并配置官方Yum源与GPG密钥校验?

导读:本期聚焦于缅甸程序员创作的《如何在CentOS 7上快速安装MySQL 8.0并配置官方Yum源与GPG密钥校验?》,敬请观看详情。在CentOS 7上安装MySQL 8.0,最稳妥的方式不是使用系统自带的MariaDB源,而是直接配置MySQL官方Yum仓库。可很多人在下载mysql80-community-release后,执行yum install时被GPG密钥校验拦下,错误提示常常是Public key for mysql-community-server.rpm is not installed或GPG key retrieval failed。这个问题的根源在于RPM包的GPG签名需要系统信任MySQL官方公钥,而手动下载的rpm包不一定自动导入。本文以CentOS 7最小化环境为例,先清理旧版MySQL或MariaDB残留,再通过yum-config-manager或直接编写repo文件启用官方源,同时演示用rpm --import导入GPG公钥的完整步骤。后续安装、启动、查看临时密码、运行安全脚本都在文中给出可执行命令。整个过程约十分钟,适合首次接触MySQL 8.0的运维和新手。

栏目:MySQL 时间:10-19 MySQL 8.0安装

MySQL启动失败怎么办?从启动日志快速定位故障原囅

MySQL启动失败怎么办?从启动日志快速定位故障原囅

导读:本期聚焦于广州SEO公司创作的《MySQL启动失败怎么办?从启动日志快速定位故障原因》,敬请观看详情。MySQL启动失败的原因很多,如果一上来就重装或盲目重启,很容易覆盖掉关键错误现场,甚至让数据目录状态变得更糟。更可靠的办法是先读启动日志,日志中通常会直接给出表空间损坏、端口被占用、权限不足、配置项错误等具体原因。本文分别介绍Linux和Windows下错误日志的默认位置与查找方法,梳理启动失败时的高频报错特征,并给出一套从查看日志、定位错误类型到执行修复的完整排查路径。文章还会说明当日志为空或服务直接闪退时如何通过前台启动捕获实时输出,以及怎样调整日志详细级别和切割策略,帮助你缩短数据库不可用时间。

栏目:MySQL 时间:10-19 MySQL启动失败

MySQL 如何使用 CASE WHEN 实现条件判断?

MySQL 如何使用 CASE WHEN 实现条件判断?

导读:本期聚焦于灯下变量创作的《MySQL 如何使用 CASE WHEN 实现条件判断?》,敬请观看详情。写 SQL 时经常需要根据字段值返回不同结果,比如把状态码转成中文、按分数划分等级、或者统计多条件交叉数据。CASE WHEN 就是 MySQL 提供的条件表达式,它能在一条语句里完成 if else 逻辑,避免多次查询或应用层处理。它有两种写法:简单 CASE 用等值比较,搜索 CASE 用任意条件表达式。使用时要注意 CASE 一旦匹配就不再继续判断,没有匹配且缺少 ELSE 会返回 NULL。本文会从基础语法开始,配合成绩分组、订单更新和排序等例子,说明如何把 CASE WHEN 用在 SELECT、UPDATE 和 ORDER BY 中,也会对比它与 IF 函数的差异,以及在大数据量下的注意事项。

栏目:MySQL 时间:10-19 mysql case when

为什么MySQL还原后数据权限丢失?导出包含mysql系统库和手动授权的影响

为什么MySQL还原后数据权限丢失?导出包含mysql系统库和手动授权的影响

导读:本期聚焦于阳光创作的《为什么MySQL还原后数据权限丢失?导出包含mysql系统库和手动授权的影响》,敬请观看详情。一次普通的MySQL迁移,业务表数据完整恢复后,应用连接却报Access denied,这种情况多数不是备份文件损坏,而是权限没有被正确带到目标实例。mysqldump导出时如果使用--all-databases,会把mysql系统库一并打进备份文件,恢复时旧权限表直接覆盖新库,导致已经授权的账号消失;反过来,如果只备份业务库,而账号授权是通过手动GRANT完成的,这些授权不会出现在业务库导出文件里,目标实例自然就没有对应权限。本文拆解这两种典型场景,说明为什么不能把带mysql库的全量备份直接用于权限恢复,以及如何用mysqldump分离导出、使用pt-show-grants或SHOW GRANTS单独保存授权语句,并给出恢复后的权限核对与重建步骤。

栏目:MySQL 时间:10-19 MySQL备份