MySQL中的表名区分大小写吗?

发布于 2024-11-10 02:35:18 字数 132 浏览 0 评论 0原文

MySQL中的表名区分大小写吗?

在我的 Windows 开发机器上,我拥有的代码能够查询我的表,这些表似乎都是小写的。当我部署到数据中心的测试服务器时,表名称似乎以大写字母开头。

我们使用的服务器都在Ubuntu上。

Are table names in MySQL case sensitive?

On my Windows development machine the code I have is able to query my tables which appear to be all lowercase. When I deploy to the test server in our datacenter the table names appear to start with an uppercase letter.

The servers we use are all on Ubuntu.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

咆哮 2024-11-17 02:35:19
  1. /etc/mysql/my.cnf 中找到该文件

  2. 通过添加以下行来编辑该文件:

    <前><代码> [mysqld]

    小写表名=1

  3. sudo /etc/init.d/mysql restart

  4. 运行mysqladmin -u root -p 变量| grep table 检查 lower_case_table_names 现在是否为 1

您可能需要重新创建这些表才能使其正常工作。

  1. Locate the file at /etc/mysql/my.cnf

  2. Edit the file by adding the following lines:

     [mysqld]
    
     lower_case_table_names=1
    
  3. sudo /etc/init.d/mysql restart

  4. Run mysqladmin -u root -p variables | grep table to check that lower_case_table_names is 1 now

You might need to recreate these tables to make it work.

时光病人 2024-11-17 02:35:19

请参阅此[文档][1]

Unix 上使用 lower_case_table_names=0,在 Windows 上使用 lower_case_table_names=2。
[1]:https://dev.mysql。 com/doc/refman/8.0/en/identifier-case-sensitivity.html

C:\Program Files\MySQL\MySQL Server XX\my.ini ->编辑

之后添加以下行

[mysqld] lower_case_table_names = 2

Refer This [Doc][1]

Use lower_case_table_names=0 on Unix and lower_case_table_names=2 on Windows.
[1]: https://dev.mysql.com/doc/refman/8.0/en/identifier-case-sensitivity.html

C:\Program Files\MySQL\MySQL Server X.X\my.ini -> Edit

Add the below line after [mysqld]

lower_case_table_names = 2

世界如花海般美丽 2024-11-17 02:35:19

在 MySQL 中,表名的大小写敏感度取决于操作系统和 lower_case_table_names 系统变量:

  • Windows:MySQL 默认情况下表名不区分大小写,因此 table_name 和 Table_Name 被视为相同。

  • Linux(包括Ubuntu):MySQL默认区分表名大小写,因此table_name和Table_Name被认为是不同的。

解决方案

在 Ubuntu MySQL 服务器上设置 lower_case_table_names=1:这使得 MySQL 将表名称视为不区分大小写,就像在 Windows 上一样。

在 Ubuntu 上更改 lower_case_table_names

  1. 打开 MySQL 配置文件(/etc/mysql/my.cnf 或 /etc/mysql/mysql.conf.d/mysqld.cnf)。
  2. 添加或修改行
    lower_case_table_names=1
  3. 重新启动 MySQL
    sudo服务mysql重启

In MySQL, the case sensitivity of table names depends on the operating system and the lower_case_table_names system variable:

  • Windows: MySQL is case-insensitive with table names by default, so table_name and Table_Name are treated the same.

  • Linux (including Ubuntu): MySQL is case-sensitive with table names by default, so table_name and Table_Name are considered different.

Solotion for this

Set lower_case_table_names=1 on your Ubuntu MySQL server: This makes MySQL treat table names as case-insensitive, like on Windows.

To change lower_case_table_names on Ubuntu

  1. Open the MySQL configuration file (/etc/mysql/my.cnf or /etc/mysql/mysql.conf.d/mysqld.cnf).
  2. Add or modify the line
    lower_case_table_names=1
  3. Restart MySQL
    sudo service mysql restart
-小熊_ 2024-11-17 02:35:18

一般来说:

数据库和表名称在 Windows 中不区分大小写,而在大多数 Unix 版本中区分大小写。

在MySQL中,数据库对应于数据中的目录
目录。数据库中的每个表至少对应一个
数据库目录中的文件。因此,区分大小写
底层操作系统在区分大小写方面发挥着一定作用
数据库和表名称。

人们可以使用系统变量lower_case_table_names(在[mysqld]下的my.cnf配置文件中)配置表名称在磁盘上的存储方式。

阅读以下部分:10.2.2 标识符区分大小写 了解更多信息。

In general:

Database and table names are not case sensitive in Windows, and case sensitive in most varieties of Unix.

In MySQL, databases correspond to directories within the data
directory. Each table within a database corresponds to at least one
file within the database directory. Consequently, the case sensitivity of the
underlying operating system plays a part in the case sensitivity of
database and table names.

One can configure how tables names are stored on the disk using the system variable lower_case_table_names (in the my.cnf configuration file under [mysqld]).

Read the section: 10.2.2 Identifier Case Sensitivity for more information.

若水般的淡然安静女子 2024-11-17 02:35:18

数据库和表名称在 Windows 中不区分大小写,而在大多数 Unix 或 Linux 版本中区分大小写。

要解决此问题,请将 lower_case_table_names 设置为 1

lower_case_table_names=1

这将使所有表都小写,无论您如何编写它们。

Database and table names are not case sensitive in Windows, and case sensitive in most varieties of Unix or Linux.

To resolve the issue, set the lower_case_table_names to 1

lower_case_table_names=1

This will make all your tables lowercase, no matter how you write them.

夜吻♂芭芘 2024-11-17 02:35:18

它取决于 lower_case_table_names 系统变量:

show variables where Variable_name='lower_case_table_names';

有三个可能的值:

  • 0 - 在 < 中指定的字母大小写code>CREATE TABLE 或 CREATE DATABASE 语句。名称比较区分大小写。
  • 1 - 表名称以小写形式存储在磁盘上,名称比较不区分大小写。
  • 2 - 在CREATE TABLECREATE DATABASE语句中指定的字母大小写,但MySQL在查找时将它们转换为小写。
    名称比较不区分大小写。

文档

It depends upon lower_case_table_names system variable:

show variables where Variable_name='lower_case_table_names';

There are three possible values for this:

  • 0 - lettercase specified in the CREATE TABLE or CREATE DATABASE statement. Name comparisons are case sensitive.
  • 1 - Table names are stored in lowercase on disk and name comparisons are not case sensitive.
  • 2 - lettercase specified in the CREATE TABLE or CREATE DATABASE statement, but MySQL converts them to lowercase on lookup.
    Name comparisons are not case sensitive.

Documentation

手长情犹 2024-11-17 02:35:18

MySQL 中的表名是文件系统条目,因此如果底层文件系统是大小写,那么它们是不区分大小写的。

Table names in MySQL are file system entries, so they are case insensitive if the underlying file system is.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文