天天看點

Mysql資料庫伺服器的安裝與配置

  一、Mysql簡介

MySQL是一個小型關系型資料庫管理系統,開發者為瑞典MySQLAB公司,在2008年1月16号被Sun公司收購。MySQL被廣泛地應用在Internet上的中小型網站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站資料庫。

它具有以下特性:

1.使用C和C++編寫,并使用了多種編譯器進行測試,保證源代碼的可移植性

2.支援AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Solaris、Windows等多種作業系統

3.為多種程式設計語言提供了API。這些程式設計語言包括C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。

4.支援多線程,充分利用CPU資源

5.優化的SQL查詢算法,有效地提高查詢速度

6.既能夠作為一個單獨的應用程式應用在用戶端伺服器網絡環境中,也能夠作為一個庫而嵌入到其他的軟體中提供多語言支援,常見的編碼如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作資料表名和資料列名

7.提供TCP/IP、ODBC和JDBC等多種資料庫連接配接途徑

8.提供用于管理、檢查、優化資料庫操作的管理工具

9.可以處理擁有上千萬條記錄的大型資料庫

二、Mysql的安裝

首先,看看自己電腦裡是否安裝了Mysql軟體rpm -qa | grep mysql

如果沒有安裝,則放入CD光牒:rpm -ivh mysql-server-*.rpm(如果不能直接安裝,提示libmysqlclients.so.15 is needed之類的錯誤)

那麼,進入CD光牒下的CenOS目錄中:

[root@localhost CentOS]# rpm -ivh mysql-server-5.0.45-7.el5.i386.rpm

error: Failed dependencies:

        libmysqlclient.so.15 is needed by mysql-server-5.0.45-7.el5.i386

        libmysqlclient.so.15(libmysqlclient_15) is needed by mysql-server-5.0.45-7.el5.i386

        libmysqlclient_r.so.15 is needed by mysql-server-5.0.45-7.el5.i386

        libmysqlclient_r.so.15(libmysqlclient_15) is needed by mysql-server-5.0.45-7.el5.i386

        mysql = 5.0.45-7.el5 is needed by mysql-server-5.0.45-7.el5.i386

        perl-DBD-MySQL is needed by mysql-server-5.0.45-7.el5.i386

[root@localhost CentOS]# rpm -ivh mysql-5.0.45-7.el5.i386.rpm

Preparing...                ########################################### [100%]

   1:mysql                  ########################################### [100%]

[root@localhost CentOS]# rpm -ivh perl-DBD-MySQL-3.0007-1.fc6.i386.rpm

   1:perl-DBD-MySQL         ########################################### [100%]

   1:mysql-server           ########################################### [100%]

[root@localhost CentOS]#

請大家注意:

解決包依賴順序:Perl-DBD=>mysql=>mysql-server

或者,你的網速快,便可以一步登天:yum install mysql-server

三、Mysql服務的啟動、自動運作

老生常談的話題了,在此略掉,可以參考别的服務的指令。

四、登入

Mysql預設使用者名為“root”,密碼為空,初次登陸:

mysqladmin -u root -p 原密碼 新密碼

這樣就可以改密碼了。

五、設定phpMyAdmin

1、下載下傳phpMyAdmin-版本号.tar.gz

2、解壓到/var/www/html下,如需要則修改權限

3、在浏覽器中即可通路

如果出現“無法載入mysql擴充,請檢查PHP設定”的錯誤,在CenOS下,是缺少php-mysql軟體導緻,進入DVDCD光牒:

[root@localhost CentOS]# rpm -ivh php-pdo-5.1.6-20.el5.i386.rpm

   1:php-pdo                ########################################### [100%]

[root@localhost CentOS]# rpm -ivh php-mysql-5.1.6-20.el5.i386.rpm

   1:php-mysql              ########################################### [100%]

即可搞定!!!

PS:

MYSQL常用指令

1:使用SHOW語句找出在伺服器上目前存在什麼資料庫:

mysql> SHOW DATABASES;

2:2、建立一個資料庫MYSQLDATA

mysql> CREATE DATABASE MYSQLDATA;

3:選擇你所建立的資料庫

mysql> USE MYSQLDATA; (按Enter鍵出現Database changed 時說明操作成功!)

4:檢視現在的資料庫中存在什麼表

mysql> SHOW TABLES;

5:建立一個資料庫表

mysql> CREATE TABLE MYTABLE (name VARCHAR(20), *** CHAR(1));

6:顯示表的結構:

mysql> DESCRIBE MYTABLE;

7:往表中加入記錄

mysql> insert into MYTABLE values (”hyq”,”M”);

8:用文本方式将資料裝入資料庫表中(例如D:/mysql.txt)

mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE MYTABLE;

9:導入.sql檔案指令(例如D:/mysql.sql)

mysql>use database;

mysql>source d:/mysql.sql;

10:删除表

mysql>drop TABLE MYTABLE;

11:清空表

mysql>delete from MYTABLE;

12:更新表中資料

mysql>update MYTABLE set ***=”f” where name=’hyq’;

以下是無意中在網絡看到的使用MySql的管理心得,

在windows中MySql以服務形式存在,在使用前應確定此服務已經啟動,未啟動可用net start mysql指令啟動。而Linux中啟動時可用“/etc/rc.d/init.d/mysqld start”指令,注意啟動者應具有管理者權限。

剛安裝好的MySql包含一個含空密碼的root帳戶和一個匿名帳戶,這是很大的安全隐患,對于一些重要的應用我們應将安全性盡可能提高,在這裡應把匿名帳戶删除、 root帳戶設定密碼,可用如下指令進行:

use mysql;

delete from User where User=”";

update User set Password=PASSWORD(’newpassword’) where User=’root’;

如果要對使用者所用的登入終端進行限制,可以更新User表中相應使用者的Host字段,在進行了以上更改後應重新啟動資料庫服務,此時登入時可用如下類似指令:

mysql -uroot -p;

mysql -uroot -pnewpassword;

mysql mydb -uroot -p;

mysql mydb -uroot -pnewpassword;

上面指令參數是常用參數的一部分,詳細情況可參考文檔。此處的mydb是要登入的資料庫的名稱。

在 進行開發和實際應用中,使用者不應該隻用root使用者進行連接配接資料庫,雖然使用root使用者進行測試時很友善,但會給系統帶來重大安全隐患,也不利于管理技 術的提高。我們給一個應用中使用的使用者賦予最恰當的資料庫權限。如一個隻進行資料插入的使用者不應賦予其删除資料的權限。MySql的使用者管理是通過 User表來實作的,添加新使用者常用的方法有兩個,一是在User表插入相應的資料行,同時設定相應的權限;二是通過GRANT指令建立具有某種權限的用 戶。其中GRANT的常用用法如下:

grant all on mydb.* to NewUserName@HostName identified by “password” ;

grant usage on *.* to NewUserName@HostName identified by “password”;

grant select,insert,update on mydb.* to NewUserName@HostName identified by “password”;

grant update,delete on mydb.TestTable to NewUserName@HostName identified by “password”;

若 要給此使用者賦予他在相應對象上的權限的管理能力,可在GRANT後面添加WITH GRANT OPTION選項。而對于用插入User表添加的使用者,Password字段應用PASSWORD 函數進行更新加密,以防不軌之人竊看密碼。對于那些已經不用的使用者應給予清除,權限過界的使用者應及時回收權限,回收權限可以通過更新User表相應字段, 也可以使用REVOKE操作。

下面給出本人從其它資料(www.cn-java.com)獲得的對常用權限的解釋:

全局管理權限:

FILE: 在MySQL伺服器上讀寫檔案。

PROCESS: 顯示或殺死屬于其它使用者的服務線程。

RELOAD: 重載通路控制表,重新整理日志等。

SHUTDOWN: 關閉MySQL服務。

資料庫/資料表/資料列權限:

ALTER: 修改已存在的資料表(例如增加/删除列)和索引。

CREATE: 建立新的資料庫或資料表。

DELETE: 删除表的記錄。

DROP: 删除資料表或資料庫。

INDEX: 建立或删除索引。

INSERT: 增加表的記錄。

SELECT: 顯示/搜尋表的記錄。

UPDATE: 修改表中已存在的記錄。

特别的權限:

ALL: 允許做任何事(和root一樣)。

USAGE: 隻允許登入–其它什麼也不允許做。