数据库运维
-
MYSQL分区
一:概念 MySQL从5.1版本开始支持分区的功能。分区是指根据一定的规则,数据库把一个表分解成多个更小的、更容易管理的部分。就访问数据库的应用而言,逻辑上只有一个表或一个索引,但是实际上这个表可能由数10个物理分区对象组成,每个分区都是一个独立的对象,可以独自处理,可以作为表的一部分进行处理。分区对应用来说是完全透明的,不影响应用的业务逻辑。 二:分区优点…
-
Oracle用户和表被锁定解决方法
1、用dba角色的用户登陆,进行解锁,先设置具体时间格式,以便查看具体时间 2、查看具体的被锁时间 3、解锁 4、查看是那个ip造成的test用户被锁 这样可知是上面10.69.1.11的ip尝试多次失败登陆造成的被锁 注: 一般数据库默认是10次尝试失败后锁住用户 1、查看FAILED_LOGIN_ATTEMPTS的值 2、修改为30次 3、修改为无限次(…
-
Oracle用户密码过期的处理方法
受影响版本:Oracle11g以上版本。 导致密码消失的原因:Oracle 11g中默认的DEFAULT概要文件中口令有效期PASSWORD_LIFE_TIME默认值为180天。 当以客户端登陆Oracle提示ORA-28002,则基本可以确定登陆帐号已过有效期,使用具有DBA权限的帐号重置该帐号密码即可。 解决方法: 以下步骤以具有DBA权限用户操作 1.…
-
MySQL数据库断电修复(Database page corruption on disk or a failed)
一、报错信息 启动日志如下: 看日志的大体的意思是数据页的损坏。 二、解决方案 2.1 修改配置 /etc/my.cnf 配置文件修改innodb 启动参数修改 如果innodb_force_recovery = 1不生效,则可尝试2-6几个数字。 然后重启mysql,重启成功。然后使用mysqldump或 pma 导出数据,执行修复操作等。修复完成后,把…
-
DM工作笔记-在windows下对DM7进行库还原&恢复
提供了这些备份数据 在windows平台上,将这些备份数据还原到新库中。 首先实例得先停掉: 使用的软件console.exe: 重要步骤:①获取备份;②还原;③恢复 记住DMAP方式这个不要勾选,然后再获取备份,再还原,再恢复。 还原使用库还原的形式做: 然后再启动实例就可以了。
-
MySQL:想实现sql语句进行批量删除数据库或表,而引发的熬夜探究
因为在自测过程中,创建了很多数据库,一个个手动删除属实有点对不起程序员这个身份,那么有没有简单的sql语句操作来进行批量删除数据库呢?于是便有了本篇文章 思路了解到数据库或表的信息都保存在MySQL内置的 information_schema数据库的SCHEMATA表中,因此是否可以通过like查询information_schema中的相关表名,拼接SQL…
-
1558 -Column count ot mysql.proc 1s wrong.Expected 20,found 16.Created with MySQL50096, now running 50525. Please use mysql_upgrade to fix this error.
我在MySQL版本5.5上面创建存储过程的时候就出现了上面的错误。甚至使用show procedure status 查看存储过程都会报上面的错误。 注意操作前先备份!!! 错误原因:是由于你曾经升级过MySQL,或用不同的MySQL版本进行备份迁移恢复。升级和迁移完后未使用mysql_upgrade升级数据结构造成的。 mysql.proc:是MySQL的…
-
MySQL服务器开启SSL加密功能
MySQL服务器开启SSL加密功能 我们知道,MySQL5.7之前版本,安全性做的并不够好,比如安装时生成的root空密码账号、存在任何用户都能连接上的test库等,导致数据库存在较大的安全隐患。好在5.7版本对以上问题进行了一一修复。与此同时,MySQL 5.7版本还提供了更为简单SSL安全访问配置,且默认连接就采用SSL的加密方式,这让数据库的安全性提高…
-
mysql innodb临时表btmp1文件太大
某日生产环境(数据库实例)告警,磁盘使用率过高! 检查发现是由于mysql的data目录的ibtmp1文件太大,达到了30GB 一、ibtmp1文件是干嘛的? 就是用来存放临时表查询时的数据。 二、ibtmp1增长的原因是什么?主要与SQL有关,尤其是大量的分组聚合,排序,join查询SQL.通常如下情况会造成iptmp1上涨: 查询语句会先查询temp_t…
-
MySQL 中 DELETE 语句中可以使用别名么?
某天,正按照业务的要求删除不需要的数据,在执行 DELETE 语句时,竟然出现了报错! 背景 某天,正按照业务的要求删除不需要的数据,在执行 DELETE 语句时,竟然出现了报错(MySQL 数据库版本 5.7.34): 这就有点奇怪了,因为我在执行删除语句之前,执行过同样条件的 SELECT 语句,只是把其中的 select * 换成了…
-
MySQL InnoDB调试死锁
前提 1、在RR隔离级别下。2、查看间隙锁是否关闭区间锁(间隙锁,临键锁)是InnoDB特有施加在索引记录区间的锁,MySQL5.6可以手动关闭区间锁,它由innodb_locks_unsafe_for_binlog参数控制: show global variables like “innodb_locks%”; 3、show glo…
-
MySQL 如何避免克隆失败后再次初始化
在我之前关于 CLONE INSTANCE 命令的博客文章《MySQL 克隆插件不是你的备份》中,我提到使用选项 DATA DIRECTORY 有助于避免在克隆操作失败时需要从头开始重新初始化副本和克隆相关设置的情况。 MySQL 克隆插件简化了新副本的配置,但不会简化失败后的服务器恢复,除非您准备从头开始重新安装 M…
-
delete、truncate、drop的区别
MySQL删除数据的方式都有哪些? 咱们常用的三种删除方式:通过 delete、truncate、drop 关键字进行删除;这三种都可以用来删除数据,但场景不同。 一、从执行速度上来说 二、从原理上讲 1、DELETE 1、DELETE属于数据库DML操作语言,只删除数据不删除表的结构,会走事务,执行时会触发trigger; 2、在 InnoDB 中,DEL…
-
关于MySQL的lock wait timeout exceeded解决方案
一、问题抛出 在做查询语句时,MySQL 抛出了这样的异常: 即Lock wait timeout exceeded; try restarting transaction的异常,错误提示的意思,很明显,是因为这条语句被锁住了,所以释放这个锁。 二、解决方案 我们可以通过到information_schema 中来进行查找被锁的语句。 解释:inf…
-
【mySQL】left join、right join和join的区别
首先,我们先来建两张表,第一张表命名为kemu,第二张表命名为score: 一、left join顾名思义,就是“左连接”,表1左连接表2,以左为主,表示以表1为主,关联上表2的数据,查出来的结果显示左边的所有数据,然后右边显示的是和左边有交集部分的数据。如下: 结果集: 二、right join “右连接”,表1右连接表2,以右为主,表示以表2为主,关联查…
-
MySQL性能优化,MySQL索引优化,order by优化,explain优化
建表 优化一:全部用到索引 介绍 建立的复合索引包含了几个字段,查询的时候最好能全部用到,而且严格按照索引顺序,这样查询效率是最高的。(最理想情况,具体情况具体分析) SQL 案例 优化二:最左前缀法则 介绍 如果建立的是复合索引,索引的顺序要按照建立时的顺序,即从左到右,如:a->b->c(和 B+树的数据结构有关) 无效索引举例 SQL 案例…
-
MySQL异常解决】MySQL执行SQL文件出现【Unknown collation ‘utf8mb4_0900_ai_ci‘】的解决方案
一、背景描述从服务器MySQL中导出数据为SQL执行脚本后,在本地电脑执行导出的SQL脚本, 报错:Unknown collation ‘utf8mb4_0900_ai_ci‘ 打开SQL脚本,查看 utf8mb4_0900_ai_ci 关键字,这是字段的字符集。 二、报错原因1、MySQL 版本不一样;2、utf8mb4_0900_ai_ci 在 MySQ…
-
关于mysql now()显示的时间不正确
如果MySQL中的NOW()函数返回的时间不正确,可能有以下几个原因: 时区设置不正确。请使用SELECT @@global.time_zone;命令检查MySQL服务器的全局时区设置,并确保它与你所在地区的时区匹配。如果时区设置不正确,请使用SET GLOBAL time_zone = ‘timezone’;命令进行更正。 系统时间…
-
解决Authentication plugin ‘caching_sha2_password‘ cannot be loaded问题
报错原因用图形化用户界面连接的MySQL8.0时,报错:Authentication plugin ‘caching_sha2_password’ cannot be loaded MySQL8.0之前的版本中加密规则是mysql_native_password,而在MySQL8.0之后,加密规则是caching_sha2_password。 解决方法1、升…
-
docker容器无法访问宿主机数据库
今天用docker部署一个web服务时遇到总是连不上宿主机mysql数据库的问题,报SQLSTATE[HY000] [2002] Connection refused,经过测试,宿主机用相同配置可以连上,登入docker容器内就连不上,初步判断容器内通过localhost或127.0.0.1是连不上宿主机的。具体原因和解决方法如下: 原因: 今天用docke…