1. 程式人生 > >day1-MySQL介紹

day1-MySQL介紹

一、MySQL的介紹

1.1、MySQL介紹

MySQL是一個關係型資料庫管理系統,由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下公司。MySQL 最流行的關係型資料庫管理系統,在 WEB 應用方面MySQL是最好的 RDBMS (Relational Database Management System,關係資料庫管理系統) 應用軟體之一。

MySQL是一種關係資料庫管理系統,關係資料庫將資料儲存在不同的表中,而不是將所有資料放在一個大倉庫內,這樣就增加了速度並提高了靈活性。
Mysql是開源的,所以你不需要支付額外的費用。
Mysql支援大型的資料庫。可以處理擁有上千萬條記錄的大型資料庫。
MySQL使用標準的SQL資料語言形式。
Mysql可以允許於多個系統上,並且支援多種語言。這些程式語言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
Mysql對PHP有很好的支援,PHP是目前最流行的Web開發語言。
MySQL支援大型資料庫,支援5000萬條記錄的資料倉庫,32位系統表文件最大可支援4GB,64位系統支援最大的表文件為8TB。
Mysql是可以定製的,採用了GPL協議,你可以修改原始碼來開發自己的Mysql系統。
由於其社群版的效能卓越,搭配Apache和PHP以及python 可組成良好的開發環境。

1.2、應用環境

與其他的大型資料庫例如 Oracle、DB2、SQL Server等相比,MySQL有它的不足之處,但是這絲毫也沒有減少它受歡迎的程度。對於一般的個人使用者和中小型企業來說,MySQL提供的功能已經綽綽有餘,而且由於 MySQL是開放原始碼軟體,因此可以大大降低總體擁有成本。

Linux作為作業系統,Apache或Nginx作為Web伺服器,MySQL作為資料庫,PHP/Perl/Python作為伺服器端指令碼直譯器。由於這四個軟體都是免費或開放原始碼軟體(FLOSS),因此使用這種方式不用花一分錢(除開人工成本)就可以建立起一個穩定、免費的網站系統,被業界稱為“LAMP“或“LNMP”組合。

總結:mysql就是一個基於socket編寫的C/S架構的軟體


1.3、資料庫管理軟體分類

分兩大類:
  關係型:如sqllite,db2,oracle,access,sql server,MySQL,注意:sql語句通用
  非關係型:mongodb,redis,memcache

總結兩句話:
關係型資料庫需要有表結構
非關係型資料庫是key-value儲存的,沒有表結構

所以,現在我們使用關係型資料庫管理系統(RDBMS)來儲存和管理的大資料量。所謂的關係型資料庫,是建立在關係模型基礎上的資料庫,藉助於集合代數等數學概念和方法來處理資料庫中的資料。

RDBMS即關係資料庫管理系統(Relational Database Management System)的特點:
1.資料以表格的形式出現
2.每行為各種記錄名稱
3.每列為記錄名稱所對應的資料域
4.許多的行和列組成一張表單
5.若干的表單組成database

1.4、RDBMS 術語

在我們開始學習MySQL 資料庫前,讓我們先了解下RDBMS的一些術語:
資料庫: 資料庫是一些關聯表的集合。.
資料表: 表是資料的矩陣。在一個數據庫中的表看起來像一個簡單的電子表格。
列: 一列(資料元素) 包含了相同的資料, 例如郵政編碼的資料。
行:一行(元組,或記錄)是一組相關的資料,例如一條使用者訂閱的資料。
冗餘:儲存兩倍資料,冗餘降低了效能,但提高了資料的安全性。
主鍵:主鍵是唯一的。一個數據表中只能包含一個主鍵。你可以使用主鍵來查詢資料。
外來鍵:外來鍵用於關聯兩個表。
複合鍵:複合鍵(組合鍵)將多個列作為一個索引鍵,一般用於複合索引。
索引:使用索引可快速訪問資料庫表中的特定資訊。索引是對資料庫表中一列或多列的值進行排序的一種結構。類似於書籍的目錄。
參照完整性: 參照的完整性要求關係中不允許引用不存在的實體。與實體完整性是關係模型必須滿足的完整性約束條件,目的是保證資料的一致性。

二、mysql的下載安裝

2.1、下載準備工作

想要使用MySQL來儲存並儲存資料,則需要做幾件事情:
  a. 安裝MySQL服務端
  b. 安裝MySQL客戶端
  b. 【客戶端】連線【服務端】
  c. 【客戶端】傳送命令給【服務端】,服務端接受命令並執行相應操作(增刪改查等)

安裝前,我們可以檢測系統是否自帶安裝 MySQL,如果是linux系統,可使用以下方法:
rpm -qa | grep mysql

或輸入命令嘗試開啟MySQL服務:
sudo service mysql status

如果系統有安裝,那可以選擇進行解除安裝:
rpm -e mysql  // 普通刪除模式
rpm -e --nodeps mysql  // 強力刪除模式,如果使用上面命令刪除時,提示有依賴的其它檔案,則用該命令可以對其進行強力刪除

 

2.2、windows安裝MySQL

1)、下載地址:
https://dev.mysql.com/downloads/mysql/

2)、解壓
如果想要讓MySQL安裝在指定目錄,那麼就將解壓後的資料夾移動到指定目錄,如:C:\mysql-5.6.40-winx64\bin

3)、新增環境變數

4)、配置my.ini檔案,如果解壓後沒有my.ini檔案,可能只有一個my-default.ini檔案,這時需要自己建立一個my.ini檔案並新增以下內容

[mysqld]
basedir = C:\mysql-5.6.42-winx64\
datadir = C:\mysql-5.6.42-winx64\data\
server_id = 1
character-set-server=utf8
default-storage-engine=INNODB

sql_mode=ONLY_FULL_GROUP_BY,NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
#STRICT_TRANS_TABLES這個一定要寫,嚴格模式
 
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

5)、初始化 MySQL:

mysqld --initialize-insecure
mysqld install MySQL --defaults-file=C:\mysql-5.6.42-winx64\my.ini

6)、製作MySQL的Windows服務,在終端執行此命令:

c:\mysqld --install

  # 移除MySQL的Windows服務,在終端執行此命令:
  c:\mysqld --remove

7)、註冊成服務之後,以後再啟動和關閉MySQL服務時,僅需執行如下命令:

# 啟動MySQL服務
net start mysql

# 關閉MySQL服務
net stop mysql

8)、啟動 MySQL:

mysqld

9)、啟動mysql客戶端並連線mysql服務端(新開一個cmd視窗)

mysql -u root -p

 

2.3、windows下登入設定密碼

開啟終端,進入mysql並設定root的密碼

mysql> update user set password=password("123456") where user='root';
mysql> flush privileges;
C:\mysql -uroot -p
Enter password: ******

 

2.4、linux安裝MySQL

1)線上安裝

Centos7線上安裝
rpm -ivh http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
yum install mysql-community-server

Ubuntu線上安裝
sudo apt-get install mysql-server    #安裝mysql服務端    
sudo apt-get install mysql-client    #安裝mysql客戶端

在安裝過程中會提示確認輸入YES,設定 root 使用者密碼(之後也可以修改)等,稍等片刻便可安裝成功。
安裝結束後,用命令驗證是否安裝並啟動成功:

sudu netstat -tap | grep mysql

2)、初始化 MySQL

mysqld --initialize-insecure
或mysqld --initialize

3)、啟動 MySQL:

service start mysqld

4)、檢視 MySQL 執行狀態:

service status mysqld

5)、登入mysql

mysql -u root -p

如果root密碼不為空,在/var/log/mysqld.log檔案找root生成的預設密碼。通過下面的方式找到root預設密碼,然後登入mysql進行修改:

[[email protected] root]#grep 'temporary password' /var/log/mysqld.log
mysql> set password for [email protected]=password ('root');

退出重新登入,密碼為root

如果密碼簡單,會提示不符合複雜度要求
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

6)、如果需要關閉密碼安全性要求,
  1、設定密碼安全級別
  mysql> set global validate_password_policy=0;

  2、預設密碼長度為8,可以設定為其他值
  mysql> set global validate_password_length=1;

  3、設定新密碼為root
  mysql> set password = password('root');

7)、修改配置檔案

mysqld]
default-character-set=utf8 
[client]
default-character-set=utf8 
[mysql]
default-character-set=utf8

#mysql5.5以上:修改方式有所改動
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

重啟服務

檢視修改結果:

 
 
mysql> \s
mysql> show variables like '%char%'