MySQL是一個真正的多線程,多用戶的SQL數據庫服務,憑藉其高性能,高可靠和易於使用的特性,成爲服務器領域中最受歡迎的開源數據庫系統。
一.mysql的編譯安裝
爲了避免發生端口衝突,程序衝突等現象,建議先查詢mysql軟件的安裝情況,確認沒有以rpm 方式安裝的mysql-server,mysql軟件包,否則建議將其卸載。
rpm –q mysql-server mysql
rpm –ivh ncurses-devel-5.7-3.20090208.e16_64.rpm //安裝光盤自帶的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