代码改变世界

XtraBackup出现 Can't connect to local MySQL server through socket '/tmp/mysql.sock'

2016-03-22 23:18  潇湘隐者  阅读(21021)  评论(2编辑  收藏  举报

 

Xtrabackup做备份时遇到下面错误信息MySQL server: Can't connect to local MySQL server through socket '/tmp/mysql.so‘(2)

 
[root@MySQL-DB ~]# innobackupex --defaults-file=/usr/my.cnf --user=root --password=password  /mnt/resource/mysql_backup
160322 22:28:43 innobackupex: Starting the backup operation
 
IMPORTANT: Please check that the backup run completes successfully.
           At the end of a successful backup run innobackupex
           prints "completed OK!".
 
160322 22:28:43  version_check Connecting to MySQL server with DSN 'dbi:mysql:;mysql_read_default_group=xtrabackup' as 'root'  (using password: YES).
Failed to connect to MySQL server as DBD::mysql module is not installed at - line 1327.
160322 22:28:43 Connecting to MySQL server host: localhost, user: root, password: set, port: 0, socket: (null)
Failed to connect to MySQL server: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2).

clip_image001

 

出现这种情况是因为我修改了my.cnf中参数datadir,但是没有修改socket参数(参数为空),所以出现这个错误。另外我估计更换MySQL数据目录后,如果没有正确配置也会出现这个错误. 我们首先找到对应的mysql.sock文件位置,然后修改my.cnf中的参数scoket值,重启MySQL服务即可解决

[root@MySQL-DB mysql_backup]# find / -name "mysql.sock"
 
/var/lib/mysql/mysql.sock

clip_image002

另外,其实我这篇文章ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)里介绍的建立软连接也可解决这个问题。

另外,在网上也有种偏方解决这个问题,即指定--host=127.0.0.1也可避免这个错误,我测试确实也能解决问题。不过这个是个治标不治本的方法.

innobackupex --defaults-file=/usr/my.cnf --user=root --password=password --host=127.0.0.1 /mnt/resource/mysql_backup

 

参考资料:

http://www.cnblogs.com/fuhj02/p/3541173.html