标题:
忽略Linux下MariaDB10.3的表名的英文字母大小写
[打印本页]
作者:
admin
时间:
2022-7-12 09:11
标题:
忽略Linux下MariaDB10.3的表名的英文字母大小写
笺注:MariaDB的安装可参考
CentOS8安装LNMP+phpMyAdmin
MariaDB的版本信息: MariaDB [(none)]> select version(); +-----------------+ | version() | +-----------------+ |
10.3.17
-MariaDB | +-----------------+ 1 row in set (0.000 sec) MariaDB [(none)]> 默认情况下,Linux下MariaDB的表名是区分英文字母大小写: MariaDB [(none)]>
show variables like '%low%';
+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+ | Variable_name | Value | +------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+ | innodb_disallow_writes | OFF | | log_slow_admin_statements | ON | | log_slow_disabled_statements | sp | | log_slow_filter | admin,filesort,filesort_on_disk,filesort_priority_queue,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk | | log_slow_rate_limit | 1 | | log_slow_slave_statements | ON | | log_slow_verbosity | | | low_priority_updates | OFF | | lower_case_file_system | OFF | |
lower_case_table_names | 0
| | max_allowed_packet | 16777216 | | slave_max_allowed_packet | 1073741824 | | slow_launch_time | 2 | | slow_query_log | OFF | | slow_query_log_file | redhat8-slow.log | +------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+ 15 rows in set (0.002 sec) MariaDB [(none)]> 注释:lower_case_table_names =
0
测试: MariaDB [(none)]> create database data1; Query OK, 1 row affected (0.001 sec) MariaDB [(none)]> use data1; Database changed MariaDB [data1]> MariaDB [data1]> create table
Table_1
(id int); Query OK, 0 rows affected (0.101 sec) MariaDB [data1]> MariaDB [data1]> select * from
Table_1
;
Empty set (0.001 sec)
MariaDB [data1]> select * from
table_1
;
ERROR 1146 (42S02): Table 'data1.table_1' doesn't exist
MariaDB [data1]> ############ ############ 修改MariaDB的主配置文件,忽略表名的英文字母的大小写: [root@redhat8 ~]# vi /etc/my.cnf 在
[mysqld]
下添加:
lower_case_table_names = 1
效果如下: [root@redhat8 ~]# cat /etc/my.cnf |grep -A2 "mysqld]"
[mysqld]
lower_case_table_names = 1
port = 3306 [root@redhat8 ~]# 重启MariaDB:(重启成功了) [root@redhat8 ~]# systemctl restart mysqld [root@redhat8 ~]# 更改已经生效: MariaDB [(none)]>
show variables like '%low%';
+------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+ | Variable_name | Value | +------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+ | innodb_disallow_writes | OFF | | log_slow_admin_statements | ON | | log_slow_disabled_statements | sp | | log_slow_filter | admin,filesort,filesort_on_disk,filesort_priority_queue,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk | | log_slow_rate_limit | 1 | | log_slow_slave_statements | ON | | log_slow_verbosity | | | low_priority_updates | OFF | | lower_case_file_system | OFF | |
lower_case_table_names | 1
| | max_allowed_packet | 1048576 | | slave_max_allowed_packet | 1073741824 | | slow_launch_time | 2 | | slow_query_log | OFF | | slow_query_log_file | redhat8-slow.log | +------------------------------+--------------------------------------------------------------------------------------------------------------------------------------+ 15 rows in set (0.002 sec) MariaDB [(none)]> 注释:lower_case_table_names =
1
再次测试: MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ |
data1
| | information_schema | | mysql | | performance_schema | +--------------------+ 4 rows in set (0.001 sec) MariaDB [(none)]> MariaDB [(none)]> use data1; Database changed MariaDB [data1]> MariaDB [data1]> show tables; +-----------------+ | Tables_in_data1 | +-----------------+ |
Table_1
| +-----------------+ 1 row in set (0.001 sec) MariaDB [data1]> MariaDB [data1]> select * from Table_1;
ERROR 1146 (42S02): Table 'data1.table_1' doesn't exist
MariaDB [data1]> MariaDB [data1]> select * from table_1;
ERROR 1146 (42S02): Table 'data1.table_1' doesn't exist
MariaDB [data1]> 解决方法: 删除库data1: MariaDB [data1]> drop database data1; Query OK, 1 row affected (0.007 sec) MariaDB [(none)]> MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | +--------------------+ 3 rows in set (0.000 sec) MariaDB [(none)]> 重新创建库data1: MariaDB [(none)]> create database data1; Query OK, 1 row affected (0.001 sec) 切换到库data1: MariaDB [(none)]> use data1; Database changed 至此,MariaDB的表名不区分英文字母大小写了: MariaDB [data1]> create table
Table_1
(id int);
Query OK, 0 rows affected (0.358 sec)
MariaDB [data1]> MariaDB [data1]> select * from
Table_1
;
Empty set (0.001 sec)
MariaDB [data1]> MariaDB [data1]> select * from
table_1
;
Empty set (0.000 sec)
MariaDB [data1]> 不切换到库data1,也可以指定表名: MariaDB [(none)]> select * from
data1.Table_1
; Empty set (0.001 sec) MariaDB [(none)]> MariaDB [(none)]> select * from
data1.table_1
; Empty set (0.000 sec) MariaDB [(none)]> 查看库data1的表Table_1的表结构: MariaDB [(none)]> desc
data1.Table_1
; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | id | int(11) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 1 row in set (0.001 sec) MariaDB [(none)]> MariaDB [(none)]> desc
data1.table_1
; +-------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+---------+------+-----+---------+-------+ | id | int(11) | YES | | NULL | | +-------+---------+------+-----+---------+-------+ 1 row in set (0.001 sec) MariaDB [(none)]> 相关文章:
忽略Linux下MySQL5.5的表名的英文字母大小写
欢迎光临 blog.zhuohua.store (http://blog.zhuohua.store/)
Powered by Discuz! 7.2