在使用Docker运行MySQL容器时,有时会遇到"table 'performance_schema.session_variables' doesn't exist"的错误。这通常是由于数据库初始化问题或配置错误引起的。以下是解决这个问题的步骤:

1. 清除现有容器并重新运行

docker rm -f mysql
docker run --restart=always -p 3306:3306 --name mysql -v /tmp/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -d mysql:5.7.25 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --default-time-zone='+8:00'

2. 检查日志

查看MySQL容器的日志,以获取更多信息。

docker logs mysql

检查日志以确认是否存在有关数据库初始化、表创建或其他错误的信息。

3. 手动初始化数据库

连接到MySQL容器并手动运行数据库初始化命令。

docker exec -it mysql bash
mysql -u root -p
 

在MySQL命令行中运行以下命令: 

mysql_upgrade -u root -p

 然后退出MySQL命令行并重新启动容器。

 exit
docker restart mysql

 这确保了 mysql_upgrade 命令在终端中执行,而不是在MySQL提示符中执行。

 

4. 检查MySQL版本

确保你使用的MySQL版本支持相应的操作。在某些版本中,可能需要执行特定的操作来进行升级或初始化。

5. 考虑使用更高版本的MySQL镜像

如果可能的话,尝试使用更高版本的MySQL镜像,因为较新的版本可能包含修复了旧版本中问题的改进。

尝试这些方法,看看是否有助于解决你遇到的问题。如果问题仍然存在,请提供更多详细信息或日志,以便进一步帮助你找到解决方案。

更多推荐