51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

MySQL数据故障案例

一、 启动故障
1.1、把虚拟机强制关机,即可模拟。
1.2、现象:Linux服务器重启之后发现MySQL无法启动,提示: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
1.3、像这种情况,一般是由于没有正常关闭或停止mysql导致。
1.4、解决方法:
(一) 尝试启动服务,还是同样的错误
(二) [root@localhost ~]#rm -rf /var/lib/mysql/mysql.sock
[root@localhost ~]#/etc/init.d/mysqld restart 重启即可解决

2、mysql的数据存储目录权限不足
2.1、把mysql数据库文件,属主属组改为他用户,比如就用root用户即可模拟
2.2、模拟方法:chown --R root:root /var/lib/mysql/ 然后尝试重启mysql
2.3、现象:[root@mysql-1 ~]# /etc/init.d/mysqld restart
停止 mysqld: [确定]
MySQL Daemon failed to start.
正在启动 mysqld: [失败]
2.4、像这种情况发生于mysql第一次安装或升级,配置文件中的data数据目录的权限设定不正确。
2.5、解决方法:chown --R mysql:mysql /var/lib/mysql
二、无法连接到 MySQL 数据库
3.1、摸拟方法:mysql> GRANT ALL ON . TO 'kgc'@'192.168.10.%' IDENTIFIED BY '123456';有一台20网段客户端需要连接数据库。
3.2、现象:无法远程访问,用户没有授权远程访问
[root@localhost ~]# mysql -u root -h192.168.10.2 -p
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.10.2' (113)
如果仅仅授权root@192.168.10.1%,那么20网段则无法远程访问该数据库,这时需要授权:
mysql> GRANT ALL ON . TO 'kgc'@'192.168.20.%' IDENTIFIED BY '123456';
mysql> FLUSH PRIVILEGES;
3.3、分析故障原因:
(一) 网络连接有问题
(二) 授权有问题
(三) 数据的3306端口没有开
3.4、解决方法:下方语句为对应账户赋予可以访问的权限,'用户名'和'密码'部分填写所需的
mysql>grant all on . to 'kgc ' @'192.168.20.%' identified by 'bdq' ;
mysql>flush privileges;
三、连接数据库故障
4.1、摸拟方法:/etc/init.d/iptables start 开启防火墙前提是没有打开3306端口的情况下。
4.2、现象:无法远程访问,用户没有授权远程访问
[root@localhost ~]# mysql -u root -h192.168.10.2 -p
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.10.2' (113)
4.3、解决
4.4、分析故障原因:
(四) 网络连接有问题
(五) 授权有问题
(六) 数据的3306 端口没有开
2.4、解决方法:下方语句为对应账户赋予可以访问的权限,'用户名'和'密码'部分填写
所需的
mysql>grant all on . to 'kgc ' @'192.168.20.%' identified by 'bdq' ;
mysql>flush privileges;
主从故障
12、摸拟配置文件有误。
1、摸拟配置文件[root@mysql-2 ~]# vi /etc/my.cnf

log-bin=mysql-bin //注释掉binlog 日志

2、在查看mysql bin_log 日志时,及pos 位置时,现象会出现的什么现象
mysql> show master status;
Empty set (0.00 sec)
3、分析原因:往往初学者,会忘记开启binlog 日志文件,或者配置有问题
4、解决方法:查看配置文件,看一下是否有问题。
13、配置文件server_id 有误
1.1、把从库配置文件server_id 改为1,即可模拟。
[root@mysql-2 ~]# /etc/init.d/mysqld restart //重启从库。
1.2、现象:Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 1593
Last_IO_Error: Fatal error: The slave I/O thread stops because master and
slave have equal MySQL server ids; these ids must be different for replication to work (or the
--replicate-same-server-id option must be used on slave but this does not always make sense;
please check the manual before using it).
1.3、从上面的报错信息,可以看出人库I/o 线程已经停止。从后面的语句中可以看是因为和
主库的server_id 有冲突。导致
1.4、解决方法:
查看配置文件,并修改一下配置即可解决。
[root@mysql-2 ~]# vi /etc/my.cnf
Server_id=2
14、网络有问题
1.1、摸拟方法:断开主的网络连接,我们会看到Slave_IO_Running:NO

[root@mysql-2 ~]# /etc/init.d/network stop //关闭主库网卡。
1.2、在从库执行mysql>stop slave;Mysql>start slave;
现象:Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 2013
Last_IO_Error: error connecting to master 'bdq@192.168.10.2:3306' --
retry-time: 60 retries: 86400
1.3、从上面的报错信息可以看出,从库连接主库超时。当然如果授权的用户名有误也会出
现这个问题
1.4、解决方法:
先查看网络,是否有问题,可以用ping 命令查看
如果上面没有问题,再查看用户授权,方法:在从库用刚才给从库授权的用户名及密码
比如在这里我用的bdq。Mysql --u root --h 192.168.10.2 --p
三、Amoeba 启动错误:

amoeba start

The stack size specified is too small, Specify at least 160k
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
解决方法:
打开bin 目录下的amoeba 启动文件

vim amoeba

修改58 行的Xss 参数:
DEFAULT_OPTS="-server -Xms1024m -Xmx1024m -Xss128k"
修改为:
DEFAULT_OPTS="-server -Xms1024m -Xmx1024m -Xss256k"

赞(2)
未经允许不得转载:工具盒子 » MySQL数据故障案例