庫名表名大小寫問題與sqlserver兼容的啟動配置方法
更新時間:2010年12月17日 21:38:15 作者:
庫名表名大小寫問題與sqlserver兼容的啟動配置方法,需要的朋友可以參考下。
將全局變量 lower_case_table_names 設(shè)置為1
實驗:
1.lower_case_tables_name=0的情況(Linux默認)
直接啟動mysql,在mytest庫中新建表MyTable和mytable
mysql> use mytest;
mysql> create table MyTable(id int not null,name varchar(10),dt date);
mysql> create table mytable(id int not null,name varchar(10),dt date);
mysql> show tables;
+------------------+
| Tables_in_mytest |
+------------------+
| MyTable |
| mytable |
+------------------+
默認情況下,可以同時創(chuàng)建mytable和MyTable兩個表
2.lower_case_tables_name=1的情況(我們需要設(shè)置成這種情況)
進入到etc目錄,編輯my.cnf文件
[root@MYSQLServer etc]# vi my.cnf
找到 [mysqld]
在它的全局變量的最后面加入一行:lower_case_table_names = 1
保存,退出,然后重新啟動mysql
[root@MYSQLServer etc]# service mysqld restart;
進入到mysql
[root@MYSQLServer mysql]# bin/mysql
mysql> use mytest;
mysql> select * from MyTable;
mysql> select * from mytable;
兩個查詢的結(jié)果一樣,都是查詢mytable表,而MyTable表已經(jīng)找不到了(可以看到,但查詢不到)
我們再試著創(chuàng)建MyTable表
mysql> create table MyTable(id int not null,name varchar(10),dt date);
ERROR 1050 (42S01): Table 'mytable' already exists
將得到表已經(jīng)存在的提示
同樣,我們可以試著創(chuàng)建MyTest庫
mysql> create database MyTest;
ERROR 1007 (HY000): Can't create database 'mytest'; database exists
也會得到庫已經(jīng)存在的提示
在這種情況下,表名和庫名都不區(qū)分大小寫了。
注意:在Unix中將lower_case_tables_name設(shè)置為1之前,重啟mysqld之前, 必須先將舊的數(shù)據(jù)庫名和表名轉(zhuǎn)換為小寫,否則設(shè)置后,將找不到以前的表。
(上面的實驗中,MyTable表在lower_case_tables_name=1時已經(jīng)找不到了)
實驗:
1.lower_case_tables_name=0的情況(Linux默認)
直接啟動mysql,在mytest庫中新建表MyTable和mytable
mysql> use mytest;
mysql> create table MyTable(id int not null,name varchar(10),dt date);
mysql> create table mytable(id int not null,name varchar(10),dt date);
mysql> show tables;
+------------------+
| Tables_in_mytest |
+------------------+
| MyTable |
| mytable |
+------------------+
默認情況下,可以同時創(chuàng)建mytable和MyTable兩個表
2.lower_case_tables_name=1的情況(我們需要設(shè)置成這種情況)
進入到etc目錄,編輯my.cnf文件
[root@MYSQLServer etc]# vi my.cnf
找到 [mysqld]
在它的全局變量的最后面加入一行:lower_case_table_names = 1
保存,退出,然后重新啟動mysql
[root@MYSQLServer etc]# service mysqld restart;
進入到mysql
[root@MYSQLServer mysql]# bin/mysql
mysql> use mytest;
mysql> select * from MyTable;
mysql> select * from mytable;
兩個查詢的結(jié)果一樣,都是查詢mytable表,而MyTable表已經(jīng)找不到了(可以看到,但查詢不到)
我們再試著創(chuàng)建MyTable表
mysql> create table MyTable(id int not null,name varchar(10),dt date);
ERROR 1050 (42S01): Table 'mytable' already exists
將得到表已經(jīng)存在的提示
同樣,我們可以試著創(chuàng)建MyTest庫
mysql> create database MyTest;
ERROR 1007 (HY000): Can't create database 'mytest'; database exists
也會得到庫已經(jīng)存在的提示
在這種情況下,表名和庫名都不區(qū)分大小寫了。
注意:在Unix中將lower_case_tables_name設(shè)置為1之前,重啟mysqld之前, 必須先將舊的數(shù)據(jù)庫名和表名轉(zhuǎn)換為小寫,否則設(shè)置后,將找不到以前的表。
(上面的實驗中,MyTable表在lower_case_tables_name=1時已經(jīng)找不到了)
相關(guān)文章
當(dāng)mysqlbinlog版本與mysql不一致時可能導(dǎo)致出哪些問題
這篇文章主要介紹了當(dāng)mysql服務(wù)器為mysql5.6時,mysqlbinlog版本不對可能導(dǎo)致出哪些問題,下面通過模擬2種場景分析此類問題,需要的朋友可以參考下2015-07-07Mysql?InnoDB?的內(nèi)存結(jié)構(gòu)詳情
這篇文章主要介紹了Mysql InnoDB的內(nèi)存結(jié)構(gòu)詳情,InnoDB存儲引擎的邏輯存儲結(jié)構(gòu)是什么呢,下面我們就一起進入文章了解更多詳細內(nèi)容吧,感興趣的小伙伴可以參考一下2022-05-05SELinux導(dǎo)致PHP連接MySQL異常Can''t connect to MySQL server的解決方法
這篇文章主要介紹了SELinux導(dǎo)致PHP連接MySQL異常Can't connect to MySQL server的解決方法,有2種,一是設(shè)置允許,二是關(guān)閉SELinux,需要的朋友可以參考下2014-07-07mysql 5.7更改數(shù)據(jù)庫的數(shù)據(jù)存儲位置的解決方法
隨著MySQL數(shù)據(jù)庫存儲的數(shù)據(jù)逐漸變大,已經(jīng)將原來的存儲數(shù)據(jù)的空間占滿了,導(dǎo)致mysql已經(jīng)鏈接不上了。所以要給存放的數(shù)據(jù)換個地方,下面小編給大家分享mysql 5.7更改數(shù)據(jù)庫的數(shù)據(jù)存儲位置的解決方法,一起看看吧2017-04-04mysql tmp_table_size優(yōu)化之設(shè)置多大合適
這篇文章主要介紹了mysql tmp_table_size優(yōu)化問題,很多朋友都會問tmp_table_size設(shè)置多大合適,其實既然你都搜索到這篇文章了,一般大于64M比較好,當(dāng)然你也可以可以根據(jù)自己的機器內(nèi)容配置增加,一般64位的系統(tǒng)能充分利用大內(nèi)存2016-05-05解決hibernate+mysql寫入數(shù)據(jù)庫亂碼
初次沒習(xí)hibernate,其中遇到問題在網(wǎng)上找的答案與大家共同分享!2009-07-07