77百科网
当前位置: 首页 生活百科

mysql 问题排查都有哪些手段(MYSQL一些问题汇总)

时间:2023-07-07 作者: 小编 阅读量: 1 栏目名: 生活百科

TIMESTAMP列字段说明createtabletest(,接下来我们就来聊聊关于mysql问题排查都有哪些手段?Slave会等待slave_net_timeout设置的秒数后,才能认为网络出现故障,然后才会重连并且追赶这段时间主库的数据。slave_net_timeout是设置在多少秒没收到主库传来的BinaryLogsevents之后,从库认为网络超时,SlaveIO线程会重新连接主库。一般线上设置为5s。

mysql 问题排查都有哪些手段?TIMESTAMP列字段说明create table test(,接下来我们就来聊聊关于mysql 问题排查都有哪些手段?以下内容大家不妨参考一二希望能帮到您!

mysql 问题排查都有哪些手段

TIMESTAMP列字段说明

create table test(

aaa char(32),

createtime TIMESTAMP

);

show create table test;

CREATE TABLE `test` (

`aaa` char(32) COLLATE latin1_bin DEFAULT NULL,

`createtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_bin

这里的

createtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

意味更新记录时,createtime字段都会被设置为当前时间

可以单独设置:

CREATE TABLE `test` (

`aaa` char(32) COLLATE latin1_bin DEFAULT NULL,

`createtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP

) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_bin

这样更新记录时就不会自动更改这个字段值了。

ERROR 1449 (HY000): The user specified as a definer (‘root’@’%’) does not exist

一个表好久没插入数据了,今天业务插入数据时竟然提示:

ERROR 1449 (HY000): The user specified as a definer (‘root’@’%’) does not exist

检查了好长时间,发现没有用 (‘root’@’%’)连接MySQL的地方,最后发现这张表有一个trigger,建立时是用(‘root’@’%’)建立的。这时想起来,mysql一开始是没有限制权限的,默认都是(‘root’@’%’)连接,后来加了用户访问权限,删除了(‘root’@’%’),结果导致没有权限执行这个触发器。

处理方法:删除并重建触发器就可以了。

mysql master重启后slave延迟问题

今天mysql master重启后,slave一直延迟,show slave status一直显示:

Master_Log_File: mysql-bin.000006

Read_Master_Log_Pos: 158782

但master上log明明到了mysql-bin.000007,原来是slave_net_timeout参数的问题

修改my.cnf,增加:

slave_net_timeout = 30

#当slave从主数据库读取log数据失败后,等待多久重新建立连接并获取数据。

#MySQL主从复制的时候, 当Master和Slave之间的网络中断,但是Master和Slave无法察觉的情况下(比如防火墙或者路由问题)。Slave会等待slave_net_timeout设置的秒数后,才能认为网络出现故障,然后才会重连并且追赶这段时间主库的数据。默认是3600秒,建议设置:30

修改MASTER_CONNECT_RETRY参数:

change master to MASTER_CONNECT_RETRY=15;

#当重新建立主从连接时,如果连接建立失败,间隔多久后重试。默认设置为 60秒,建议设置:15

Replicate_Do_DB

该参数如果想匹配多个数据库,要在配置文件中写多行Replicate_Do_DB=XXX,而不能在一行中以’,’分隔写多个,这样写一个也不生效。

slave_net_timeout 问题一则

在一个已经建立主从复制关系的系统里面,正常情况下,由从库向主库发送一个 COM_BINLOG_DUMP 命令后,主库有新的binlog event,会向备库发送binlog。

但是如果主库长时间(大于slave_net_timeout)没有向从库发送binlog,从库就会认为主从连接中断向主库发起重连请求。

slave_net_timeout是设置在多少秒没收到主库传来的Binary Logs events之后,从库认为网络超时,Slave IO线程会重新连接主库。

该参数的默认值是3600s ,时间太久会造成数据库延迟或者主备库直接的链接异常不能及时发现

将 slave_net_timeout 设得很短会造成 Master 没有数据更新时频繁重连。

一般线上设置为5s 。

关于mysql字符集

| character_set_client | gb2312 |

| character_set_connection | gb2312 |

| character_set_database | latin1 |

| character_set_results | gb2312 |

| character_set_server | latin1 |

请求转换逻辑是:character_set_client -> character_set_connection -> character_set_database(table,column)/character_set_server

返回转换逻辑是:character_set_database(table,column)/character_set_server -> character_set_results

但是需要注意,如果表、数据库、服务是latin1的字符集,除非character_set_client、character_set_connection、character_set_results的编码都是latin1,不然是无法转换成功的,因为latin1本身并不关心是不是汉字,它只是按字节流存储

mysql的权限设置

最近在mysql的权限设置时,grant select on test.* to voip@’%’,生效后用voip登录,发现test库仍然可以有其它create,drop操作,后来发现默认安装后test库是对所有用户都有所有权限的,select * from mysql.db可以看到;

其它一些问题:

1、Starting Mysql.The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid).[失败]

最后原因竟然是my.cnf配置错误,有两条重复内容,InnoDB_flush_method = O_DRIECT

2、[root@localhost bin]# /mysqlbinlog /var/lib/mysql/mysql-bin.000053

/mysqlbinlog: unknown variable 'default-character-set=latin1'

原因是my.cnf配置文件中,最后两行mysqlbinlog程序不能识别

[client]

user = root

password = cpyf

port = 3306

socket = /tmp/mysql.sock

default-character-set=latin1

tee = /home/jfy/tmp/mysql_opt.sql

解决办法:一是修改my.cnf屏蔽这两行,二是在mysqlbinlog命令中加入--no-defaults 选项就不会读取my.cnf中client段的默认的配置了

这个错误还会出现在一些象mysqladmin这种客户端工具上。

3、如何回收InnoDB表空间

大家知道InnoDB表,插入大量数据后,表文件大小会变大,然后即使删除了数据,表空间大小也不缩小

可以按以下几种方法来做。

truncate table

analyze table

optimize table

alter table xx engine=innodb

如果还不行,那么只有先备份数据,然后drop table,再导入数据了

4、MYSQL交互式与非交互式连接会话有什么不同?

研究wait_timeout参数,牵扯出交互式和非交互式连接,那么到底什么是交互式连接,什么是非交互连接呢,就这么一个小问题,找遍所有网站也没有一个明确答案

自己总结一下:

交互式,用tcp连接上去,象mysql自带的客户端工具,还有象mysql_real_connect库函数这样的连接MYSQL的程序

非交互式,象ODBC与JDBC这种连接方式,mysql < ins.sql,这种方法,其实也是一种非交互式的

那么mysql_real_connect中的“CLIENT_INTERACTIVE”选项,带这个参数与不带这个参数有什么不同呢?MYSQL服务器什么做什么特殊处理呢?我一直迷惑

5、MySQL的read-only选项:

今天在从机上开起read-only选项,insert和update还是可以成功,原来我用的是super权限,super权限在read-only状态是允许写操作的。

read-only选项:对所有的非临时表进行只读控制。但是有两种情况例外:

1. 对replication threads例外,以保证slave能够正常的进行replication。

2. 对于拥有super权限的用户,可以ignore这个选项。

SUPER 权限 :

1. 可以有change master to, kill其他用户的线程的权限。

2. Purge binary logs 来删除binary log, set global来动态设置变量的权限。

3. 执行mysqladmin debug命令,开启或者关闭log,在read-only打开时执行update/insert操作。

4. 执行start slave, stop slave.

5. 当连接数已经达到max_connections的最大值时,也可以连接到server。

6、MySQL服务启动后怎么执行SQL语句:修改my.cnf,在mysqld段中加入:init-file = /usr/local/mysql/data/init-file.sql,就可以了

IP address could not be resolved: Temporary failure in name resolution

关于Relay Log无法自动删除的问题(Neither --relay-log nor --relay-log-index were used)

    推荐阅读
  • 月子餐30天食谱明细剖腹产(月子中心主任推荐的剖腹产的一个月月餐指导食谱)

    今天写的是剖腹产,一个月餐,食谱依旧看着普通,但是我们这月子中心主任推荐的,按产妇剖腹产后每周身体状况来定制,月子里没有偷懒,恢复的特别快,产后六个月之内身材恢复很重要,大家一定一定别偷懒哦

  • 汽车油耗如何计算(汽车油耗的计算方法)

    下面内容希望能帮助到你,我们来一起看看吧!汽车油耗如何计算汽车油耗的计算,耗油量/所行使的公里数所得出的结果即为油耗,还是比较好算的。假如你加了100元油,当前油价为7.77元/升,跑了200多公里,100÷7.77=12.87升,之后12.87÷200=0.064升/公里=6.4升/百公里。

  • 桂林龙脊梯田最佳旅游季节(龙脊梯田最全攻略)

    梯田处处有,可像龙脊梯田这样大规模的集中实属罕见。龙脊梯田是国家4A级旅游风景名胜区,广西田园风光最美的地方,也是桂林知名的民族风情旅游区,它分为大寨红瑶梯田、平安壮族梯田和龙脊古壮寨梯田景观区三个部分。票价均为八九元左右,车上买票。停车费用为10元/24小时。

  • 2021万州哪里可以赏红梅

    公园里,大片的红梅竞相怒放,如同一片绯红的云彩,展现出一幅绝美景色。太白岩山顶公园是万州第一个以梅花为主题的公园,这里有上千株红梅,春节期间正是红梅怒放的时候,梅花吐露着芬芳,暗香浮动,沁人心脾,市民徜徉在花径间,其乐融融,享受着自然的美好。

  • 脸油怎么办(这些都是很好的缓解途径)

    皮肤油性皮肤保养还要注意保持皮肤的清洁,油性皮肤的人一天洗脸至少二次。洗脸时,按部位清洗,先清洁额部头和鼻翼,然后是下巴和两颊。手法方向按照从下向上,由外向里的顺序,就能彻底清洁皮肤。油性皮肤的人最好选用性质比较温和的洗面乳洗脸。水温最好在20℃左右,过热会令皮脂水分流失,过冷又无法清洁彻底。

  • 常青藤怎么养 常青藤怎么养好

    常表藤是一种四季常绿的花卉植物,它株形秀丽,能净化室内空气,也能美化环境,很多人都喜欢养殖,但是常青藤应该怎么养呢?另外在常青藤对肥料要求不高,一般夏天和冬季都不要施肥,可以春天时施肥一次,肥料最好选择氮磷钾含量均衡的稀薄肥。

  • 冻白菜炖豆腐怎么做(冻白菜炖豆腐怎么做好吃窍门)

    1、材料:白菜一棵、冻豆腐一块、葱段适量、姜片适量、八角适量、干辣椒适量、胡椒粉适量、盐适量、鸡精适量。

  • 尼康d7500相机值得买吗(39点自动对焦尼康D7000套机售4598元)

    尼康D7000采用了1620万像素DX格式CMOS传感器,搭载最新EXPEED2代图像处理器。采用新型2016像素的测光感应器,可以为拍摄获得更为准确的曝光。搭载着3英寸92万LCD液晶显示屏,显示效果清晰艳丽。对焦系统采用39点自动对焦系统。1620万像素尼康D7000套机亚马逊售价:4598元>>购买链接尼康D7000的三围尺寸为132X105X77mm,机身重量约为690g,由于采用了镁合金金属机身打造,产品拿在手里十分厚重,极具专业感。

  • 早上吃寿司饭团会胖吗 晚上吃寿司饭团会胖吗

    所以早餐一定要吃好。2、寿司本身就是一种日本酸腌制的食物,多由饭团加上一些海产或肉类做成的,在中国一般是18-20克的但那是生鱼寿司或是饭团,大都在60到100卡左右,未经高温烹煮热量自然低些,但是真的不能多吃啊,没热量但是营养成分也相当充足啊一个星期吃一顿还是没问题的!

  • 新高考一段线与一本线的区别(二者有什么不同)

    跟着小编一起来看一看吧!新高考一段线与一本线的区别新高考一段线与一本线的区别是所选大学范围不同。如果上了一本线,参加第一次志愿填报,那么可以选择的学校和专业都是重点大学的专业。如果过了一本线,但是最后报进一本学校,那么还可以填普通本科学校的志愿。现在,一段线以上的同学先填志愿,面对的则是所有学校的所有专业。