在执行mysqldump命令的过程中,有时候会碰到如下的错误:
peter@dev:~> mysqldump -uroot -p chmopdb > mop.sql
mysqldump: Got error: 2002: Can't connect to local MySQL server through socket'/tmp/mysql.sock' (2) when trying to connect
说明命令默认使用连接mysql的unix套接字错误,先要找出套接字的路径:
peter@dev:~> netstat -ln | grep chmopdb
unix 2 [ ACC ] STREAM LISTENING 81195 etc/mysock/chmopdb.sock
然后使用–socket选项指定连接数据库时的套接字。
peter@dev:~> mysqldump --socket=/etc/mysock/chmopdb.sock -uroot -p chmopdb > mop.sql
此时在输入密码之后有可能会出现
Got error: 1045: Access denied for user 'root'@'localhost
此时需要改变用户登录时输入密码的方式:
peter@dev:~> mysqldump --socket=/etc/mysock/chmopdb.sock -uroot -p"password" chmopdb > mop.sql
将密码以明文的方式输入,记得密码要用双引号括住。