집 >데이터 베이스 >MySQL 튜토리얼 >docker mysql에서 루트 계정 비밀번호를 변경하고 권한을 부여하는 방법
CentOs 리눅스 서버 로그인 후
docker ps //查看docker镜像
mysql 이미지 입력
docker exec -it 镜像id或者镜像别名 /bin/bash //进入docker内部镜像
docker 이미지에는 vim 명령어가 없기 때문에 수동으로 설치해야 합니다 또는 docker cp 명령을 사용할 수 있습니다. 호스트에서 복사하세요.
apt-get update apt-get install vim
구성 파일을 편집하세요
vim /etc/mysql/mysql.conf.d/mysqld.cnf
"skip-grant-tables"를 추가해야 합니다. "skip-grant-tables"를 추가하려면 i "cv"를 누르세요. esc 그런 다음: wq!
저장하고 종료합니다
exit # 退出容器
mysql 컨테이너를 다시 시작합니다
docker restart mysql
컨테이너를 다시 입력하세요
docker exec -it mysql bash
mysql에 로그인합니다(비밀번호 필요 없음)
mysql -uroot
권한 업데이트
flush privileges;
비밀번호 변경
alter user 'root'@'localhost' identified by '123456';
Quit mysql
exit
Comment "skip-grant-tables"
Comment 필수" Skip-grant-tables” i를 누르세요. esc를 누르세요. 그런 다음: wq!
컨테이너 종료
exit
컨테이너 다시 시작
docker restart mysql
내부인 경우 액세스가 가능하지만 Navicat이 액세스할 수 없습니다. 그런 다음 mysql 권한을 열려면 실행하세요
오류: ERROR 1130: 호스트 'ip'는 thisMySQL 서버에 연결할 수 없습니다.
이유: 연결된 데이터는 ip를 사용하여 액세스할 수 없습니다. localhost만 허용됩니다.
mysql 미러로 들어가세요
docker exec -it 镜像id或者镜像别名 /bin/bash //进入docker内部镜像
mysql에 로그인
mysql -u root -p 输入刚刚修改的密码
mysql>use mysql; mysql>select 'host' from user where user='root'; mysql>update user set host = '%' where user ='root'; mysql>flush privileges; mysql>select 'host' from user where user='root';
그래도 작동하지 않으면 여러 루트 권한에 대한 업데이트 권한이 있는 것입니다.
update user set 비밀번호=password("root" ) user="root"; 기본 키 ID가 이미 존재하는 경우
localhost
를 삭제하세요.위 내용은 docker mysql에서 루트 계정 비밀번호를 변경하고 권한을 부여하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!