案例1
执行增删改SQL报如下错误
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
原因:有其他进程在查看/更新相同表/数据
解决办法:
show processlist; #找到相应进程id
终端命令行 kill相应id
案例2
数据库删除大表导致实例宕机,重启数据库起不来,被锁死
报错: InnoDB: Unable to lock ./ibdata1 error: 11
解决办法:
mv /var/lib/mysql/ibdata1 /
mv /ibdata1 /var/lib/mysql/
再次重启mysql
案例3
问题场景:
数据库里新建一个表,莫名其妙被删除,如何排查被删除的原因
#mysql开启日志功能
1、先开启日志功能
show variables where Variable_name = 'general_log';
show variables like 'general_log';
set global general_log=on;
2、实时查询日志
tail -f /{mysql数据目录}/***.log |grep ${表名}
案例4
mysqldump备份报错:Binlogging on server not active
解决办法: 开启binlog
sudo vi /etc/my.cnf
log-bin=mysql-bin
server-id=1
案例5
navicat连接mysql8报错
Authentication plugin 'caching——sha2_password' cannot be loaded: dlopen
原因:
mysql 8.0 默认更改了身份验证机制(caching_sha2_password),从版本5.7之前 mysql_native_password 更改为 caching_sha2_password。 Navicat客户端不支持新的加密方式
解决方案:
终端登录数据库,用原始的加密方案重新加密用户
alter user root@'%' identified with mysql_native_password by '密码';