正常流程是这样得:

第一步 #拉镜像

docker pull mysql:8.0  

第二步 #运行名为 mysql8 得容器 ,MYSQL_ROOT_PASSWORD=123456 设置密码

docker run -p 3307:3306 \ --name mysql8 \ -e MYSQL_ROOT_PASSWORD=123456 \ -v /docker/mysql8/data:/var/lib/mysql \ -d mysql:8 

第三步 #进入 MySQL 容器

docker exec -it mysql8 bash 

第四步 #登录 MySQL

mysql -u root -p

    这时候可能是我忘记密码了,然后我删除容器

    docker stop mysql8   #停止
    docker rm mysql8   #删除

    再次重新执行一二三四步,还是密码错误。

    最后发现原因是:数据目录挂载问题

    因为之前执行过 docker 挂载 MySQL 容器,且 /docker/mysql8/data 目录下已有之前的缓冲数据,新容器启动时,由于两次挂载的 MySQL 容器密码不一致,就会导致登录不成功。

    • 解决办法:删除 /docker/mysql8/data 目录下的文件,停止并删除当前的 MySQL 容器,然后重新执行 docker run 命令创建容器。具体操作如下:

    rm -rf /docker/mysql8/data/*

    然后再次重复上面得第二、三、四步 ,输入密码123456就正常了。

    然后继续我得操作...设置 允许 root 用户从任何 IP 地址连接:

    ALTER USER 'root'@'%' IDENTIFIED BY '123456';

    ....

    Logo

    腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

    更多推荐