曾志高翔, 江湖人称曾老大。多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 个人博客:"DBA老司机带你删库跑路"
1.
报错原因:MySQL的socket文件目录不存在。
解决方法:创建MySQL的socket文件目录
mkdir /application/mysql-5.6.38/tmp
2.
报错原因:socket文件目录没有权限
解决方法:给socket文件目录授权mysql用户的权限
chown -R mysql.mysql /application/mysql-5.6.38/
3.
报错原因:没有做初始化
解决方法:做初始化
./mysql_install_db --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data
4.
报错原因:找不到socket文件
解决方法:1. mysql -uroot -poldboy123 -S /tmp/mysql.sock 指定socket文件路径
2.把socket文件放到默认路径下 mv /tmp/mysql.sock /application/mysql/tmp/
5.
报错原因:跳过授权表安全启动导致无法使用权限的设置
解决方法:使用insert,update语句对表进行修改添加用户权限
6.
报错原因:插入数据时,表内有字段含有默认值,必须填写
解决方法:在insert语句中加上对应字段的默认值
7.
报错原因:SQL语句中含有中文字符所以不识别'localhost'
解决方法:将中文的标点符号改成英文的
8.
报错原因:设置的共享表空间小于当前共享表空间的大小
#当前共享表空间大小:76M
[root@oldboy data]# du -sh ibdata1
76M ibdata1
#配置文件中共享表空间大小:50M
innodb_data_file_path=ibdata1:50M;ibdata2:50M:autoextend
解决方法:将配置文件中的50M修改为76M即可,然后重启MySQL
9.
报错原因:修改事务的隔离级别RC、RU的时候需要将binlog格式改成row
解决方法:在配置文件的[mysqld]标签下添加一行 binlog_format=row,重启MySQL
10.
报错原因:MySQL配置文件中参数有问题。
解决方法:修改MySQL配置文件中的对应参数。
11.
报错原因:使用操作不当的方式删除了binlog日志
解决方法:重新初始化数据库
12.
报错原因:主从复制过程中master和slave的uuid相同
解决方法:修改uuid文件或者删除uuid文件并重启
vim /application/mysql/data/auto.cnf
[auto]
server-uuid=3ba9b12e-b4e8-11e8-b930-000c29a508b5
或者:
rm -f /application/mysql/data/auto.cnf
重启:
/etc/init.d/mysqld restart
13.
报错原因:从库没有执行change master to 语句,直接start slave;
解决方法:执行change master to语句
14.
报错原因:不认识innodb
解决方法:初始化
15.
报错原因:IO线程连接超时
解决方法:1.网络 ping
2.端口 telnet tcping
3.用户名、密码 mysql –urep –poldboy123 –h10.0.0.51 –P3309
16.
报错原因:因为做了hosts解析,将ip反向解析成了主机名
解决方法:1.在所有主机上都相互做解析,grant rep@'oldboy'
2.在配置文件中[mysqld]标签下添加一行:skip_name_resolv(跳过反向解析)