Docker로 MySQL 데이터베이스 돌리기

3167 단어 dockerlaravelphpmysql
이 기사는 원래 내 블로그에 게시되었으므로 방문하십시오here .

이것은 MySQL을 로컬에 설치하고 구성할 필요가 없고 수천 가지 문제에 직면할 필요가 없기 때문에 시작하는 가장 좋은 방법입니다. 몇 분 안에 MySQL 데이터베이스를 가동할 수 있습니다.

시작하려면 다음 단계를 따르세요.
  • 최신 이미지를 뽑고,

  • docker pull mysql:latest
    


    수동으로 수행할 필요가 없습니다. 컨테이너를 스핀업할 때 설치되지 않은 경우 자동으로 다운로드됩니다.

  • 다음 명령을 사용하여 컨테이너를 시작합니다.

  • docker run --name <container_name> -p 3306:3306 -v mysql_volume:/var/lib/mysql/ -d -e "MYSQL_ROOT_PASSWORD=<root_password>" mysql
    


    그러면 이름이 mysql:latest인 새 컨테이너가 생성되고 컨테이너 외부의 인스턴스를 사용하기 위해 로컬 환경에 포트3306가 게시됩니다.

    이것은 또한 데이터베이스의 데이터를 유지하기 위해 컨테이너의 볼륨을 설정하므로 호스트 시스템이나 컨테이너를 다시 시작할 때 재설정되지 않습니다.

    또한 MYSQL_ROOT_PASSWORD 환경 변수를 전달하여 데이터베이스의 루트 비밀번호를 설정합니다.

    제공되지 않으면 임의의 강력한 암호를 생성하며 다음 명령을 사용하여 컨테이너 로그에서 확인할 수 있습니다.

    docker container logs <container_name>
    


    컨테이너를 시작할 때 다음 환경 변수를 전달할 수 있습니다.
  • MYSQL_ROOT_PASSWORD : 이 환경 변수를 사용하여 비밀번호를 설정합니다.
  • MYSQL_ALLOW_EMPTY_PASSWORD : 공백 또는 Null 비밀번호가 설정됩니다. MYSQL_ALLOW_EMPTY_PASSWORD=1로 설정해야 합니다.
  • MYSQL_RANDOM_ROOT_PASSWORD : 컨테이너가 시작될 때 임의 암호가 생성됩니다. 임의의 비밀번호를 생성하려면 MYSQL_RANDOM_ROOT_PASSWORD=1를 설정해야 합니다.

  • Don't pass in the permanent password in production, as the password will be visible in the shell history, which we obviously don't want.
    A possible solution is that we pass in a temporary password like temp123 and then change it afterwards.



    다음과 같이 루트 암호를 변경할 수 있습니다.
  • 다음을 사용하여 컨테이너에 들어가십시오.

  • docker exec -it <container_name> bash`.
    


  • 다음을 사용하여 MySQL 셸에 로그인합니다.

  • mysql -u root -p
    


    그러면 이전에 설정한 비밀번호를 입력하라는 메시지가 표시됩니다. 이 경우 temp123이었습니다.
  • 셸에 로그인한 후 다음 SQL 쿼리를 실행하여 암호를 변경하십시오.

  • ALTER USER 'root'@'localhost' IDENTIFIED BY '<new_password>';
    


    참조:
  • Instapaper에서 메모와 함께 이 기사를 보십시오.
  • 원본 보기here .
  • 좋은 웹페이지 즐겨찾기