数据表是存在的,程序类也没问题,最后找到原因是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、
详细操作如下 ,转载: