Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 2013年:;与位于';的MySQL服务器的连接中断;握手:读取初始通信数据包';,系统错误:115“;当尝试连接时_Bash_Docker_Mariadb_Dump_Entry Point - Fatal编程技术网

Bash 2013年:;与位于';的MySQL服务器的连接中断;握手:读取初始通信数据包';,系统错误:115“;当尝试连接时

Bash 2013年:;与位于';的MySQL服务器的连接中断;握手:读取初始通信数据包';,系统错误:115“;当尝试连接时,bash,docker,mariadb,dump,entry-point,Bash,Docker,Mariadb,Dump,Entry Point,为mariadb转储创建映像。无法建立与mariadb容器的连接。我有一个容器在运行。我正在开发用于定期创建数据库MySQL转储的映像。无法建立mariadump容器和MariaDB容器之间的连接 Docker Compose version: '3.3' services: db: # image: 'mariadb' build: ./mariadbimage container_name: MariaDB volume

为mariadb转储创建映像。无法建立与mariadb容器的连接。我有一个容器在运行。我正在开发用于定期创建数据库MySQL转储的映像。无法建立mariadump容器和MariaDB容器之间的连接

Docker Compose

version: '3.3'
services:
    db:
        # image: 'mariadb'
        build: ./mariadbimage
        container_name: MariaDB
        volumes:
            - db_data:/var/lib/mysql
            # - ./etc/localtime:/etc/localtime:ro
            # - ./opt/mysql/backup:/opt/mysql/backup
        ports:  
            - "3306:3306"
        restart: always
        environment:   
            MYSQL_ROOT_PASSWORD: wordpress
            MYSQL_DATABASE: wordpress
            MYSQL_USER: wordpress
            MYSQL_PASSWORD: wordpress

    mariadump:
        container_name: MariaDump
        build: ./mariadumpimage
        environment:
            TZ: Europe/Berlin

        volumes:
            - ./ssh:/root/.ssh
        depends_on:
            - db
        links:
            - db
马里亚登普多克菲尔酒店

FROM mariadb/server
RUN apt-get update && apt-get -y install cron curl openssh-client 
ENV TINI_VERSION v0.17.0
ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /tini
RUN chmod +x /tini

ADD scripts /usr/local/bin/
RUN chmod 0755 /usr/local/bin/mariadumper.sh /usr/local/bin/docker-entrypoint.sh

ENTRYPOINT ["/tini", "-e", "143", "--", "docker-entrypoint.sh"]
Mariadump入口点

MYSQL_USER=wordpress
MYSQL_PASSWORD=wordpress
MYSQL_HOST=host.docker.internal
MYSQL_PORT=3306

BACKUP_FILE=/var/backups/$(date +"%Y-%m-%d-%H%M%S")_${MYSQL_HOST}_mysqldump

MYSQL_OPTS="-u${MYSQL_USER} -p${MYSQL_PASSWORD} -h${MYSQL_HOST} -P${MYSQL_PORT}"
MYSQLDUMP_OPTS="--single-transaction --routines --triggers"

mysqldump ${MYSQL_OPTS} ${MYSQLDUMP_OPTS} --all-databases >${BACKUP_FILE}
RETVAL=$?

if [ "$RETVAL" == 0 ]; then
  echo Compressing backup using gzip compression method.
  gzip --best ${BACKUP_FILE}*
  RETVAL=$?
fi

if [ "$RETVAL" == 0 ]; then
    echo Backup finished successfully.
    exit 0 
else
    echo Backup failed with errors!
    exit 1
fi
错误:

Got error: 2013: "Lost connection to MySQL server at 'handshake: reading inital communication packet', system error: 115" when trying to connect

如果要使容器能够通信,应使用
网络
属性

version: '3.3'
services:
    db:
        # image: 'mariadb'
        build: ./mariadbimage
        container_name: MariaDB
        volumes:
            - db_data:/var/lib/mysql
            # - ./etc/localtime:/etc/localtime:ro
            # - ./opt/mysql/backup:/opt/mysql/backup
        ports:  
            - "3306:3306"
        restart: always
        environment:   
            MYSQL_ROOT_PASSWORD: wordpress
            MYSQL_DATABASE: wordpress
            MYSQL_USER: wordpress
            MYSQL_PASSWORD: wordpress
        networks:
            - my-network-name

    mariadump:
        container_name: MariaDump
        build: ./mariadumpimage
        environment:
            TZ: Europe/Berlin

        volumes:
            - ./ssh:/root/.ssh
        depends_on:
            - db
        links:
            - db
        networks:
            - my-network-name
networks:
    my-network-name:
      driver: bridge
然后,容器可以使用
容器名称
id
相互发送请求:

http://MariaDB:3306/

建议在配置文件中只使用snake_case。

您正在使用
docker compose
创建容器?如果是,请发布
docker compose.yml
文件,如果不是,请发布用于创建和运行容器的命令。@VictorAlatramas更新了问题。我正在使用docker compose。在我的脚本中,我将使用什么作为MYSQL_主机?您应该使用要连接到的容器的
容器名称
。mysqldump:get error:2002:“无法通过套接字连接到本地MYSQL服务器”/var/run/mysqld/mysqld.sock'(2)”当尝试连接时,似乎缺少一些文件,可能您还没有在容器上安装
mysql服务器
?我想您正在使用
Dockerfile
构建映像,您应该在那里运行安装该映像的命令。