ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

linux centos7 docker 安装mysql解决SpringBoot链接MySQL报:Public Key Retrieval is not allowed

2026/8/30 11:51:40 拓冰建站 浏览量
linux centos7 docker 安装mysql解决SpringBoot链接MySQL报:Public Key Retrieval is not allowed SpringBoot链接MySQL报Public Key Retrieval is not allowedspring:datasource:driver-class-name:com.mysql.cj.jdbc.Driver# MySQL 8.X 开始需要增加属性allowPublicKeyRetrieval设置为true否则会报Public Key Retrieval is not allowedurl:jdbc:mysql://localhost:3306/ms?useUnicodetrueallowPublicKeyRetrievaltruecharacterEncodingUTF-8autoReconnecttrueuseSSLfalseserverTimezoneAsia/Shanghai《docker的mysql镜像仓库》查询docker mysql版本docker search mysqlNAME DESCRIPTION STARS OFFICIAL AUTOMATED mysql MySQL is a widely used,open-sourcerelation… 12738[OK]安装docker pull mysql:9.7.29.7.2: Pullingfromlibrary/mysql f7ec5a41d630: Pull complete Digest: sha256:6e0014cdd88092545557dee5e9eb7e1a3c84c9a14ad2418d5f2231e930967a38 Status: Downloaded newer imageformysql:9.7.2 docker.io/library/mysql:9.7.2启动mysql先创建/docker_data/mysql/conf/my.cnf文件mkdir-p/docker_data/mysql/conf/ vim/docker_data/mysql/conf/my.cnf[client]default-character-setutf8mb4[mysql]default-character-setutf8mb4[mysqld]character-set-serverutf8mb4 default_authentication_pluginmysql_native_password运行mysql并挂载卷到宿主机docker run-d-p 3306:3306--privilegedtrue--restartalways-v/docker_data/mysql/data:/var/lib/mysql-v/docker_data/mysql/conf:/etc/mysql/conf.d-e MYSQL_ROOT_PASSWORD123456--name mysql-9.7.2 mysql:9.7.2如果是docker desktop则为以下命令dockerrun-d-p3306:3306--restartalways-eMYSQL_ROOT_PASSWORD123456--namemysql-9.7.2 mysql:9.7.2 --character-set-serverutf8mb4 --collation-serverutf8mb4_unicode_ci开放防火墙端口firewall-cmd --zonepublic --add-port3306/tcp --permanent firewall-cmd --reloadexec进入容器登录mysql创建用户和密码授权刷新。[rootnode1 host_data]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3b9f3b3ad3a6 mysql:9.7.2docker-entrypoint.s…About a minute ago Up About a minute 0.0.0.0:3306-3306/tcp,:::3306-3306/tcp,33060/tcp mysql-9.7.2 fada3bfc9c0d ubuntubash3 hours ago Up 3 hours u1 0bc3e60b4e1f registry/entrypoint.sh /etc…5 hours ago Up 5 hours 0.0.0.0:5000-5000/tcp,:::5000-5000/tcp registry[rootnode1 host_data]# docker exec -it mysql-9.7.2 bashroot3b9f3b3ad3a6:/# mysql -uroot -p123456mysql:[Warning]Usinga password on the command line interface can be insecure.Welcome to the MySQL monitor.Commandsendwith;or \g.Your MySQL connection id is 53 Server version: 9.7.2 MySQL Community Server-GPL Copyright(c)2000,2021,Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its affiliates.Other names may be trademarks of their respective owners.Typehelp;or\hforhelp.Type\cto clear the current input statement.#新建用户mysql CREATE USERx%IDENTIFIED WITH mysql_native_password BYxPASSWORD EXPIRE NEVER;#授权新用户mysql GRANT all on*.*tox%;#刷新新用户mysql FLUSH PRIVILEGES;#退出mysqlmysqlexit;navicat测试连接前提是服务器开放了3306端口或关闭了防火墙挂载卷以后就算别人不小心把你的mysql删掉了也可以通过docker run -d -p 3306:3306 --privilegedtrue -v /docker_data/mysql/log:/var/log/mysql -v /docker_data/mysql/data:/var/lib/mysql -v /docker_data/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD123456 --name mysql-9.7.2 mysql:9.7.2重新安装回来数据也不会丢失。