Redhat6.5 1、準備工作 卸載使用rpm包安裝的mysql-server、mysql軟體包 安裝自帶的ncurses-devel包 rpm -ivh /mnt/Packages/ncurses-devel-5.7-3.20090208.el6.x86_64.rpm ① 解壓cmake包 ta ...
Redhat6.5
1、準備工作
卸載使用rpm包安裝的mysql-server、mysql軟體包
安裝自帶的ncurses-devel包
rpm -ivh /mnt/Packages/ncurses-devel-5.7-3.20090208.el6.x86_64.rpm
① 解壓cmake包
tar zxf cmake-2.8.6.tar.gz
[root@localhost cmake-2.8.6]# cd cmake-2.8.6
② 安裝cmake包
[root@localhost cmake-2.8.6]# ./configure && gmake && gmake install
2、源碼編譯及安裝
①創建運行用戶
[root@localhost cmake-2.8.6]# groupadd mysql
[root@localhost cmake-2.8.6]# useradd -M -s /sbin/nologin mysql -g mysql
②解壓mysql包釋放到/usr/src目錄下並切換到展開後的源碼目錄
tar zxf mysql-5.5.22.tar.gz -C /usr/src
cd /usr/src/mysql-5.5.22/
③配置
可能會用到多種字元集的網頁,相應地資料庫系統也應該支持不同的字元集編碼,配置中將預設的字元集編碼設置為utf8並添加其他字元集支持
[root@localhost mysql-5.5.22]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all
----選項含義:
-DCMAKE_INSTALL_PREFIX:指定將mysql資料庫程式安裝到某目錄
-DSYSCONFDIR:指定初始化參數文件目錄
-DDEFAULT_CHARSET:指定使用預設的字元集編碼,如utf8
-DDEFAULT_COLLATION:指定預設使用的字元集編碼校對規則,utf8_general_ci 是適用於UTF-8字元集編碼的通用規則。
-DWITH_EXTRA_CHARSETS:指定額外支持的其他字元集編碼。
④編譯並安裝 make && make install
3、安裝後的其他調整
①對資料庫目錄進行許可權設置
[root@localhost mysql-5.5.22]# chown -R mysql:mysql /usr/local/mysql
②建立配置文件
在mysql源碼目錄中的support—file文件下,提供了適合不同負載資料庫的樣本配置文件。如果不確定資料庫同學的應用規模,一般選擇my-medium.cnf文件即可,該文件能夠滿足大多數啟用的中單應用需求
根據以下參考內容建立mysql系統的/etc/my.cnf配置文件
[root@localhost mysql-5.5.22]# rm -rf /etc/my.cnf
[root@localhost mysql-5.5.22]# cp support-files/my-medium.cnf /etc/my.cnf
③初始化資料庫
為了能夠正常使用mysql資料庫系統,應以運行用戶mysql身份執行初始化監本mysql_intall_db,指定資料庫存放目錄等。
[root@localhost mysql-5.5.22]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/
④設置變數環境
為了方便在任何目錄下使用mysql命令需要在/etc/profile設置環境變數
[root@localhost mysql-5.5.22]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
[root@localhost mysql-5.5.22]# ./etc/profile 或 source /etc/profile //立即生效
4、添加系統服務
若希望添加mysql系統服務,以通過chkconfig進行管理,可以直接使用源碼包中提供的服務腳本。找到support-files文件下的mysql。server腳本文件,
將其複製到/etc/rc.d/init.d目錄下,並改名為mysqld,然後再設置執行許可權,通過chkconfig命令將其添加為mysqld系統服務。
[root@localhost mysql-5.5.22]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@localhost mysql-5.5.22]# chmod +x /etc/rc.d/init.d/mysqld
[root@localhost mysql-5.5.22]# chkconfig --add mysqld
[root@localhost mysql-5.5.22]# service mysqld start
查看mysql的運行狀態: 埠號:3306
[root@localhost mysql-5.5.22]# netstat -anpt | grep mysqld
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 21921/mysqld
二、訪問mysql資料庫
1、登錄到mysql伺服器
經過安裝後的初始化過程,mysql資料庫的預設用戶名為root密碼為空,若以root登錄資料庫執行以下操作
mysql -u root -p
mysql>
2、執行mysql操作語句:show master logs; 可查看當前資料庫訪問的日誌文件信息
3、退出mysq可執行quit或exit
三、MySQL的操作語句:
1、查看
①、查看當前伺服器中有哪些庫:
mysql> show databases;
②、查看當前使用的庫中有哪些表:先使用use語句切換到所使用的庫,再查看
mysql> use mysql;
Database changed
mysql> show tables;
MySQL資料庫的數據文件存放在/usr/local/mysql/data目錄下,每個資料庫對應一個子目錄用於存儲數據表文件。一個數據表對應3個文件尾碼名為 .frm 、.myd和 .myi
③、查看表結構:DESCRIBE語句用於顯示表的結構需要指定 “庫名.表名”
mysql> desc mysql.user; //查看mysql庫的user表的結構
2、創建及刪除庫和表
①創建新的庫
mysql> create database auth; //創建一個auth庫
Query OK, 1 row affected (0.00 sec)
②創建新的表:需要指定表名作為參數,並定義該表所使用的各欄位。
mysql> use auth;
mysql> create table users (user_name char(16) not null,user_passwd char(48) default '', primary key (user_name));
//在auth庫中創建一個users表並插入欄位user_name(不超過16位元組且不為空),user_passwd(不超過48位元組)預設為空,並把user_name設為主鍵
Query OK, 0 rows affected (0.02 sec)
mysql> show tables;
+----------------+
| Tables_in_auth |
+----------------+
| users |
+----------------+
1 row in set (0.00 sec)
③刪除表和資料庫
mysql> drop table auth.users; //刪除auth庫中的users表
mysql> drop database auth; //刪除auth資料庫
3、管理表中的數據記錄
①插入數據記錄:insert into
mysql> insert into users(user_name,user_passwd) values('lisi',password('1234')); //向auth庫中users表插入一條記錄,用戶名為lisi,密碼為1234
Query OK, 1 row affected (0.01 sec)
②查詢數據記錄:select
mysql> select * from users; //查詢users表中所有(*)內容
+-----------+-------------------------------------------+
| user_name | user_passwd |
+-----------+-------------------------------------------+
| lisi | *A4B6157319038724E3560894F7F932C8886EBFCF |
+-----------+-------------------------------------------+
1 row in set (0.00 sec)
③修改數據記錄 update
mysql> update auth.users set user_passwd=password('123.com')where user_name='lisi';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
④修改密碼:
用於訪問mysql資料庫的各種用戶信息都保存在mydql庫的user表中,可直接修改其中的數據記錄
mysql> update mysql.user set password=password('1234') where user='root';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4 Changed: 4 Warnings: 0
也可以在linux命令行下使用mysqladmin工具設置密碼,驗證原密碼後可直接將資料庫用戶密碼設置為 '123.com'
mysql> mysqladmin -u root -p password '123.com'
Enter password:
⑤、刪除數據記錄:delete
mysql> delete from auth.users where user_name='lisi';
4、授權: grant
①授予許可權:GRANT select ON auth.* TO 'xiaosan'@'localhost' IDENTIFIED BY '123456';
②查看許可權:show grants 通過FOR子句可指定查看的用戶對象
mysql> show grants for 'xiaosan'@'localhost';
+----------------------------------------------------------------------------------------------------------------+
| Grants for xiaosan@localhost |
+----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'xiaosan'@'localhost' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
| GRANT SELECT ON `auth`.* TO 'xiaosan'@'localhost' |
+----------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
③撤銷許可權:revoke
revoke all ON auth.* FROM 'xiaosan'@'localhost';
四、資料庫的備份與恢復
三種格式:(一)導出指定庫中的部分表:
mysqldump 【選項】 庫名 【表名1】【表名2】... > /備份路徑/備份文件名
(二)導出一個或多個完整庫(包括其中所有的表):
mysqldump 【選項】--databases 庫名1 【庫名2】 ... > /備份路徑/備份文件名
(三)備份MySQL伺服器中所有
mysqldump 【選項】--all-databases > /備份路徑/備份文件名
1、備份資料庫
(1)執行導出操作
①[root@localhost ~]# mysqldump -u root -p mysql user > mysql-user.sql ///將mysql庫中的user表導出為mysql-user.sql文件
Enter password: ///輸入root密碼
②[root@localhost ~]# mysqldump -u root -p --databases auth > auth.sql ///將整個auth庫導出為auth.sql文件
Enter password: ///輸入root密碼
③若需要備份整個mysql伺服器中所有庫應使用格式(三)當導出數據量較大時,可以添加"--opt"選項以優化執行速度
例如:mysqldump -u root -p --opt --all-databases > /all-data.sql ///將創建all-data.sql備份文件包含所有庫
(2)查看備份內容
[root@localhost ~]# grep -v "^--" auth.sql | grep -v "^/" | grep -v "^$" 或使用 egrep -v "^--|^/|^$" auth.sql
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `auth` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `auth`;
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`user_name` char(16) NOT NULL,
`user_passwd` char(48) DEFAULT '',
PRIMARY KEY (`user_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
LOCK TABLES `users` WRITE;
INSERT INTO `users` VALUES ('lisi','*AC241830FFDDC8943AB31CBD47D758E79F7953EA');
UNLOCK TABLES;
2、恢複數據庫
① [root@localhost ~]# mysql -u root -p mysql < mysql-user.sql ///從備份文件mysql-user.sql中將user表導入mysql庫中
Enter password:
② [root@localhost ~]# mysql -u root -p < auth.sql ///從備份文件auth.sql恢復auth庫
Enter password: