这个错误是因为MySQL服务器在启动时未启用TCP / IP协议。要解决此问题,请在my.cnf文件中添加以下内容:
[client] protocol=tcp
[mysqldump] protocol=tcp
在MySQL命令行中输入以下命令来编辑my.cnf文件:
sudo nano /etc/mysql/my.cnf
完成后,重新启动MySQL服务器:
sudo service mysql restart
如果您的MySQL服务器没有权限运行TCP / IP套接字,请尝试使用Unix Sockets。在您的脚本中,您可以将参数-h设置为unix_socket=/path/to/socket,然后将路径更改为Unix套接字的路径。例如:
mysqldump -u username -p --default-character-set=utf8mb4 --quote-names --routines --triggers --skip-lock-tables --max_allowed_packet=1G --single-transaction --quick -h unix_socket=/var/run/mysqld/mysqld.sock dbname > backup.sql
通过这样做,您应该能够成功执行备份并解决TCP / IP套接字错误问题。