찾다
데이터 베이스MySQL 튜토리얼Docker mysql 컨테이너를 mysql8로 업그레이드할 때 발생하는 문제 해결

mysql 동영상 튜토리얼 칼럼에서는 Docker mysql 컨테이너를 mysql8로 업그레이드할 때 발생하는 문제를 소개하고 이를 효과적으로 해결하는 방법을 알려줍니다.

Docker mysql 컨테이너를 mysql8로 업그레이드할 때 발생하는 문제 해결

권장(무료): mysql 동영상 튜토리얼

문제 복원
원래 mysql 컨테이너 생성 명령은 다음과 같습니다

docker run --name mysql -v /xxxx/xxx/mysqldata:/var/lib/mysql -p xxx:3306 -d mysql:laster

데이터 디렉터리는 /xxxx/xxx/mysqldata에 마운트됩니다. 아래 리더 mysql 업그레이드 저는 순진하게 mysql: 8.0.11 최신
mysql 이미지를 다운로드한 다음

docker run --name mysql -v /xxxx/xxx/mysqldata:/var/lib/mysql -p xxx:3306 -d mysql:8.0.11

를 실행하여 컨테이너를 생성하고 이를 원래 디렉터리인 /xxxx/xxx/mysqldata

에 마운트했습니다. 결과적으로 컨테이너는 충돌이 발생하여 전혀 시작할 수 없습니다. 로그 보기

 docker logs -f -t --tail 70 mysql

로그에 /xxxx/xxx/mysqldata 아래의 플러그인 파일이 버전 5.7에서 생성되었으며 8.0에서 시작할 수 없다고 나와 있습니다. 그런 다음 다시 전환했습니다. 컨테이너를 생성하기 위해 원본 mysql:laster 이미지에 이 디렉터리의 파일이 있다고 말했습니다. 8.0 수정을 시작할 수 없습니다. 이 디렉터리는 너무 쓸모가 없고 새 이미지도 시작할 수 없는 것 같습니다. . 日志说 大概是/xxxx/xxx/mysqldata下面的插件文件是5.7版本创建的 8.0无法启动 然后我有切回原本的 mysql:laster 镜像创建容器,又说这个目录下的文件被8.0修改无法启动,感觉这个目录就这么废了,老的镜像无法启动,新的也无法启动。

所以自己被自己的行为蠢哭了千万别再直接用新本的镜像启动容器时挂接原本的mysql目录,有同事说这样没问题,但为啥我出问题了人设有问题吗

解决方法:
用老的mysql:laster镜像连接 /xxxx/xxx/mysqldata 的备份目录,备份太重要了。启动一个mysql容器
用新的mysql:8.0.11 启动一个新的mysql 容器,挂接一个任意目录。然后通过navicat等其他工具将老的数据备份还原到新的mysql容器中。或者通过命令
$ docker exec some-mysql sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /some/path/on/your/host/all-databases.sql 备份还原。

1、如果你的新本mysql还原成功了你用 navicate工具连接报如下的错

Docker mysql 컨테이너를 mysql8로 업그레이드할 때 발생하는 문제 해결

那么你需要修改mysql 的 my.cnf  文件:
添加:

default_authentication_plugin=mysql_native_password

因为8.0使用的是 caching_sha2_password
你可以进入容器:

docker exec -it mysql /bin/bash
mysql -uroot -pxxxx
use mysql
select Host,User,plugin from mysql.user;

查看如下图

Docker mysql 컨테이너를 mysql8로 업그레이드할 때 발생하는 문제 해결

为啥非要修改caching_sha2_password 为 mysql_native_password ,我也不知道只是我的8.0.11的mysql容器启动后,程序接口任然无法正常使用报错:无法连接不支持的认证方法,这个时候可能需要升级程序接口的mysql驱动 ,但是懒得升,只能修改caching_sha2_password 为 mysql_native_password 结果就可以正常连接了。

그래서 나는 내 행동 때문에 울었습니다. 컨테이너를 시작하고 원래 mysql 디렉토리를 마운트하기 위해 새 이미지를 직접 사용하지 마십시오. 몇몇 동료들은 이것이 문제가 되지 않는다고 했지만 왜 그랬습니까? 문제가 있나요?

🎜해결책: 🎜🎜이전 mysql:laster 이미지를 사용하여 /xxxx/xxx/mysqldata의 백업 디렉터리에 연결합니다. . mysql 컨테이너 시작 🎜 새로운 mysql: 8.0.11을 사용하여 새로운 mysql 컨테이너를 시작하고 임의 디렉터리를 마운트하세요. 그런 다음 navicat과 같은 다른 도구를 통해 이전 데이터 백업을 새 mysql 컨테이너로 복원합니다. 또는 🎜$ docker exec some-mysql sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /some/path/on/your/host/all-databases 명령을 통해 .sql 백업 및 복원. 🎜🎜1. 새 mysql이 성공적으로 복원되고 navicate 도구를 사용하여 연결하면 다음 오류가 보고됩니다🎜

Docker mysql 컨테이너를 mysql8로 업그레이드할 때 발생하는 문제 해결🎜🎜그런 다음 my.cnf 파일을 수정해야 합니다 mysql: 🎜추가됨: 🎜

重容器中拷贝文件到宿主机 不需要容器启动
docker cp 容器:/etc/mysql/my.cnf  /home/xxx/my.cnf 

将宿主机的文件拷贝容器里面的目录下 会覆盖老的文件
docker cp /home/xxx/my.cnf   容器:/etc/mysql/
如果你特别牛逼程序中是用root来连接账号的那你可能还需要创建一个 ‘root’@'%' 的账号并修改它的权限可以远程访问,修改命令网上找
🎜 8.0부터 사용됩니다. 하나는 caching_sha2_password입니다🎜컨테이너에 들어갈 수 있습니다: 🎜rrreee🎜아래 그림을 보세요🎜🎜 .png" alt="Docker mysql 컨테이너를 mysql8로 업그레이드할 때 발생하는 문제 해결"/>🎜🎜ca를 수정해야 하는 이유 ching_sha2_password 8.0.11 mysql 컨테이너가 시작된 후에도 여전히 프로그램 인터페이스를 정상적으로 사용할 수 없으며 오류가 보고됩니다. 현재 지원되지 않는 인증 방법입니다. 프로그램 인터페이스의 mysql 드라이버를 업그레이드해야 할 수도 있지만 업그레이드하기에는 너무 게을러서 caching_sha2_password를 mysql_native_password로 수정만 하면 정상적으로 접속이 가능합니다. 🎜🎜3. docker 명령을 기록하세요🎜rrreee

위 내용은 Docker mysql 컨테이너를 mysql8로 업그레이드할 때 발생하는 문제 해결의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 简书에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
MySQL의 장소 : 데이터베이스 및 프로그래밍MySQL의 장소 : 데이터베이스 및 프로그래밍Apr 13, 2025 am 12:18 AM

데이터베이스 및 프로그래밍에서 MySQL의 위치는 매우 중요합니다. 다양한 응용 프로그램 시나리오에서 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 1) MySQL은 웹, 모바일 및 엔터프라이즈 레벨 시스템을 지원하는 효율적인 데이터 저장, 조직 및 검색 기능을 제공합니다. 2) 클라이언트 서버 아키텍처를 사용하고 여러 스토리지 엔진 및 인덱스 최적화를 지원합니다. 3) 기본 사용에는 테이블 작성 및 데이터 삽입이 포함되며 고급 사용에는 다중 테이블 조인 및 복잡한 쿼리가 포함됩니다. 4) SQL 구문 오류 및 성능 문제와 같은 자주 묻는 질문은 설명 명령 및 느린 쿼리 로그를 통해 디버깅 할 수 있습니다. 5) 성능 최적화 방법에는 인덱스의 합리적인 사용, 최적화 된 쿼리 및 캐시 사용이 포함됩니다. 모범 사례에는 거래 사용 및 준비된 체계가 포함됩니다

MySQL : 소기업에서 대기업에 이르기까지MySQL : 소기업에서 대기업에 이르기까지Apr 13, 2025 am 12:17 AM

MySQL은 소규모 및 대기업에 적합합니다. 1) 소기업은 고객 정보 저장과 같은 기본 데이터 관리에 MySQL을 사용할 수 있습니다. 2) 대기업은 MySQL을 사용하여 대규모 데이터 및 복잡한 비즈니스 로직을 처리하여 쿼리 성능 및 트랜잭션 처리를 최적화 할 수 있습니다.

Phantom은 무엇을 읽고, Innodb는 어떻게 그들을 막을 수 있습니까 (다음 키 잠금)?Phantom은 무엇을 읽고, Innodb는 어떻게 그들을 막을 수 있습니까 (다음 키 잠금)?Apr 13, 2025 am 12:16 AM

InnoDB는 팬텀 읽기를 차세대 점화 메커니즘을 통해 효과적으로 방지합니다. 1) Next-Keylocking은 Row Lock과 Gap Lock을 결합하여 레코드와 간격을 잠그기 위해 새로운 레코드가 삽입되지 않도록합니다. 2) 실제 응용 분야에서 쿼리를 최적화하고 격리 수준을 조정함으로써 잠금 경쟁을 줄이고 동시성 성능을 향상시킬 수 있습니다.

MySQL : 프로그래밍 언어는 아니지만 ...MySQL : 프로그래밍 언어는 아니지만 ...Apr 13, 2025 am 12:03 AM

MySQL은 프로그래밍 언어가 아니지만 쿼리 언어 SQL은 프로그래밍 언어의 특성을 가지고 있습니다. 1. SQL은 조건부 판단, 루프 및 가변 작업을 지원합니다. 2. 저장된 절차, 트리거 및 기능을 통해 사용자는 데이터베이스에서 복잡한 논리 작업을 수행 할 수 있습니다.

MySQL : 세계에서 가장 인기있는 데이터베이스 소개MySQL : 세계에서 가장 인기있는 데이터베이스 소개Apr 12, 2025 am 12:18 AM

MySQL은 오픈 소스 관계형 데이터베이스 관리 시스템으로, 주로 데이터를 신속하고 안정적으로 저장하고 검색하는 데 사용됩니다. 작업 원칙에는 클라이언트 요청, 쿼리 해상도, 쿼리 실행 및 반환 결과가 포함됩니다. 사용의 예로는 테이블 작성, 데이터 삽입 및 쿼리 및 조인 작업과 같은 고급 기능이 포함됩니다. 일반적인 오류에는 SQL 구문, 데이터 유형 및 권한이 포함되며 최적화 제안에는 인덱스 사용, 최적화 된 쿼리 및 테이블 분할이 포함됩니다.

MySQL의 중요성 : 데이터 저장 및 관리MySQL의 중요성 : 데이터 저장 및 관리Apr 12, 2025 am 12:18 AM

MySQL은 데이터 저장, 관리, 쿼리 및 보안에 적합한 오픈 소스 관계형 데이터베이스 관리 시스템입니다. 1. 다양한 운영 체제를 지원하며 웹 응용 프로그램 및 기타 필드에서 널리 사용됩니다. 2. 클라이언트-서버 아키텍처 및 다양한 스토리지 엔진을 통해 MySQL은 데이터를 효율적으로 처리합니다. 3. 기본 사용에는 데이터베이스 및 테이블 작성, 데이터 삽입, 쿼리 및 업데이트가 포함됩니다. 4. 고급 사용에는 복잡한 쿼리 및 저장 프로 시저가 포함됩니다. 5. 설명 진술을 통해 일반적인 오류를 디버깅 할 수 있습니다. 6. 성능 최적화에는 인덱스의 합리적인 사용 및 최적화 된 쿼리 문이 포함됩니다.

MySQL을 사용하는 이유는 무엇입니까? 혜택과 장점MySQL을 사용하는 이유는 무엇입니까? 혜택과 장점Apr 12, 2025 am 12:17 AM

MySQL은 성능, 신뢰성, 사용 편의성 및 커뮤니티 지원을 위해 선택됩니다. 1.MYSQL은 효율적인 데이터 저장 및 검색 기능을 제공하여 여러 데이터 유형 및 고급 쿼리 작업을 지원합니다. 2. 고객-서버 아키텍처 및 다중 스토리지 엔진을 채택하여 트랜잭션 및 쿼리 최적화를 지원합니다. 3. 사용하기 쉽고 다양한 운영 체제 및 프로그래밍 언어를 지원합니다. 4. 강력한 지역 사회 지원을 받고 풍부한 자원과 솔루션을 제공합니다.

InnoDB 잠금 장치 (공유 잠금, 독점 잠금, 의도 잠금, 레코드 잠금, 갭 잠금, 차세대 자물쇠)를 설명하십시오.InnoDB 잠금 장치 (공유 잠금, 독점 잠금, 의도 잠금, 레코드 잠금, 갭 잠금, 차세대 자물쇠)를 설명하십시오.Apr 12, 2025 am 12:16 AM

InnoDB의 잠금 장치에는 공유 잠금 장치, 독점 잠금, 의도 잠금 장치, 레코드 잠금, 갭 잠금 및 다음 키 잠금 장치가 포함됩니다. 1. 공유 잠금을 사용하면 다른 트랜잭션을 읽지 않고 트랜잭션이 데이터를 읽을 수 있습니다. 2. 독점 잠금은 다른 트랜잭션이 데이터를 읽고 수정하는 것을 방지합니다. 3. 의도 잠금은 잠금 효율을 최적화합니다. 4. 레코드 잠금 잠금 인덱스 레코드. 5. 갭 잠금 잠금 장치 색인 기록 간격. 6. 다음 키 잠금은 데이터 일관성을 보장하기 위해 레코드 잠금과 갭 잠금의 조합입니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구