docker启动mysql,连接不上
时间: 2023-10-08 17:10:53 浏览: 182
当使用Docker启动MySQL 8.0时,可能会遇到连接不上的问题。这是由于MySQL 8.0引入了新的身份验证插件"caching_sha2_password",而旧版本的连接器可能不支持此插件。为了解决这个问题,有两种方法可以尝试。
方法一:
可以在连接字符串中指定旧的身份验证插件,如:"mysql_native_password"。这可以通过在连接命令或连接配置中指定"authPlugin"选项来实现。这样,连接器将使用旧的身份验证插件来连接MySQL 8.0。
方法二:
在创建MySQL 8容器时,可以配置MySQL的加密方式。可以通过在启动容器时添加"-e"参数来设置环境变量。例如,可以通过以下命令创建并启动一个MySQL 8容器:
docker run -id \
-p 3306:3306 \
--name=mysql8 \
-v /root/mysql8/conf:/etc/mysql/conf.d \
-v /root/mysql8/logs:/logs \
-v /root/mysql8/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-e MYSQL_ROOT_HOST=% \
-e MYSQL_USER=mysqluser \
-e MYSQL_PASSWORD=mysqlpassword \
-e MYSQL_DATABASE=mysqldatabase \
-e MYSQL_ALLOW_EMPTY_PASSWORD=yes \
mysql:8.0
通过以上步骤,你可以成功连接到Docker中运行的MySQL 8.0数据库。
阅读全文