MySQL是一個真正的多線程,多使用者的SQL資料庫服務,憑借其高性能,高可靠和易于使用的特性,成為伺服器領域中最受歡迎的開源資料庫系統。
一.mysql的編譯安裝
為了避免發生端口沖突,程式沖突等現象,建議先查詢mysql軟體的安裝情況,确認沒有以rpm 方式安裝的mysql-server,mysql軟體包,否則建議将其解除安裝。
rpm –q mysql-server mysql
rpm –ivh ncurses-devel-5.7-3.20090208.e16_64.rpm //安裝CD光牒自帶的ncurses-devel包
mysql 5.5需要cmake編譯安裝,是以先安裝cmake包
tar zxfcmake-2.8.6.tar.gz
cd cmake-2.8.6
./configure&& gmake && gmake install
建立運作使用者
groupadd mysql
useradd –M –s/sbin/nologin mysql –g mysql
解包
tar zxfmysql-5.5.22.tar.gz -C /usr/src
cd/usr/src/mysql-5.5.22
配置,編譯并安裝
cmake –DCMAKE_INSTALL_PREFIX=/usr/local/mysql–DSYSCONFDIR=/etc –DDEFAULT_CHARSET=utf8 –DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHATSETS=all && make && make install
上述配置指令中,各選項的含義如下:
–DCMAKE_INSTALL_PREFIX:指定将mysql安裝到某目錄下
–DSYSCONFDIR:指定初始化參數檔案目錄
–DDEFAULT_CHARSET:指定預設使用的字元集編碼,如utf8
–DDEFAULT_COLLATION:指定預設使用的字元集校對規則,utf8_general_ci适用于UTF-8字元集的通用規則
-DWITH_EXTRA_CHATSETS:指定額外支援的其他字元集編碼
二.安裝後的其他調整
1.對資料庫目錄進行權限設定
chown–R mysql:mysql /usr/local/mysql
2.建立配置檔案
cp/usr/src/mysql-5.5.22/support-files/my-medium.cnf /etc/my.cnf
3.初始化資料庫
為了能夠正常使用mysql資料庫系統,應以運作使用者mysql的身份執行初始化腳本mysql_install_db,指定資料庫存放目錄。
執行如下指令:
/usr/local/mysql/scripts/mysql_insatll_db --user=mysql --basedir=/usr/local/mysql
- -datadir=/usr/local/mysql/data
4.設定變量環境
echo“PATH=$PATH:/usr/local/mysql/bin” >> /etc/profile
. /etc/profile
三.添加系統服務
cp/usr/src/mysql-5.5.22/support-files/mysql.server /etc/init.d/mysqld
chmod+x /etc/init.d/mysqld
chkconfig --add mysqld
servicemysqld start
netstat–anpt |grep mysqld //端口号3306(可以在/etc/my.cnf中[mysql]配置段的“port=3306”修改端口)
四.登陸到mysql伺服器
mysqladmin –u root password 123456 //更改資料庫密碼為123456
mysql -u root -p //使用-p進行密碼效驗
五.執行mysql操作語句
1.檢視資料庫伺服器的日志檔案資訊
SHOWMASTER LOGS;
2.檢視目前伺服器中有哪些庫
SHOWDATABASES;
3.檢視目前使用的庫中有哪些表
USE test; //切換到test庫中
SHOW TABLES;
4.檢視表的結構
DESCRIBEuser;
5.建立新的庫
CREATEDATABASE auth;
6.建立新的表
CREATE TABLE 表名(字段1名稱類型,字段2 類型,……,PRIMARY KEY (主鍵名));
CREATE TABLE users (user_name CHAR(16) NOT NULL, user_passwd CHAR(48) DEFAULT ‘’, PRIMARY KEY (user_name)); //建立一個users表 “使用者名”為不超過16個位元組的字
符串,不能為空,後面密碼段類似。
7.删除一個資料表
DROP TABLE auth.users;
8.删除一個資料庫
DROP TABLE auth
9.向表中插入資料記錄
INSERT INTO 表名(字段1,字段2……,) VALUES(字段1的值,….);
INSERT INTO users(user_name,user_passwd) VALUES(‘zhangsan’, PASSWORD(‘123456’));
10.查詢資料記錄
SELECT 字段名1,字段名2…….., FROM 表名 WHERE 條件表達式
Select * from auth.users //檢視auth庫中users表的所有記錄
SELECT user_name,user_passwd FROM auth.users whereuser_name=’zhangsan’; // 查詢users表中使用者名為zhangsan的記錄
11.修改資料記錄
UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] WHERE 條件表達式
UPDATE auth.users SET user_passwd=PASSWORD(‘’) WHEREuser_name=’lisi’;//吧users
表中lisi的密碼改為空
12.删除資料記錄
DELETE FROM 表名 WHERE 條件表達式
DELETE FROM auth.users WHERE user_name=’lisi’ //删除lisi的記錄
13.授予權限
GRANT 權限清單 ON 庫名.表名 TO 使用者名@來源位址 [TDENTIFIED BY ‘密碼’]
a.權限清單:用于列出授權使用的各種資料庫操作。
b.庫名.表名:用于指定授權操作的庫和表的名稱。
c.使用者名@來源位址:用于指定使用者名和允許通路的客戶機位址
d TDENTIFIED BY:用于 設定使用者連接配接資料庫是所使用的密碼字元串。
GRANT select ONauth.* TO ‘carey’@’localhost’ TDENTIFIEDBY ‘123456’;
14.檢視權限
SHOW GRANTS FOR 使用者名@來源位址
SHOW GRANTS FOR ‘carey’@‘localhost’;
15.撤銷權限
REVOKE 權限清單 ON 資料庫名.表名 FROM 使用者名@來源位址
REVOKE all ON auth.*FROM ‘carey’@‘localhost‘;
16.備份資料庫
A.導出指定庫中的部分表。
mysqldump [ 選項] 庫名[表名1] [表名2].。。。。> /備份路徑/備份檔案名
mysqldump –u root -pmysql user > mysql-user.sql
B.mysqldump [ 選項] - –databases [庫名1] [庫名2].。。。。> /備份路徑/備份檔案名
mysqldump –u root -p--databases auth >auth.sql
C.mysqldump [ 選項] --all –databases > /備份路徑/備份檔案名
D.mysqldump –u root –p --opt –all-databases> all-databases.sql
17.恢複資料庫
mysql [選項] [庫名] [表名] < /備份路徑/備份檔案名
mysql –u root -p test < mysql-user.sql