MySQL安裝及應用java
MySQL簡介:mysql
早期由Mysql AB公司維護和開發,後由SUN公司收購,而SUN公司又被Oracle公司收購!c++
MySQL編譯安裝程序員
1.準備工做:sql
(1)爲了不端口衝突、程序衝突等現象,建議查詢並卸載Mysql安裝狀況,確認沒有rpm方式無安裝後,以編譯來安裝。shell
(2)掛載光盤安裝ncurses-devel包。數據庫
(3)MySQL 5.5須要cmake編譯安裝,因此先安裝cmake包。安全
若出現下圖錯誤,則安裝gcc軟件包(yum -y install gcc*),缺乏gcc,c++編譯環境。服務器
2.源碼編譯及安裝網絡
解包並安裝Mysql。
上述配置命令中,各選項含義以下:
-DCMAKE_INSTALL_PREFIX:指定將myqsl數據庫程序安裝到某目錄下。
-DSYSCONFDIR:指定初始化參數文件目錄。
-DDEFAULT_CHARSET:指定默認使用的字符集編碼,如utf8。
-DDEFAULT_COLLATION:指定默認使用的字符集校對規則,utf8_general_ci是適用於utf-8的通用規則。
-DWITH_EXTRA-CHARSETS:指定額外支持的其它字符集編碼。
3.安裝後的其餘調整
(1)建立程序用戶:爲了增強數據庫服務的權限控制,建議使用專門的運行用戶,如mysql,此用戶不須要登錄,也不須要創建宿主目錄。
(2)創建配置文件
在Mysql源碼目錄中的support-files文件夾下,提供了適合不一樣負載數據庫的樣本配置文件,若不肯定應用規模,通常選擇my-medium.cnf便可,該文件知足大多數企業的中等應用需求。
輸入「y」,覆蓋原有文件。
(3)初始化數據庫
爲了可以正常使用Mysql數據庫系統,應以運行用戶mysql的身份執行初始化腳本mysql_install_db,指定數據存放目錄等。
提示OK,表示成功
(4)設置環境變量
爲了在任何目錄下使用MySQL命令,須要在/etc/profile設置環境變量。
可使用echo $PATH 命令驗證效果
4.添加系統服務
若但願添加mysql爲系統服務,以便經過chkconfig進行管理,能夠直接使用源碼包中提供的服務腳本。找到suppor-files文件夾下的mysql.server腳本文件,複製到/etc/rc.d/init.d/mysql,更名爲mysql,並設置執行權限
n 訪問MySQL數據庫
1. 登陸到Mysql服務器
通過安裝後的初始化過程,MySQL數據庫的默認管理員帳號爲root,密碼爲空。若要以未設置密碼的root用戶登陸本機的MySQL數據庫,能夠執行如下操做:
固然,若是登陸的是其餘的MySQL服務器,則須要使用「-h」選項來指定目標主機地址;在有密碼的狀況下,還應使用「-p」選項來進行密碼校驗。例如,若要鏈接到MySQL服務器173.16.16.5,並以用戶adm411進行有密碼的驗證,能夠執行如下操做。
2. 執行MySQL操做語句
驗證成功後將會進入到提示符爲「mysql>」的數據庫操做環境,用戶能夠輸入各類操做語句對數據庫進行管路。每一條MySQL操做語句能夠分號「;」表示結束,輸入時不區分大小寫,但習慣上將MySQL語句中的關鍵字部分使用大寫。
例如:以root用戶登陸到「mysql>」環境後,執行「show master logs;」語句能夠查看到當前數據庫服務的日誌文件信息。
3. 退出「mysql>」操做環境
在「mysql>」操做環境中,執行「exit」或「quit」能夠退出mysql命令工具,返回到原來的shell環境。
n 查看數據庫結構
1. 查看當前服務器中有哪些庫
show database 語句:用於列出當前MySQL服務器中包含的庫。經初始化後的MySQL服務器,默認創建了三個庫:test、mysql和information_schema(其中mysql包含了用戶認證相關的表),執行如下操做能夠進行查看。
2. 查看當前使用的庫中有哪些表
show tables 語句:用於列出當前所在的庫中包含的表。在操做以前,須要先使用use語句切換到所使用的庫。
MySQL數據庫的數據文件默認存放在/usr/local/mysql/var目錄下,每一個數據庫對應一個子目錄,用於存儲數據表文件。每個數據表對應爲三個文件,後綴名分別爲「.from」、「.MYD」和「.MYI」。
3. 查看錶的結構
describe語句:用於顯示錶的結構,即組成表的各字段(列)的信息。須要指定「庫名.表名」做爲參數;若只指定表名參數,則需先經過「use」語句切換到目標庫(PS:也可使用desc)。
n 建立及刪除庫和表
1. 建立新的表
create database語句:用於建立一個新的庫,需指定數據庫名稱做爲參數。
剛建立的數據庫是空的,其中不包含任何表,在/usr/local/mysql/var/目錄下會自動生成一個與新建的庫名相同的空文件夾。
2. 建立新的表
create table 語句:用於在當前庫中建立新的表,需指定數據表名稱做爲參數,並定義該表格所使用的名字段。基本格式以下所示:
create table 表名 (字段1名稱類型, 字段2名稱 類型, ……, primary key (主鍵名))
考慮到字符集兼容性,最好不要使用中文字段名。
3. 刪除一個數據表
drop table語句:用於刪除庫中的表,須要指定「庫名.表名」做爲參數;若只指定表名參數,則需先經過「use」語句切換到目標庫。
4. 刪除一個數據庫
drop database語句:用戶刪除指定的庫,須要指定庫名做爲參數。
n 管理表中的數據記錄
1. 插入數據記錄
insert into 表名(字段1, 字段2, ……) values(字段1的值,字段2的值, ……)
在插入新的數據記錄時,若是這條記錄完整包括表中全部字段的值,則插入語句中指定字段的部分能夠省略。
爲用戶設置密碼時,若是使用「password」,那麼查看到的用戶密碼則是加密的;若是不使用「password」,那麼查看到的用戶密碼則是明文的。
2. 查詢數據記錄
select語句:用於從指定的表中查找符合條件的數據記錄。MySQL數據庫支持標準的SQL查詢語句,語句格式以下所示:
select 字段名1,字段名2,…… from 表名 where 條件表達式
表示全部字段時可使用通配符「*」,若要列出全部的數據記錄則能夠省略where條件子句。
當須要根據特定的條件查詢記錄時,where條件字句則是必不可少的。
3. 修改數據記錄
update語句:用於修改,更新表中的數據記錄。語句格式以下所示:
update 表名 set 字段名1=字段值1 [,字段名2=字段值2] where 條件表達式
在MySQL數據庫服務器中,用於訪問數據庫的各類用戶(如root)信息都保存在mysql庫的user表中,熟練的管理員能夠直接修改其中的數據記錄。例如:如下操做能夠將數據庫用戶root的密碼設爲「123456」,當再次使用「mysql–u root –p」訪問MySQL數據庫服務器時,必須使用此密碼進行驗證。
如果在Linux命令行環境中執行,還可使用mysqladmin工具來設置密碼。
4. 刪除數據記錄
delete語句:用於刪除表中指定的數據記錄。語句格式以下所示:
delete from 表名 where 條件表達式
在MySQL數據庫服務器中,默認添加了從本機訪問數據庫的空用戶(user、password均爲空)。基於數據庫安全性考慮,應該刪除這些空用戶。
n 數據庫的用戶受權
MySQL數據庫的root用戶帳號擁有對全部庫、表的所有權限,頻繁使用root帳號會給數據庫服務器帶來必定的安全風險。實際工做中,一般會創建一些低權限的用戶,只負責一部分庫、表的管理和維護操做,甚至能夠對查詢、修改、刪除記錄等各類操做作進一步的細化限制,從而將數據庫的風險降至最低。
1. 授予權限
grant語句:專門用來設置數據庫用戶的訪問權限。當指定的用戶名不存在時,grant語句將會建立新的用戶,不然grant語句用於修改用戶的信息。語句格式以下:
grant 權限列表 on 庫名.表名 to 用戶名@來源地址 [ identified by ‘密碼’]
使用grant語句時,須要注意的事項以下:
? 權限列表:用於列出受權使用的各類數據庫操做,以逗號進行分隔。例如:「select、insert、update」。使用「all」表示全部權限,可受權執行任何操做。
? 庫名.表名:用於指定受權操做的庫和表的名稱,其中可使用通配符「*」。
? 用戶名@來源地址:用於指定用戶名稱和容許訪問的客戶機地址,即誰能鏈接,誰從哪裏鏈接。來源地址能夠是域名、IP地址,還可使用「%」通配符,表示某個區域或網段內的全部地址。
? identified by:用於設置用戶鏈接數據庫時所使用的密碼字符串。在新建用戶時,若省略「identified by」部分,則用戶的密碼將爲空。
在企業服務器的應用中,數據庫與網站服務器有時候是相互獨立的。所以在MySQL服務器中,應根據實際狀況建立新的用戶受權,容許受權用戶從網站服務器訪問數據庫。一般的作法是,建立一個或幾個網站專用的庫,並授予全部的權限,限制訪問的來源IP地址。
2. 查看權限
show grants語句:專門用來查看數據庫用戶的受權信息,經過for字句可指定查看的用戶對象(必須與受權時使用的對象名稱一致)。語句格式以下所示:
show grants for 用戶名@來源地址
其中usage權限對應的受權記錄中包含了用戶的鏈接密碼字串。
3. 撤銷權限
revoke語句:用於撤銷指定用戶的數據庫權限,撤銷權限後的用戶仍然能夠鏈接到MySQL服務器,但將被禁止執行對應的數據庫操做。語句格式所示:
revoke 權限列表 on 數據庫名.表名 from 用戶名@來源地址
掌握了上述各類MySQL管理命令的使用,已經能夠知足大多數網絡管理員(非專職數據庫管理員)的工做須要。若但願瞭解更多關於MySQL語句的知識,能夠參閱MySQL 5.1的在線參考手冊,其地址位於http://dev.mysql.com/doc/refman/5.1/zh。
n 數據庫的備份與恢復
及時備份數據庫是信息安全管理的重要工做內容之一。MySQL數據庫的備份能夠採用多種方式,例如直接打包數據庫文件夾/var/local/mysql/var/,或者使用專用的導出工具。
1. 備份數據庫
經過mysqldump命令能夠將指定的庫、表或所有的庫導出爲SQL腳本,便於該命令在不一樣版本的MySQL服務器上使用。例如,當須要升級MySQL服務器時,能夠先用mysqldump命令將原有庫信息導出,而後直接在升級後的MySQL服務器中導入便可。
1) 執行導出操做
使用mysqldump命令導出數據時,默認會直接在終端顯示,若要保存到文件,還須要結合shell的「>」重定向輸出操做。命令格式以下所示:
格式1:導出指定庫中的部分表
mysqldump [選項] 庫名 [表名1] [表名2] …… > /備份路徑/備份文件名
格式2:導出一個或多個完整的庫(包括其中全部的表)
mysqldump [選項]- -databases 庫名1 [庫名2] …… > /備份路徑/備份文件名
格式3:備份MySQL服務器中全部的庫
mysqldump [選項] - -all-databases >/備份路徑/備份文件名
其中,經常使用的選項包括「-u」、「-p」,分別用於指定數據庫用戶名、密碼。例如,如下操做分別使用格式一、格式2,將mysql庫中的user表導出爲mysql-user.sql文件,將整個auth庫導出爲auth.sql文件,全部操做均已root用戶的身份進行驗證。
若須要備份整個MySQL服務器中的全部庫,應使用格式3。當導出的數據量較大時,能夠添加「- -opt」選項以優化執行速度。例如:如下操做將建立備份文件all-data.sql,其中包括MySQL服務器中的全部庫。
2) 查看備份文件內容
經過mysqldump工具導出的SQL腳本是文本文件,其中「/*……*/」部分或以「- -」開頭的行表示註釋信息。使用grep、less、cat等文本工具能夠查看腳本內容。
2. 恢復數據庫
使用mysqldump命令導出的SQL備份腳本,在須要恢復時能夠經過mysql命令對其進行導入操做。命令格式以下所示:
mysql[選項] [庫名] [表名] </備份路徑/備份文件名
當備份文件中只包含表的備份,而不包括建立庫的語句時,則執行導入操做時必須指定庫名,且目標庫必須存在。例如:如下操做能夠從備份文件mysql-user.sql中將表導入到test庫。
若備份文件中已經包括完整的庫信息,則執行導入操做時無需指定庫名。例如:如下操做能夠從備份文件all-data.sql恢復其中的全部庫。
本文轉自:程序員鼓勵師