可以設置的
在MySQL 中,資料庫和表對就於那些目錄下的目錄和文件。因而,操作系統的敏感性決定資料庫和表命名的大小寫敏感。這就意味著資料庫和表名在 Windows 中是大小寫不敏感的,而在大多數類型的 Unix 系統中是大小寫敏感的。
奇怪的是列名與列的別名在所有的情況下均是忽略大小寫的,而表的別名又是區分大小寫的。
要避免這個問題,你最好在定義資料庫命名規則的時候就全部採用小寫字母加下劃線的組合,而不使用任何的大寫字母。
或者也可以強制以 -O lower_case_table_names=1 參數啟動 mysqld(如果使用 --defaults-file=...\my.cnf 參數來讀取指定的配置文件啟動 mysqld 的話,你需要在配置文件的 [mysqld] 區段下增加一行 lower_case_table_names=1)。這樣MySQL 將在創建與查找時將所有的表名自動轉換為小寫字元(這個選項預設地在 Windows 中為 1 ,在 Unix 中為 0。從 MySQL 4.0.2 開始,這個選項同樣適用於資料庫名)。
當你更改這個選項時,你必須在啟動 mysqld 前首先將老的表名轉換為小寫字母。
② mysql中資料庫名字分大小寫嗎
分大小寫。
MySQL在Linux下資料庫名、表名、列名、別名大小寫規則是這樣的:資料庫名與表名是嚴格區分大小寫的;表的別名是嚴格區分大小寫的;列名與列的別名在所有的情況下均是忽略大小寫的;變數名也是嚴格區分大小寫的;MySQL在Windows下都不區分大小寫。
不區分大小寫在MySQL中,資料庫和表對就於那些目錄下的目錄和文件。因而,操作系統的敏感性決定資料庫和表命名的大小寫敏感。這就意味著資料庫和表名在Windows中是大小寫不敏感的,而在大多數類型的Unix系統中是大小寫敏感的。
應用環境
與其他的大型資料庫例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之處,但是這絲毫也沒有減少它受歡迎的程度。對於一般的個人使用者和中小型企業來說,MySQL提供的功能已經綽綽有餘,而且由於 MySQL是開放源碼軟體,因此可以大大降低總體擁有成本。
索引是一種特殊的文件(InnoDB 數據表上的索引是表空間的一個組成部分),它們包含著對數據表裡所有記錄的引用指針。索引不是萬能的,索引可以加快數據檢索操作,但會使數據修改操作變慢。
以上內容參考:網路-mySQL
③ MYSQL資料庫怎麼用
、使用SHOW語句找出在伺服器上當前存在什麼資料庫:mysql> SHOW DATABASES; +----------+ | Database | +----------+ | mysql | | test | +----------+ 3 rows in set (0.00 sec) 2、創建一個資料庫abccs
mysql> CREATE DATABASE abccs;
注意不同操作系統對大小寫的敏感。 3、選擇你所創建的資料庫
mysql> USE abccs
Database changed
此時你已經進入你剛才所建立的資料庫abccs. 4、 創建一個資料庫表 首先看現在你的資料庫中存在什麼表:
mysql> SHOW TABLES;
Empty set (0.00 sec)
說明剛才建立的資料庫中還沒有資料庫表。下面來創建一個資料庫表mytable:
我們要建立一個你公司員工的生日表,表的內容包含員工姓名、性別、出生日期、出生城市。mysql> CREATE TABLE mytable (name VARCHAR(20), sex CHAR(1), -> birth DATE, birthaddr VARCHAR(20)); Query OK, 0 rows affected (0.00 sec) 由於name、birthadd的列值是變化的,因此選擇VARCHAR,其長度不一定是20。可以選擇從1到255的任何長度,如果以後需要改變它的字長,可以使用ALTER TABLE語句。);性別只需一個字元就可以表示:"m"或"f",因此選用CHAR(1);birth列則使用DATE數據類型。 創建了一個表後,我們可以看看剛才做的結果,用SHOW TABLES顯示資料庫中有哪些表:mysql> SHOW TABLES; +---------------------+ | Tables in menagerie | +---------------------+ | mytables | +---------------------+ 5、顯示表的結構:mysql> DESCRIBE mytable; +-------------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+-------------+------+-----+---------+-------+ | name | varchar(20) | YES | | NULL | | | sex | char(1) | YES | | NULL | | | birth | date | YES | | NULL | | | deathaddr | varchar(20) | YES | | NULL | | +-------------+-------------+------+-----+---------+-------+ 4 rows in set (0.00 sec) 6、 往表中加入記錄 我們先用SELECT命令來查看錶中的數據:
mysql> select * from mytable;
Empty set (0.00 sec)
這說明剛才創建的表還沒有記錄。 加入一條新記錄:mysql> insert into mytable -> values (′abccs′,′f′,′1977-07-07′,′china′); Query OK, 1 row affected (0.05 sec) 再用上面的SELECT命令看看發生了什麼變化。我們可以按此方法一條一條地將所有員工的記錄加入到表中。 7、用文本方式將數據裝入一個資料庫表 如果一條一條地輸入,很麻煩。我們可以用文本文件的方式將所有記錄加入你的資料庫表中。創建一個文本文件「mysql.txt」,每行包含一個記錄,用定位符(tab)把值分開,並且以在CREATE TABLE語句中列出的列次序給出,例如:abccs f 1977-07-07 china mary f 1978-12-12 usa tom m 1970-09-02 usa 使用下面命令將文本文件「mytable.txt」裝載到mytable表中:mysql> LOAD DATA LOCAL INFILE "mytable.txt" INTO TABLE pet; 再使用如下命令看看是否已將數據輸入到資料庫表中:mysql> select * from mytable;
④ mysql資料庫大小寫敏感怎麼設置
1、linux下mysql安裝完後是默認:區分表名的大小寫,不區分列名的大小寫;
2、用root帳號登錄後,在/etc/my.cnf 中的[mysqld]後添加添加lower_case_table_names=1,重啟MYSQL服務,這時已設置成功:不區分表名的大小寫;
lower_case_table_names參數詳解:
lower_case_table_names = 0
其中 0:區分大小寫,1:不區分大小寫
MySQL在Linux下資料庫名、表名、列名、別名大小寫規則是這樣的:
1、資料庫名與表名是嚴格區分大小寫的;
2、表的別名是嚴格區分大小寫的;
3、列名與列的別名在所有的情況下均是忽略大小寫的;
4、變數名也是嚴格區分大小寫的;
MySQL在Windows下都不區分大小寫。
3、如果想在查詢時區分欄位值的大小寫,則:欄位值需要設置BINARY屬性,設置的方法有多種:
A、創建時設置:
CREATE TABLE T(
A VARCHAR(10) BINARY
);
B、使用alter修改:
ALTER TABLE `tablename` MODIFY COLUMN `cloname` VARCHAR(45) BINARY;
C、mysql table editor中直接勾選BINARY項。
⑤ mysql中大小寫敏感么
MySQL資料庫名和表名的大小寫敏感說明 :MySQL中的資料庫名和表名和操作系統有關,在windows操作系統中,不區分大小寫,在unix ,linux操作系統中,是區分大小寫的。其實可以到mysql存放數據的data目錄下進行查看,可以知道其實一個資料庫是對應表,一張表是對應一個 表名+.frm的文件 。 由於在windows操作系統中,文件名和目錄名是不區分大小寫的, 所以MySQL資料庫名和表名在windows下是大小寫不敏感的,而unix,linux則不然。 下面是MySQLmanual原文說明: In MySQL, databases and tables correspond to directories and files within those directories. Consequently, the case sensitivity of the underlying operating system determines the case sensitivity of database and table names. This means database and table names are case sensitive in Unix and case insensitive in Windows. 列名的大小寫說明:
⑥ 如何快速批量刪除Mysql資料庫中的數據表
一、使用phpmyadmin工具批量刪除mysql資料庫表
使用phpmyadmin資料庫管理工具進行刪除,這是一個傳統的方法,在任何php虛擬主機中,你都可以操作。下面是操作過程介紹:
1、登錄phpmyadmin。選擇你的mysql資料庫名進入——點擊結構——選擇您要刪除的數據表——「選中項」中選擇刪除,執行刪除表操作。如下圖:
PHPMYADMIN使用技巧:如何快速批量刪除Mysql資料庫中的數據表 image00114 150x150
二、使用php腳本完成批量刪除
無憂主機(www.51php.com)小編從網上找了一段php代碼,也可以幫我們快速實現刪除。如果你對phpmyadmin工具「敏感」,可以使用下面的方式來實現快速刪除mysql資料庫表。 在下面的代碼復制到記事本後,配置過程中你要注意幾個問題:
1、 正確配置你mysql資料庫信息。這個你可以直接咨詢你的空間商就可以獲得啦。
2、 正確設置要刪除的資料庫表前綴,這個非常重要,填寫錯誤,將操作錯誤。請你務必確認你的資料庫表前綴哦,資料庫表前綴你可以在phpmyadmin中查詢到。一般都是xx_開頭的。 設置好後,將這段代碼另存為.php文件(如51php.php)然後上傳到您空間的網站根目錄(public_html)。上傳完畢,直接用域名/51php.php,就可以刪除了。 代碼如下:
<?php
mysql_connect('localhost','資料庫用戶名','資料庫密碼');
mysql_select_db('資料庫名稱');
$rs=mysql_query('show tables');
while($arr=mysql_fetch_array($rs))
{
$TF=strpos($arr[0],'51php_');
if($TF===0){
$FT=mysql_query("drop table $arr[0]");
if($FT){
echo "$arr[0] 刪除成功!<br>";
}
}
}
?>
以上兩種方法都可批量刪除數據表,特別提醒一下,數據是無價的,操作數據表的時候一定要先做好備份。免得誤刪除數據是無法恢復的。如果您不會備份,麻煩您參考:
360度全方位講解無憂網站資料庫備份
Mysql資料庫管理利器:phpmyadmin詳細使用教程
⑦ MYSQL如何設置大小寫敏感
mysql資料庫名和表名的大小寫敏感說明
:mysql中的資料庫名和表名和操作系統有關,在windows操作系統中,不區分大小寫,在unix
,linux操作系統中,是區分大小寫的。其實可以到mysql存放數據的data目錄下進行查看,可以知道其實一個資料庫是對應表,一張表是對應一個
表名+.frm的文件
。
由於在windows操作系統中,文件名和目錄名是不區分大小寫的,
所以mysql資料庫名和表名在windows下是大小寫不敏感的,而unix,linux則不然。
下面是mysqlmanual原文說明:
in
mysql,
databases
and
tables
correspond
to
directories
and
files
within
those
directories.
consequently,
the
case
sensitivity
of
the
underlying
operating
system
determines
the
case
sensitivity
of
database
and
table
names.
this
means
database
and
table
names
are
case
sensitive
in
unix
and
case
insensitive
in
windows.
列名的大小寫說明:
⑧ 如何提高mysql的安全性
一 作為最流行的開源資料庫引擎,MySQL本身是非常安全的。即便如此,你仍然需要添加額外的安全層來保護你的MySQL資料庫不受攻擊,畢竟任何經營網上
在線業務的人都不想冒資料庫受到損壞的風險。接下來,我們將介紹一些實用的辦法,你可以利用這些辦法來保護MySQL資料庫,以便加強網站的安全性。
二 保護操作系統
確保操作系統的安全是保護資料庫安全的前提,因為如果整個運行環境不安全,那麼網站上所有的東西都脆弱,很容易暴露於攻擊者。為了維護操作系統和MySQL伺服器,你可以使用以下方法:
2.1 主機資料庫伺服器和web伺服器分別在不同的物理機器上,如果可能,在一個單獨的伺服器上運行資料庫伺服器,以預防由其他應用程序或服務的漏洞造成的伺服器問題。
安裝殺毒軟體,防火牆以及所有推薦的補丁和更新,防火牆能有效地把流量過濾到MySQL伺服器。為了更好的提高安全性,你還可以實行入口封鎖。
禁用所有不必要的服務,而且這樣的服務越少越好。
2.2 保護所有帳戶和密碼
攻擊者侵入MySQL資料庫最常見的一種方法是竊取有安全隱患的賬戶信息。為了降低出現這種風險的可能性,你不妨試一試下面的方法:
2.2.1. 給所有MySQL賬戶設置密碼
客戶程序並不是每次都能識別用戶,因此,如果用戶知道資料庫名但是沒有這個用戶名的密碼,那他可以指定任何其他用戶名連接到MySQL資料庫。讓每個MySQL用戶名都設置密碼,這樣一來,要想利用匿名賬戶建立連接將會變得很困難。
2.2.2. 不要使用根用戶運行MySQL伺服器
在安裝MySQL的時候,默認情況下創建了一個命名為「root」的管理用戶。每個人都知道這一點,所以攻擊者通常試圖侵入這個「root」用戶來獲取訪問許可權。為了保障這個重要帳戶的安全,你需要給它重新命名,然後更改一個長並且復雜的密碼。
2.2.3你可以在MySQL控制台使用mysql> RENAME USER root TO new_username;
指令給根用戶重命名,使用mysql> SET PASSWORD FOR 'username'@'%hostname' =
PASSWORD('newpassword');//這是很重要的一條命令
指令來修改密碼。
三. 減少管理員賬戶
管理員賬戶越多,風險越大,所以你應該保持盡可能最少的帳戶數量,只有為那些真正需要它的人創建賬戶。此外,記得要刪除未使用的和匿名的賬戶。如果你有很多管理員賬戶,那你需要定期檢查並清理那些不必要的賬戶。
四. 加強所有的密碼
除了管理員帳戶,你還需要加強所有其他用戶的密碼。你可以檢查所有的用戶名和密碼,必要的時候你還可以重置安全強度低的賬戶密碼。雖說這樣做會有點費時,但卻是有必要的。
五 限制資料庫許可權
每個用戶都應該被授予適當的許可權以便資料庫能夠正常運行,但這樣一來也加大了資料庫的安全隱患。就資料庫許可權而言,我們有以下幾點建議:
5.1. 不要授予非管理員用戶文件/高級/程序許可權
文件,高級和程序許可權都不應該被濫用。文件許可權讓用戶可以在文件系統中的任何一個地方編寫文件,而程序許可權讓用戶在任何時候都能夠查看伺服器活動,終止客戶端連接甚至更改伺服器操作。為了你的資料庫安全,這些許可權只能授予給管理員賬戶。
5.2. 限制或禁用顯示資料庫許可權
顯示資料庫特權可以用於收集資料庫信息,所以攻擊者通常利用它來竊取數據並准備進一步攻擊。你應該把這個許可權授予那些真正需要的人,或者直接禁用這個權
限,你只需要把skip-show-database添加到MySQL資料庫中的/etc/my.cnf配置文件中。對於Windows操作系統來說,則
需要添加到my.ini文件中。
5.3. 限制管理員和所有其他用戶的許可權
即使是管理員,也不要在同一賬戶中授予所有許可權。因此我們建議你最好降低管理員賬戶訪問數據的許可權。至於其他的用戶,你最好檢查所有他們擁有的許可權,以確保一切都是合適的。
六 刪除風險組件
MySQL資料庫的默認配置有一些不必要的組件,你可以考慮以下建議:
6.1. 禁用LOAD DATA LOCAL INFILE指令
這個命令允許用戶讀取本地文件甚至訪問其他操作系統上的文件,這可能幫助攻擊者收集重要的信息並利用應用程序的漏洞侵入你的資料庫。你需要做的是把set-variable=local-infile=0插入到MySQL資料庫的my.cnf文件中,來禁用這個指令。
6.2. 刪除測試資料庫
有一個默認的「測試」資料庫用於測試目的。由於這個資料庫有安全風險,匿名用戶也可以訪問,你應該使用mysql> DROP database test;指令盡快把它清除掉。
6.3. 刪除歷史文件
MySQL伺服器有一個歷史文件,它可以幫助你在安裝出錯的時候找到問題所在。歷史文件包含敏感信息,比如說密碼,如果這些信息被攻擊者獲得,那麼將會給
你的資料庫帶來巨大的安全隱患。在安裝成功後,歷史文件並沒有什麼用,因此你可以使用cat /dev/null >
~/.mysql_history指令來刪除文件當中的內容。
七 限制遠程訪問MySQL伺服器
對於大多數用戶來說,不需要通過不安全的開放網路來訪問MySQL伺服器。你可以通過配置防火牆或硬體,或者迫使MySQL只聽從localhost來限制主機。此外,需要SSH隧道才能進行遠程訪問。
八 如果你想僅僅從本地主機來限制用戶建立連接,你需要在在配置文件中添加bind-address=127.0.0.1。
8.1利用日誌記錄
啟用日誌記錄讓你可以檢測伺服器上的活動,這樣你就可以分析失敗的登錄嘗試和敏感文件的訪問記錄,以便了解是否存在向你的伺服器和資料庫發起的惡意活動。
你只需要把log =/var/log/mylogfile指令添加到MySQL配置文件中,就可以手動啟用日誌記錄功能。
8.2至於日誌記錄,需要注意以下兩點:
8.2.1日誌記錄僅適用於查詢數量有限的資料庫伺服器。對於信息量大的伺服器,這可能會導致高過載。
8.2.2由於「hostname.err」文件包含敏感數據表名和密碼,只有「root」和「mysql」才有訪問和記錄這個文件的許可權。
⑨ mysql資料庫名和表名可以用任意字元嗎
不可以。不能超過64個字元。
MySQL對命名資料庫和MySQL表命名有一個原則,名字可以由當前字元集中的任何字母數字字元組成,下劃線和美元符也可以。名字最長為64個字元。
因為資料庫和表的名字對應於目錄和文件名,伺服器運行的操作系統可能強加額外的限制,文件系統的大小寫敏感性影響到你如何命名和引用資料庫和表名。