一、概述 1、什麼是資料庫 ? 答:數據的倉庫,如:在ATM的示例中我們創建了一個 db 目錄,稱其為資料庫 2、什麼是 MySQL、Oracle、SQLite、Access、MS SQL Server等 ? 答:他們均是一個軟體,都有兩個主要的功能: a. 將數據保存到文件或記憶體 b. 接收特定的 ...
一、概述
1、什麼是資料庫 ?
答:數據的倉庫,如:在ATM的示例中我們創建了一個 db 目錄,稱其為資料庫
2、什麼是 MySQL、Oracle、SQLite、Access、MS SQL Server等 ?
答:他們均是一個軟體,都有兩個主要的功能:
- a. 將數據保存到文件或記憶體
- b. 接收特定的命令,然後對文件進行相應的操作
PS:如果有了以上軟體,無須自己再去創建文件和文件夾,而是直接傳遞 命令 給上述軟體,讓其來進行文件操作,他們統稱為資料庫管理系統(DBMS,Database Management System)
3、什麼是SQL ?
SQL是一種專門用來與資料庫通信的語言。
二、下載安裝
MySQL是一個關係型資料庫管理系統,由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下公司。MySQL 最流行的關係型資料庫管理系統,在 WEB 應用方面MySQL是最好的 RDBMS (Relational Database Management System,關係資料庫管理系統) 應用軟體之一。
想要使用MySQL來存儲並操作數據,則需要做幾件事情:
a. 安裝MySQL服務端
b. 安裝MySQL客戶端
b. 【客戶端】連接【服務端】
c. 【客戶端】發送命令給【服務端MySQL】服務的接受命令並執行相應操作(增刪改查等)
Window版本
1、下載
下載 http://dev.mysql.com/downloads/mysql/ 安裝 windows: 點點點 Linux: yum install mysql-server Mac: 點點點
2、解壓
如果想要讓MySQL安裝在指定目錄,那麼就將解壓後的文件夾移動到指定目錄,如:C:\mysql-5.7.16-winx64
3、初始化
MySQL解壓後的 bin 目錄下有一大堆的可執行文件,執行如下命令初始化數據
4、啟動MySQL服務
執行命令從而啟動MySQL服務
+ View Code?1 2 3 4 5 |
# 進入可執行文件目錄
cd c:\mysql - 5.7 . 16 - winx64\ bin
# 啟動MySQL服務
mysqld
|
5、啟動MySQL客戶端並連接MySQL服務
由於初始化時使用的【mysqld --initialize-insecure】命令,其預設未給root賬戶設置密碼
+ View Code?1 2 3 4 5 6 7 |
# 進入可執行文件目錄
cd c:\mysql - 5.7 . 16 - winx64\ bin
# 連接MySQL伺服器
mysql - u root - p
# 提示請輸入密碼,直接回車
|
輸入回車,見下圖表示安裝成功:
到此為止,MySQL服務端已經安裝成功並且客戶端已經可以連接上,以後再操作MySQL時,只需要重覆上述4、5步驟即可。但是,在4、5步驟中重覆的進入可執行文件目錄比較繁瑣,如想日後操作簡便,可以做如下操作。
a. 添加環境變數
將MySQL可執行文件添加到環境變數中,從而執行執行命令即可
+ View Code?
1 2 3 4 【右鍵電腦】
-
-
》【屬性】
-
-
》【高級系統設置】
-
-
》【高級】
-
-
》【環境變數】
-
-
》【在第二個內容框中找到 變數名為Path 的一行,雙擊】
-
-
> 【將MySQL的
bin
目錄路徑追加到變值值中,用 ; 分割】
如:
C:\Program Files (x86)\Parallels\Parallels Tools\Applications;
%
SystemRoot
%
\system32;
%
SystemRoot
%
;
%
SystemRoot
%
\System32\Wbem;
%
SYSTEMROOT
%
\System32\WindowsPowerShell\v1.
0
\;C:\Python27;C:\Python35;C:\mysql
-
5.7
.
16
-
winx64\
bin
如此一來,以後再啟動服務並連接時,僅需:
+ View Code?
1 2 3 4 5 # 啟動MySQL服務,在終端輸入
mysqld
# 連接MySQL服務,在終端輸入:
mysql
-
u root
-
p
b. 將MySQL服務製作成windows服務
上一步解決了一些問題,但不夠徹底,因為在執行【mysqd】啟動MySQL伺服器時,當前終端會被hang住,那麼做一下設置即可解決此問題:
+ View Code?
1 2 3 4 5 # 製作MySQL的Windows服務,在終端執行此命令:
"c:\mysql-5.7.16-winx64\bin\mysqld"
-
-
install
# 移除MySQL的Windows服務,在終端執行此命令:
"c:\mysql-5.7.16-winx64\bin\mysqld"
-
-
remove
註冊成服務之後,以後再啟動和關閉MySQL服務時,僅需執行如下命令:
?
1 2 3 4 5 # 啟動MySQL服務
net start mysql
# 關閉MySQL服務
net stop mysql
Linux版本
安裝:
?1 |
yum install mysql - server
|
服務端啟動
?1 |
mysql.server start
|
客戶端連接
?1 2 3 4 5 6 7 |
連接:
mysql -h host -u user -p
常見錯誤:
ERROR 2002 (HY000): Can 't connect to local MySQL server through socket ' /tmp/mysql.sock' (2), it means that the MySQL server daemon (Unix) or service (Windows) is not running.
退出:
QUIT 或者 Control+D
|
三、資料庫操作
1、顯示資料庫
?1 |
SHOW DATABASES;
|
預設資料庫:
mysql - 用戶許可權相關數據
test - 用於用戶測試數據
information_schema - MySQL本身架構相關數據
2、創建資料庫
?1 2 3 4 5 |
# utf-8
CREATE DATABASE 資料庫名稱 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
# gbk
CREATE DATABASE 資料庫名稱 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
|
3、使用資料庫
?1 |
USE db_name;
|
顯示當前使用的資料庫中所有表:SHOW TABLES;
4、用戶管理
?1 2 3 4 5 6 7 8 9 10 |
創建用戶
create user '用戶名' @ 'IP地址' identified by '密碼' ;
刪除用戶
drop user '用戶名' @ 'IP地址' ;
修改用戶
rename user '用戶名' @ 'IP地址' ; to '新用戶名' @ 'IP地址' ;;
修改密碼
set password for '用戶名' @ 'IP地址' = Password( '新密碼' )
PS:用戶許可權相關數據保存在mysql資料庫的user表中,所以也可以直接對其進行操作(不建議)
|
5、授權管理
?1 2 3 |
show grants for '用戶' @ 'IP地址' -- 查看許可權
grant 許可權 on 資料庫.表 to '用戶' @ 'IP地址' -- 授權
revoke 許可權 on 資料庫.表 from '用戶' @ 'IP地址' -- 取消許可權
|
all privileges 除grant外的所有許可權 select 僅查許可權 select,insert 查和插入許可權 ... usage 無訪問許可權 alter 使用alter table alter routine 使用alter procedure和drop procedure create 使用create table create routine 使用create procedure create temporary tables 使用create temporary tables create user 使用create user、drop user、rename user和revoke all privileges create view 使用create view delete 使用delete drop 使用drop table execute 使用call和存儲過程 file 使用select into outfile 和 load data infile grant option 使用grant 和 revoke index 使用index insert 使用insert lock tables 使用lock table process 使用show full processlist select 使用select show databases 使用show databases show view 使用show view update 使用update reload 使用flush shutdown 使用mysqladmin shutdown(關閉MySQL) super