一、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: 隻允許登入–其它什麼也不允許做。