【问题标题】:read unix @->/var/run/docker.sock: read: connection reset by peer读取 unix @->/var/run/docker.sock:读取:连接由对等方重置
【发布时间】:2019-05-22 20:55:59
【问题描述】:

我正在使用我的备份脚本 backup_2019-05-21.sql 填充 blockchains 数据库,但在 CLI 上运行此命令会显示此错误。

some_user@my_project:~$ docker exec -i mysql_test mysql -uroot -ptestpass blockchains /var/run/docker.sock: 读取: 对等方重置连接

注意:backup_2019-05-21.sql文件大小为5G

有人知道具体原因吗? :)

【问题讨论】:

  • 如果您使用普通的mysql 客户端,而不是通过docker exec 运行它,您可能会收到整个错误消息(您通常不通过root shell 与数据库服务器交互在控制台上)。不过,这可能不是错误的根本原因。
  • 备份的第一行是什么样的?
  • $ head -20 /home/khalid/db_backups/backup_2019-05-22.sql mysqldump: [警告] 在命令行界面上使用密码可能不安全。 -- MySQL 转储 10.13 Distrib 8.0.15,适用于 Linux (x86_64) -- -- 主机:localhost 数据库:blockchains1 -------------- ------------------------------- -- 服务器版本 8.0.15 /*!40101 SET .... -- 表表结构eos_actions
  • @sitetester 您的备份文件中似乎混有错误和警告消息。
  • 确实如此。在备份文件的顶部添加了这个[Warning] Using a password on the command line interface can be insecure. 。我使用nano 删除了它,一切正常。

标签: docker


【解决方案1】:

备份的第一行:

[Warning] Using a password on the command line interface can be insecure. 

不是有效的 sql。它似乎是一个错误日志,散布在您的 sql 转储中。如果您可以再次运行备份,您将希望在不捕获这些错误消息的情况下这样做。如果这不可行,您需要在尝试导入之前从您的 sql 文件中删除这些日志。

【讨论】:

  • 你就是男人!我使用 nano 打开文件并删除了第一行,使用 $ docker exec -i mysql_test /usr/bin/mysql -u root --password=testpass blockchains < /home/some_user/db_backups/backup_2019-05-22.sql 运行备份并在一段时间后恢复(大文件)。一般来说,应该使用其他更好的方式来编辑大文件。
  • 奇怪的是这个Warning是自动添加到备份文件顶部的。
猜你喜欢
  • 2019-07-11
  • 2015-05-31
  • 1970-01-01
  • 1970-01-01
  • 2020-07-25
  • 1970-01-01
  • 2017-08-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多