MySqlConnector.MySqlException (0x80004005): Table '****' doesn't 解决方法

数据表是存在的,程序类也没问题,最后找到原因是mysql数据库默认是区分大小写的。

解决方法有2:

1、

我们在创建MySQL容器的时候就需要初始化配置  lower_case_table_names=1  

记住要放在后面,后面才是mysql的配置

sudo docker run -d -p 3306:3306 --name 容器名 -e MYSQL_ROOT_PASSWORD=你的密码 mysql --lower_case_table_names=1

比如容器名为wzhmysql

进入容器
docker exec -it wzhmysql /bin/bash

登录mysql
mysql -uroot -p123456

查看user
select host,user,plugin,authentication_string from mysql.user;

host是' % ' 表示允许所有机器访问,若host为127.0.0.1或者localhost,那么该用户就只能在本机访问。

修改root为mysql_native_password 并修改新密码

alter user 'root'@'%' identified by '123456' password expire never;

alter user 'root'@'%' identified with mysql_native_password by '123456' ;

刷新权限
flush privileges;

查看大小写参数

show variables like '%table_names'

如果lower_case_table_names参数已经变为1,说明不区分大小写了。

2、

详细操作如下 ,转载:

docker修改mysql8配置 修改表名区分大小写问题_Lucky-CSDN博客_docker修改mysql配置

原文地址:https://www.cnblogs.com/lunawzh/p/14917686.html