使用 MSQL Docker 容器/MySQL Workbench 时出现 MySQL 表不存在错误

问题描述 投票:0回答:2

这是我第一次使用 Docker 和 MySQL Workbench。我之前使用 XAMPP 来运行我的 mysql 本地服务器并使用 phpMyadmin 管理数据库。一切都很好,然后我决定尝试使用 Docker 运行 mysql 服务器,但我无法让它工作。

我的错误是

  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sqlMessage: 'Table \'ToastHRMDB-dev.Employee\' doesn\'t exist',
  sqlState: '42S02',

当我使用 XAMMP 时,下面的查询工作正常,但在 mysql Docker 中不起作用,或者可能是工作台问题?

SELECT 
            Employee.id as id,
            Employee.employee_number as employeeNumber,
            Employee.first_name as firstName,
            Employee.middle_name as middleName,
            Employee.last_name as lastName,
            Employee.suffix as suffix,
            Employee.nickname as nickname,
            Employee.tr_email as trEmail,
            Employee.image_url as imageUrl,
            Employee.loginservice_id as authId,
            Role.definition as role
        FROM Employee
        INNER JOIN RoleMap ON Employee.id = RoleMap.employee_id
        INNER JOIN Role ON RoleMap.role_id = Role.id
        WHERE Employee.tr_email = ?
        AND Employee.is_del = 0`;

事情是这样的。如果我将查询中的所有表名更改为与数据库中完全相同的大小写,那么我可以让它运行而不会出现错误(使用 Docker/Mysql Workbench)。例如,将查询中的

Employee
更改为小写
employee

但我不希望更改原来的查询。我不知道这是否只是 Docker 中的某些设置?或者在 Mysql Workbench 中?我尝试使用不同的排序规则设置我的架构,例如 utf8 和 ascii,但没有成功。也许我需要选择其他字符集类型?

顺便说一句,这是我运行的用于初始化 docker 容器的命令

docker run --name mysql_5 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.37
mysql node.js docker xampp mysql-workbench
2个回答
1
投票

您必须启用或告诉MySQL使用小写表名标识符区分大小写文档

例如

docker run --name mysql_5 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.37 --lower_case_table_names=1

0
投票

这对我有用!!!,谢谢!!!!

© www.soinside.com 2019 - 2024. All rights reserved.