Mysql數據庫
MySQL是一個關係型數據庫管理系統,由瑞典MySQL AB公司開發,目前屬於Oracle公司。MySQL是一種關聯數據庫管理系統,關聯數據庫將數據保存在不一樣的表中,而不是將全部數據放在一個大倉庫內,這樣就增長了速度並提升了靈活性。javascript
- Mysql是開源的,因此不須要支付額外的費用。
- Mysql支持大型的數據庫。能夠處理擁有上千萬條記錄的大型數據庫。
- MySQL使用標準的SQL數據語言形式。
- Mysql能夠容許於多個系統上,而且支持多種語言。這些編程語言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
- MySQL支持大型數據庫,支持5000萬條記錄的數據倉庫,32位系統表文件最大可支持4GB,64位系統支持最大的表文件爲8TB。
- Mysql是能夠定製的,採用了GPL協議,能夠修改源碼來開發本身的Mysql系統。
Mysql安裝
想要使用MySQL來存儲並操做數據,則須要作幾件事情:
a. 安裝MySQL服務端
b. 安裝MySQL客戶端
c. 【客戶端】鏈接【服務端】
d. 【客戶端】發送命令給【服務端MySQL】服務的接受命令並執行相應操做(增刪改查等)java
1
2
3
4
5
6
7
8
9
|
下載
http:
/
/
dev.mysql.com
/
downloads
/
mysql
/
安裝
windows:
點點點
Linux:
yum install mysql
-
server
Mac:
點點點
|
windows
一、下載python
1
2
3
|
MySQL Community Server
5.7
.
17
http:
/
/
dev.mysql.com
/
downloads
/
mysql
/
|
二、解壓mysql
若是想要讓MySQL安裝在指定目錄,那麼就將解壓後的文件夾移動到指定目錄,如:D:\Mysql\mysql-5.7.17-winx64sql
三、初始化數據庫
在D:\Mysql\mysql-5.7.17-winx64目錄下新建data目錄編程
MySQL解壓後的 bin 目錄下有一大堆的可執行文件,執行以下命令初始化數據:windows
1
2
3
|
cd c:\mysql
-
5.7
.
16
-
winx64\
bin
mysqld
-
-
initialize
-
insecure
|
四、啓動Mysql服務服務器
由於重複的進入可執行文件目錄比較繁瑣,如想往後操做簡便,能夠作以下操做。編程語言
a.添加環境變量
將MySQL可執行文件添加到環境變量中,從而執行執行命令
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;D:\Mysql\mysql
-
5.7
.
17
-
winx64\
bin
|
這樣,再啓動服務的時候,僅僅須要
1
2
3
4
5
|
# 啓動MySQL服務,在終端輸入
mysqld
# 鏈接MySQL服務,在終端輸入:
mysql
-
u root
-
p
|
b. 將Mysql服務製做成windows服務
上一步雖然解決了一些問題,但不夠完全,由於在執行【mysqld】啓動MySQL服務器時,當前終端會被hang住,那麼作一下設置便可解決此問題:
1
2
3
4
5
|
# 製做MySQL的Windows服務,在終端執行此命令:
"D:\Mysql\mysql-5.7.17-winx64\bin\mysqld"
-
-
install
# 移除MySQL的Windows服務,在終端執行此命令:
"D:\Mysql\mysql-5.7.17-winx64\bin\mysqld"
-
-
remove
|
註冊成服務以後,之後再啓動和關閉MySQL服務時,僅需執行以下命令:
1
2
3
4
5
|
# 啓動MySQL服務
net start mysql
# 關閉MySQL服務
net stop mysql
|
五、啓動MySQL客戶端並鏈接MySQL服務
因爲初始化時使用的【mysqld --initialize-insecure】命令,其默認未給root帳戶設置密碼
1
2
3
4
5
|
# 終端命令提示符
# 鏈接MySQL服務器
mysql
-
u root
-
p
# 提示請輸入密碼,直接回車
|
而後出現下圖
此刻,MySQL服務端已經安裝成功而且客戶端已經能夠鏈接上.
MySQL數據類型
MySQL中定義數據字段的類型對你數據庫的優化是很是重要的。
MySQL支持多種類型,大體能夠分爲三類:數值、日期/時間和字符串(字符)類型。
數值類型
下面的表顯示了須要的每一個整數類型的存儲和範圍。
日期和時間類型
表示時間值的日期和時間類型爲DATETIME、DATE、TIMESTAMP、TIME和YEAR。
每一個時間類型有一個有效值範圍和一個"零"值,當指定不合法的MySQL不能表示的值時使用"零"值。
字符串類型
字符串類型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。該節描述了這些類型如何工做以及如何在查詢中使用這些類型。
CHAR和VARCHAR類型相似,但它們保存和檢索的方式不一樣。它們的最大長度和是否尾部空格被保留等方面也不一樣。在存儲或檢索過程當中不進行大小寫轉換。
BINARY和VARBINARY類相似於CHAR和VARCHAR,不一樣的是它們包含二進制字符串而不要非二進制字符串。也就是說,它們包含字節字符串而不是字符字符串。
BLOB是一個二進制大對象,能夠容納可變數量的數據。有4種BLOB類型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。它們只是可容納值的最大長度不一樣。
有4種TEXT類型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。這些對應4種BLOB類型,有相同的最大長度和存儲需求。
Mysql密碼破解
若是咱們遺忘了mysql的登錄密碼,也是容易去解決的。
經過查找mysql的配置文件 my.cnf (注意其是否關聯其它文件,再去修改)
# 編輯文件 /etc/my.cnf下, 以下填加 [mysqld] skip-grant-tables # 重啓Mysql,使得參數生效 service mysqld restart # 登錄 mysql -u root 回車即登錄 # 修改密碼 a. 經過sql語句將密碼改好以後,再將配置文件中 skip-grant-tables去掉 b. 再次重啓數據庫