A brief analysis of the problem of mysql being inaccessible when deployed with docker-compose

A brief analysis of the problem of mysql being inaccessible when deployed with docker-compose

What is Docker-Compose

The Compose project originated from the previous fig project. It is written in Python and has a high degree of compatibility with docker/swarm. Compose is a tool for orchestrating Docker containers. It defines and runs multi-container applications. Multiple containers can be started with one command. Using Docker Compose, you no longer need to use shell scripts to start containers. Compose manages multiple Docker containers through a configuration file. In the configuration file, all containers are defined through services, and then the docker-compose script is used to start, stop, and restart the application, the services in the application, and the containers of all dependent services. It is very suitable for scenarios where multiple containers are combined for development. The default template file for docker-compose is docker-compose.yml, in which each service defined must be automatically built by specifying an image through the image instruction or the build instruction (Dockerfile is required).

Using Compose basically involves the following three steps:

1. Define your application environment in a Dockerfile so that it can be replicated anywhere.
2. Define the services that make up your application in docker-compose.yml so that they can run together in an isolated environment.
3. Finally, run docker-compose up and Compose will start and run the entire application.

Let's look at the problem that mysql cannot be accessed when deployed by docker-compose.

This problem has troubled me for a long time. After using docker-compose to deploy mysql, after the container is built, it can be accessed using mysql -u root -p , but it cannot be connected using the sql client. So I searched for a lot of information on Google and finally found that adding command: --default-authentication-plugin=mysql_native_password can solve this problem. It is still related to the password encryption method.

version: "3.3"
services:
 Redis:
 image: sameersbn/redis:latest
 ports:
  - "6379:6379"
 volumes:
  - redis_data:/var/lib/redis
 restart: always
 mysql:
  image: mysql:latest
  restart: always
  command: --default-authentication-plugin=mysql_native_password #This line of code solves the problem of inaccessible networks:
   -dev
  ports:
   - "3306:3306"
  environment:
   MYSQL_ROOT_PASSWORD: abc123
   MYSQL_USER: 'test'
   MYSQL_PASS: 'test'
  volumes:
   -mysql_data:/var/lib/mysql
networks:
 dev:
  driver: bridge
volumes:
 redis_data:
 mysql_data:

Summarize

The above is the problem of inaccessible mysql deployment using docker-compose that I introduced to you. I hope it will be helpful to you. If you have any questions, please leave me a message and I will reply to you in time. I would also like to thank everyone for their support of the 123WORDPRESS.COM website!

You may also be interested in:
  • Explain the deployment and configuration of Clickhouse Docker cluster with examples
  • Detailed explanation of docker-compose deployment php project example
  • Docker-compose one-click deployment of gitlab Chinese version method steps
  • How to deploy gitlab using Docker-compose
  • Tutorial on how to quickly deploy clickhouse using docker-compose

<<:  Based on vue-simple-uploader, encapsulate the global upload plug-in function of file segment upload, instant upload and breakpoint resume

>>:  Instructions for recovering data after accidental deletion of MySQL database

Recommend

Alibaba Cloud Server Domain Name Resolution Steps (Tutorial for Beginners)

For novices who have just started to build a webs...

How to use docker+devpi to build local pypi source

Some time ago, I needed to use pip downloads freq...

Summary of common problems and solutions in Vue (recommended)

There are some issues that are not limited to Vue...

Why does using limit in MySQL affect performance?

First, let me explain the version of MySQL: mysql...

Simple principles for web page layout design

This article summarizes some simple principles of...

Implementation of crawler Scrapy image created by dockerfile based on alpine

1. Download the alpine image [root@DockerBrian ~]...

A Deep Understanding of Angle Brackets in Bash (For Beginners)

Preface Bash has many important built-in commands...

Let you understand how HTML and resources are loaded

All content in this blog is licensed under Creati...

Introduction to commonly used MySQL commands in Linux environment

Enter the mysql command: mysql -u+(user name) -p+...

Detailed explanation of Linux host name modification command

Linux change hostname command 1. If you only need...

Kali Linux Vmware virtual machine installation (illustration and text)

Preparation: 1. Install VMware workstation softwa...

Linux's fastest text search tool ripgrep (the best alternative to grep)

Preface Speaking of text search tools, everyone m...