MySQL问题随笔记录
数据库主从问题归纳
1.数据库因为之前一台服务器做了主从,现在和另外一台服务器进行主从配置使用 show slave status\G 进行查看时 master_host显示之前的IP地址导致不成功
解决方法:找到master.info这个文件一般放在MySQL data目录下可以把它删除或者重命名,数据库重启后自动生成 因为该文件还是保存之前的数据导致的
2.mysql主从同步跳过错误的方法:
1、跳过指定数量的事务:
mysql>slave stop; mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1 #跳过一个事务 mysql>slave start
2、修改mysql的配置文件,通过slave_skip_errors
参数来跳所有错误或指定类型的错误
vim /etc/my.cnf [mysqld] #slave-skip-errors=1062,1053,1146 #跳过指定error no类型的错误 #slave-skip-errors=all #跳过所有错误
3.mysql主从报错:ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repositor
Mysql数据库主从搭建,从库运行,报错
ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository
使用start slave开启主从复制过程后,如果SlaveIORunning一直是Connecting,则说明主从复制一直处于连接状态,这种情况一般是下面几种原因造成的,我们可以根据 Last_IO_Error提示予以排除。
reset slave;
start slave;
数据库启动报错
1.数据库启动报错(Starting MySQL... ERROR! The server quit without updating PID file (/usr/local/mysql/data/mysql.pid).
1.目录权限问题
对mysql的安装目录和数据目录分别进行授权
# chown -R mysql.mysql /usr/local/mysql
# chown -R mysql.mysql /data/mysql
# service mysqld start
2.可能进程里已经存在mysql进程
解决方法:用命令“ps -ef|grep mysql”查看是否有mysqld进程,如果有使用“kill -9 进程号”杀死,然后重新启动mysql
3.可能是残余数据影响了服务的启动。
去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧
数据备份还原问题归纳
1.解决mysql 数据库在迁移或还原数据过程中出现的如下报错(ERROR 1231 (42000): Variable 'time_zone' can't be set to the value of 'NULL'):
ERROR 1231 (42000): Variable 'time_zone' can't be set to the value of 'NULL' ERROR 1231 (42000): Variable 'sql_mode' can't be set to the value of 'NULL' ERROR 1231 (42000): Variable 'foreign_key_checks' can't be set to the value of 'NULL' ERROR 1231 (42000): Variable 'unique_checks' can't be set to the value of 'NULL' ERROR 1231 (42000): Variable 'character_set_client' can't be set to the value of 'NULL'
解决办法:
修改mysql配置文件:max_allowed_packet=1024M
查看目前配置:
show VARIABLES like '%max_allowed_packet%';

1M=1048576
修改方法
1、修改配置文件
可以编辑my.cnf来修改(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改。
如果找不到my.cnf可以通过
去寻找my.cnf文件。
linux下该文件在/etc/下。
重启mysql:
1、使用 service 启动:service mysqld restart
2、使用 mysqld 脚本启动:/etc/inint.d/mysqld restart
查看下max_allowed_packet是否编辑成功
注意:该值设置过小将导致单个记录超过限制后写入数据库失败,且后续记录写入也将失败。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?