第十八章 數據庫服務器

一. 數據庫服務器的基本概念

1. 數據庫相關概念的定義

數據

數據是一種描述事物符號記錄

數據庫

數據庫是經過計算機整理的、存儲在一個或多個文件中的、有組織的、可共享的數據集合

數據庫管理系統

數據庫管理系統是位於用戶和操作系統之間的用於管理數據庫的應用軟件

數據庫系統

數據庫系統是數據庫、數據庫管理系統、數據庫管理系統運行時所需軟硬件及相關人員的集合

數據庫服務器

運行數據庫管理系統可以實現網絡分佈式存儲的主機稱爲數據庫服務器

2. 數據庫模型的分類

關係數據庫

層次數據庫

網狀數據庫

面向對象數據庫

3. Linux下的數據庫管理系統

企業級服務器

Oracle

Sybase

DB2

中小型服務器

PostgreSQL

MySQL

4. SQL簡介

SQL(結構化查詢語言)是一種綜合、通用、功能極強且簡潔易用的關係數據庫語言,可以應用於多種數據庫管理系統(OracleSQL ServerMysqlPostgresql)和多種開發工具(VBVCDEPHIPB)中

5. DBA(數據庫管理員)的職責

服務器的啓動、關閉、維護及優化

用戶賬號的管理

日誌管理

數據庫的備份和恢復

二. MySQL基礎

1. MySQL簡介

MySQL是一種精巧的、多用戶和多線程的中小型SQL數據庫系統,可以實現網絡的分佈式存儲。

2. MySQL的特點

支多線程和多CPU

沒有內存溢出漏洞

支持多種語言利用MySQLAPI進行開發

可以運行在不同平臺上

提供多種數據類型

支持ODBCSSL

3. MySQL的安裝方法

方法一:RPM包安裝方法

//放入第二安裝光盤,安裝MYSQL所需的RPM

#rpm  -ivh  perl-CGI-2.81-88.i386.rpm

#rpm  -ivh  perl-DBI-1.32-5.i386.rpm

#rpm   -ivh  perl-DBD-MySQL-2.1021-3.i386.rpm

//安裝mysqlrpm

#rpm  -ivh mysql-3.23.54a-11.i386.rpm

#rpm  -ivh mysql-server-3.23.54a-11.i386.rpm

#rpm  -ivh mysql-devel-3.23.54a-11.i386.rpm

方法二:編譯安裝方法

#tar  -xzvf  mysql-3.23.54a.tar.gz

#cd  mysql.3.23.54a

#./configure  --prefix=/usr/local/mysql

#make

#make  install

相關文件:

safe_mysqld

用於以安全方式啓動mysqld守護進程的腳本

mysql

基於命令行的mysql客戶端連接程序

mysql_install_db

用於初始化系統的數據庫

mysqladmin

mysql的管理程序

myisamchk

用於檢查、優化和修復mysql中的各個表

mysqlshow

用於顯示數據庫、表、列和索引等信息

mysqldump

將數據庫的數據到一個文本文件中

mysqlimport

將文本文件導入到數據庫中

4. 啓動服務

方法一:

#service   mysql  start

方法二:

#/etc/init.d/mysqld   start

三. Mysql服務器管理

1. 認識系統數據庫

mysql服務器默認情況下自建兩個系統數據庫,分別是:

mysql庫:存放mysql服務器相關設置參數和用戶權限分配等信息,當啓動mysql服務器時,會自動讀取該庫中的信息

test庫:供用戶學習所用

2. 連接服務器的方法

客戶機可以通過客戶端連接工具,連接到服務器上從而進行相應的管理操作,具體操作方法如下:

#mysql  [ -h 主機名]  [-u  用戶名]  [ -p 密碼]  [數據庫名]

實例:

#mysql 

表示使用當前登錄系統的用戶連接本機中mysql服務所建立的mysql數據庫

#mysql  -h  www.abc.com  -u  admin   -p linuxadmin   student

表示使用admin用戶連接www.abc.com 服務器中student

注:(1)當用mysql連接工具連接到服務器時,提示可能會出現以下情況:

mysql>

表示準備好接受新命令

mysql->

表示等待多行命令的下一行

mysql '>

表明一個一個以單引號“'”開臺的字符串尚示以單引號“'”結束

mysql ">

表明一個一個以雙引號<">臺的字符串尚示以雙引號<">結束

(2)退出mysql可以使用命令\q

3. 利用mysql客戶工具管理mysql服務器的數據庫

(1)建立數據庫

方法:

#mysql

mysql>CREATE  DATABASE 數據庫名;

實例:

#mysql

mysql>CREATE   DATABASE   emple;

(2)顯示服務器中己建立的數據庫名稱

方法:

#mysql

mysql>show  databases ;

注:在shell直接運行mysqlshow也可以顯示己建立數據庫名稱

(3)刪除數據庫

方法:

#mysql 

mysql>DROP   DATABASE  數據庫名;

實例:

#mysql

mysql>DROP  DATABASE  student

(4)打開數據庫

方法:

#mysql

mysql>use  庫名;

實例:

#mysql

mysql>use    emple

4. 數據表的管理

1)建立表

方法:

#mysql

mysql>CREATE   TABLE  表名(字段1  類型,

mysql(>字段2    類型,

mysql(>字段3    類型

..........................

..........................

mysql(>字段n        類型)

實例:

#mysql 

mysql>CREATE  TABLE  users  (userid   char(6),

mysql(>name   char(20),

mysql(>password   char(10));

2) 刪除表

方法:

#mysql

mysql>DROP  TABLE  表名;

實例:

#mysql 

mysql>DROP  TABLE   student;

3) 查看錶中的數據

方法:

#mysql  

mysql>SELECT  字段 [,字段.....] FROM  表名 [WHERE  條件];

實例:

#mysql

mysql>SELECT  *  FROM  emple;

4) 查看錶結構

方法:

#mysql

mysql>describe  表名;

實例:

#mysql

mysql>use  users;

mysql>describe   student;

5) 顯示數據庫中己建立的表名

#mysql

mysql>show  tables;

6) 向表中添加數據

方法:

#mysql

mysql>INSERT  INTO  表名(字段名[,字段名....])   VALUES(值[,值.........]);

實例:

#mysql

mysql>use   users;

mysql>INSERT  INTO  student    VALUES  (‘0001’,’u1’,’u1pass’);

7) 刪除表中的數據

方法:

#mysql

mysql>delect  from  表名  [where   條件];

實例:

#mysql

mysql>use  users;

mysql>delect   from   student ;

8) 修改表中的數據

方法:

#mysql

mysql>update   表名  set  字段=值 where  條件;

實例:

#mysql

mysql>use   users;

mysql>update  student  set  password=’abcefg’  where  userid=’0001’;

5. 索引管理

1) 建立索引

方法:

#mysql

mysql>CREATE  INDEX  索引名   ON 表名(列名)

實例:

#mysql

mysql>use  users

mysql>CREATE   INDEX  in1  ON  student (username);

2) 顯示索引信息

方法:

#mysql 

mysql>show  index  from 表名

實例:

#mysql

mysql>use   users;

mysql>show   index  from  student;

3) 刪除索引

方法:

#mysql

mysql>DROP   INDEX 索引名  ON  表名;

實例:

#mysql

mysql>use  users

mysql>DROP  INDEX  in1  ON  student;

6. 用戶管理

mysql數據庫用戶與LINUX系統用戶是相互獨立,它是用系統庫mysqluesr表來存放用戶信息的;當客戶機試圖連接服務器時必須提供相應用戶和口令才允許連接,此時mysql服務器通過檢索user表進行身份驗證,下面介紹用戶管理的相關操作:

1)建立用戶

方法:

#mysql

mysql>INSERT INTO  user(host,user,password)  VALUES (‘主機名’,’用戶名’,PASSWORD(‘密碼’));

實例:

#mysql 

mysql>INSERT  INTO  user host,user,password) VALUES (‘%’,’m1’,PASSWORD(’m1admin’);

用此種方法建立用戶可以連接服務器中,但不能對任何庫進行相應的操作

2)刪除用戶

#mysql

mysql>delete   from  表名    [where  條件]

3)修改密碼

#mysqladmin  -u 用戶名  password  ‘密碼’

7. 權限管理

客戶機使用某個用戶連接到服務器上進行相關操作時,服務器將驗證客戶機身份是否有權進行此操作,數據庫權限主要有以下幾種:

select  讀取表的數據

insert  向表中插入數據

update  更新表中的數據

delete  刪除表中的數據

index   創建或刪除表的索引

alter   修改表的結構

create  創建新的數據庫和表

drop  刪除現存的數據庫和表

grant  將自己擁有的某些權限授予其他用戶

file   在數據庫服務器上讀取和寫入文件

reload  重新裝載授權表

shutdown  停止或關閉mysql服務

process   查看當前執行的查詢

1) 添加用戶權限

方法:

#mysql 

mysql>grant   權限 on 對象   to   用戶名   [identified  by   ‘密碼’]  [with grant option]

實例:

#mysql

mysql>grant   all  on  *.*   to   m1;

2) 回收用戶權限

方法:

#mysql

mysql>revoke  權限   on   對象   from  用戶名;

實例:

#mysql 

mysql>revoke   insert   on   db1.t1   from u1;

四. Mysql的日誌管理和數據庫備份、恢復

1. Mysql數據目錄的結構

通過rpm包安裝的mysql數據目錄爲/var/lib/mysql,在該目錄中存放的是數據庫的數據目錄,每個數據目錄中存放的文件主要包括:

*.frm     包含表結構描述信息

*.MYD  包含表的數據信息

*.MYI   包含數據文件中任何索引的索引樹,無論該表有無索引,索引文件都存在

2. Mysql日誌文件分類

1)錯誤日誌

錯誤日誌作爲mysql服務器標準錯誤輸出的重定向,包含了服務器寫入標準錯誤輸出設備的所有消息,同時還包含了mysql服務的啓動和關閉事件,該類日誌記錄在/var/log/mysql.log文件中

2) 常規日誌

常規日誌用來記錄有關mysql服務器運行的常規信息,包括用戶的連接、查詢以及其他各種事件;該日誌文件存放在/var/lib/mysql目錄中。

3) 更新日誌

更新日誌用來記錄修改數據庫的查詢信息,包括insert、update、delete、replace等所有涉及數據庫修改的SQL語句的查詢記錄;該類日誌存放在/var/log/mysql目錄中。

3. 配置日誌文件的路徑

#vi   /etc/my.cnf

[mysqld]

…………..

…………

……………

………………..

[safe_mysqld]

…………….

err-log=/var/log/mysqld.log    //指定錯誤文件的路徑

………………….

log                        //啓用常規日誌功能

log-update                  //啓用更新日誌功能。

…………….

……………………

4. 查看日誌

日誌文件爲一般的文本文件,所以使用任意一種中文本編輯軟件或文本輸出工具都可以查看日誌的內容,例如:

#more   /var/log/mysqld.log

5. 數據庫的備份

方法:

#mysqldump   [-u  用戶名]   [-p 密碼]  [選項]  數據庫名>備份路徑

實例:

#mysqldump   -u  root   -p admin    --opt    db1>/bak/db1.sql

6. 恢復數據庫

方法:

#mysql  [-u   用戶名]  [-p  密碼] 庫名<備份庫存放的路徑

實例:

#mysql  -u   root   -padmin   db1</bak/db1.sql

7. Mysql的圖形管理工具

mysqlGUI

phpadmin

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章