MySQL 安裝
Linux/UNIX上安裝Mysql
Linux平臺上推薦使用RPM包來安裝Mysql,MySQL AB提供了以下RPM包的下載地址:
- MySQL - MySQL服務器。你需要該選項,除非你只想連接運行在另一臺機器上的MySQL服務器。
- MySQL-client - MySQL 客戶端程序,用于連接并操作Mysql服務器。
- MySQL-devel - 庫和包含文件,如果你想要編譯其它MySQL客戶端,例如Perl模塊,則需要安裝該RPM包。
- MySQL-shared - 該軟件包包含某些語言和應用程序需要動態裝載的共享庫(libmysqlclient.so*),使用MySQL。
- MySQL-bench - MySQL數據庫服務器的基準和性能測試工具。
以下安裝Mysql RMP的實例是在SuSE Linux系統上進行,當然該安裝步驟也適合應用于其他支持RPM的Linux系統,如:Centos。
安裝步驟如下:
使用root用戶登陸你的Linux系統。
下載Mysql RPM包,下載地址為:MySQL 下載。
通過以下命令執行Mysql安裝,rpm包為你下載的rpm包:
1
|
[root@host] # rpm -i MySQL-5.0.9-0.i386.rpm |
以上安裝mysql服務器的過程會創建mysql用戶,并創建一個mysql配置文件my.cnf。
你可以在/usr/bin和/usr/sbin中找到所有與MySQL相關的二進制文件。所有數據表和數據庫將在/var/lib/mysql目錄中創建。
以下是一些mysql可選包的安裝過程,你可以根據自己的需要來安裝:
1
2
3
4
|
[root@host] # rpm -i MySQL-client-5.0.9-0.i386.rpm [root@host] # rpm -i MySQL-devel-5.0.9-0.i386.rpm [root@host] # rpm -i MySQL-shared-5.0.9-0.i386.rpm [root@host] # rpm -i MySQL-bench-5.0.9-0.i386.rpm |
Window上安裝Mysql
Window上安裝Mysql相對來說會較為簡單,你只需要載 MySQL 下載中下載window版本的mysql安裝包,并解壓安裝包。
雙擊 setup.exe 文件,接下來你只需要安裝默認的配置點擊"next"即可,默認情況下安裝信息會在C:\mysql目錄中。
接下來你可以通過"開始" =》在搜索框中輸入 " cmd" 命令 =》 在命令提示符上切換到 C:\mysql\bin 目錄,并輸入一下命令:
1
|
mysqld.exe --console |
如果安裝成功以上命令將輸出一些mysql啟動及InnoDB信息。
驗證Mysql安裝
在成功安裝Mysql后,一些基礎表會表初始化,在服務器啟動后,你可以通過簡單的測試來驗證Mysql是否工作正常。
使用 mysqladmin 工具來獲取服務器狀態:
使用 mysqladmin 命令倆檢查服務器的版本,在linux上該二進制文件位于 /usr/bin on linux ,在window上該二進制文件位于C:\mysql\bin 。
1
|
[root@host] # mysqladmin --version |
linux上該命令將輸出以下結果,該結果基于你的系統信息:
1
|
mysqladmin Ver 8.23 Distrib 5.0.9-0, for redhat-linux-gnu on i386 |
如果以上命令執行后未輸入任何信息,說明你的Mysql未安裝成功。
使用 MySQL Client(Mysql客戶端) 執行簡單的SQL命令
你可以在 MySQL Client(Mysql客戶端) 使用 mysql 命令連接到Mysql服務器上,默認情況下Mysql服務器的密碼為空,所以本實例不需要輸入密碼。
命令如下:
1
|
[root@host] # mysql |
以上命令執行后會輸出 mysql>提示符,這說明你已經成功連接到Mysql服務器上,你可以在 mysql> 提示符執行SQL命令:
1
|
mysql> SHOW DATABASES;<br> |
1
2
3
4
5
6
7
|
+----------+ | Database | +----------+ | mysql | | test | +----------+ 2 rows in set (0.13 sec) |
Mysql安裝后需要做的
Mysql安裝成功后,默認的root用戶密碼為空,你可以使用以下命令來創建root用戶的密碼:
1
|
[root@host] # mysqladmin -u root password "new_password"; |
現在你可以通過以下命令來連接到Mysql服務器:
1
|
[root@host] # mysql -u root -p |
1
|
Enter password:******* |
注意:在輸入密碼時,密碼是不會顯示了,你正確輸入即可。
Linux系統啟動時啟動 MySQL
如果你需要在Linux系統啟動時啟動 MySQL 服務器,你需要在 /etc/rc.local 文件中添加以下命令:
1
|
/etc/init.d/mysqld start |
同樣,你需要將 mysqld 二進制文件添加到 /etc/init.d/ 目錄中。
MySQL 管理
啟動及關閉 MySQL 服務器
首先,我們需要通過以下命令來檢查MySQL服務器是否啟動:
1
|
ps -ef | grep mysqld |
如果MySql已經啟動,以上命令將輸出mysql進程列表, 如果mysql未啟動,你可以使用以下命令來啟動mysql服務器:
1
2
|
root@host # cd /usr/bin . /mysqld_safe & |
如果你想關閉目前運行的 MySQL 服務器, 你可以執行以下命令:
1
2
|
root@host # cd /usr/bin . /mysqladmin -u root -p shutdown |
1
|
Enter password: ****** |
MySQL 用戶設置
如果你需要添加 MySQL 用戶,你只需要在 mysql 數據庫中的 user 表添加新用戶即可。
以下為添加用戶的的實例,用戶名為guest,密碼為guest123,并授權用戶可進行 SELECT, INSERT 和 UPDATE操作權限:
1
|
root@host # mysql -u root -p |
1
|
Enter password:******* |
1
|
mysql> use mysql; |
1
|
Database changed |
1
2
3
4
5
|
mysql> INSERT INTO user (host, user , password , select_priv, insert_priv, update_priv) VALUES ( 'localhost' , 'guest' , PASSWORD ( 'guest123' ), 'Y' , 'Y' , 'Y' ); |
1
|
Query OK, 1 row affected (0.20 sec) |
1
|
mysql> FLUSH PRIVILEGES ; |
1
|
Query OK, 1 row affected (0.01 sec) |
1
|
mysql> SELECT host, user , password FROM user WHERE user = 'guest' ; |
1
2
3
4
5
6
|
+-----------+---------+------------------+ | host | user | password | +-----------+---------+------------------+ | localhost | guest | 6f8c114b58f2ce9e | +-----------+---------+------------------+ 1 row in set (0.00 sec) |
在添加用戶時,請注意使用MySQL提供的 PASSWORD() 函數來對密碼進行加密。 你可以在以上實例看到用戶密碼加密后為: 6f8c114b58f2ce9e.
注意:在注意需要執行 FLUSH PRIVILEGES 語句。 這個命令執行后會重新載入授權表。 如果你不使用該命令,你就無法使用新創建的用戶來連接mysql服務器,除非你重啟mysql服務器。
你可以在創建用戶時,為用戶指定權限,在對應的權限列中,在插入語句中設置為 'Y' 即可,用戶權限列表如下:
- Select_priv
- Insert_priv
- Update_priv
- Delete_priv
- Create_priv
- Drop_priv
- Reload_priv
- Shutdown_priv
- Process_priv
- File_priv
- Grant_priv
- References_priv
- Index_priv
- Alter_priv
另外一種添加用戶的方法為通過SQL的 GRANT 命令,你下命令會給指定數據庫TUTORIALS添加用戶 zara ,密碼為 zara123 。
1
|
root@host # mysql -u root -p password; |
1
|
Enter password:******* |
1
|
mysql> use mysql; |
1
|
Database changed |
1
2
3
4
|
mysql> GRANT SELECT , INSERT , UPDATE , DELETE , CREATE , DROP -> ON TUTORIALS.* -> TO 'zara' @ 'localhost' -> IDENTIFIED BY 'zara123' ; |
以上命令會在mysql數據庫中的user表創建一條用戶信息記錄。
注意: MySQL 的SQL語句以分號 (;) 作為結束標識。
/etc/my.cnf 文件配置
一般情況下,你不需要修改該配置文件,該文件默認配置如下:
1
2
3
4
5
6
7
8
9
10
11
|
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock [mysql.server] user=mysql basedir=/var/lib [safe_mysqld] err-log=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid |
在配置文件中,你可以指定不同的錯誤日志文件存放的目錄,一般你不需要改動這些配置。
管理MySQL的命令
以下列出了使用Mysql數據庫過程中常用的命令:
- USE 數據庫名 :選擇要操作的Mysql數據庫,使用該命令后所有Mysql命令都只針對該數據庫。
- SHOW DATABASES: 列出 MySQL 數據庫管理系統的數據庫列表。
- SHOW TABLES: 顯示指定數據庫的所有表,使用該命令前需要使用 use 命令來選擇要操作的數據庫。
- SHOW COLUMNS FROM 數據表: 顯示數據表的屬性,屬性類型,主鍵信息 ,是否為 NULL,默認值等其他信息。
- SHOW INDEX FROM 數據表: 顯示數據表的詳細索引信息,包括PRIMARY KEY(主鍵)。
- SHOW TABLE STATUS LIKE 數據表\G: 該命令將輸出Mysql數據庫管理系統的性能及統計信息。