MySQL是一個關係型數據庫管理系統,由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下公司。MySQL 最流行的關係型數據庫管理系統,在 WEB 應用方面MySQL是最好的 RDBMS (Relational Database Management System,關係數據庫管理系統) 應用軟件之一。python
MySQL是一種關係數據庫管理系統,關係數據庫將數據保存在不一樣的表中,而不是將全部數據放在一個大倉庫內,這樣就增長了速度並提升了靈活性。mysql
Mysql是開源的,因此你不須要支付額外的費用。redis
Mysql支持大型的數據庫。能夠處理擁有上千萬條記錄的大型數據庫。sql
MySQL使用標準的SQL數據語言形式。mongodb
Mysql能夠容許於多個系統上,而且支持多種語言。這些編程語言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。數據庫
Mysql對PHP有很好的支持,PHP是目前最流行的Web開發語言。編程
MySQL支持大型數據庫,支持5000萬條記錄的數據倉庫,32位系統表文件最大可支持4GB,64位系統支持最大的表文件爲8TB。windows
Mysql是能夠定製的,採用了GPL協議,你能夠修改源碼來開發本身的Mysql系統。安全
因爲其社區版的性能卓越,搭配Apache和PHP以及python 可組成良好的開發環境。服務器
與其餘的大型數據庫例如 Oracle、DB2、SQL Server等相比,MySQL [1] 自有它的不足之處,可是這絲毫也沒有減小它受歡迎的程度。對於通常的我的使用者和中小型企業來講,MySQL提供的功能已經綽綽有餘,並且因爲 MySQL是開放源碼軟件,所以能夠大大下降整體擁有成本。
通俗的說 : MySQL就是一個基於socket編寫的C/S架構的軟件
分兩大類: 關係型:如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 RDBMS 術語 在咱們開始學習MySQL 數據庫前,讓咱們先了解下RDBMS的一些術語: 數據庫: 數據庫是一些關聯表的集合。. 數據表: 表是數據的矩陣。在一個數據庫中的表看起來像一個簡單的電子表格。 列: 一列(數據元素) 包含了相同的數據, 例如郵政編碼的數據。 行:一行(=元組,或記錄)是一組相關的數據,例如一條用戶訂閱的數據。 冗餘:存儲兩倍數據,冗餘下降了性能,但提升了數據的安全性。 主鍵:主鍵是惟一的。一個數據表中只能包含一個主鍵。你可使用主鍵來查詢數據。 外鍵:外鍵用於關聯兩個表。 複合鍵:複合鍵(組合鍵)將多個列做爲一個索引鍵,通常用於複合索引。 索引:使用索引可快速訪問數據庫表中的特定信息。索引是對數據庫表中一列或多列的值進行排序的一種結構。相似於書籍的目錄。 參照完整性: 參照的完整性要求關係中不容許引用不存在的實體。與實體完整性是關係模型必須知足的完整性約束條件,目的是保證數據的一致性。
想要使用MySQL來存儲並保存數據,則須要作幾件事情:
a. 安裝MySQL服務端
b. 安裝MySQL客戶端
b. 【客戶端】鏈接【服務端】
c. 【客戶端】發送命令給【服務端MySQL】服務的接受命令並執行相應操做(增刪改查等)
下載地址:
https://dev.mysql.com/downloads/mysql/
一、官網去下載
二、針對操做系統的不一樣下載不一樣的版本
3.解壓
若是想要讓MySQL安裝在指定目錄,那麼就將解壓後的文件夾移動到指定目錄,如:C:\mysql-5.6.40-winx64
4.添加環境變量
【右鍵計算機】--》【屬性】--》【高級系統設置】--》【高級】--》【環境變量】--》【在第二個內容框中找到 變量名爲Path 的一行,雙擊】 --> 【將MySQL的bin目錄路徑追加到變值值中,用 ; 分割】
5.初始化
mysql --initialize -insecure
6.啓動mysql服務
mysqld #啓動mysql服務
7.啓動mysql客戶端並鏈接mysql服務端(新開一個cmd窗口)
mysql -uroot -p # 鏈接mysql 服務器
上一步解決了一些問題,但不夠完全,由於在執行【mysqd】啓動MySQL服務器時,當前終端會被hang住,那麼作一下設置便可解決此問題,即將MySQL服務製做成windows服務
注意 : 將mysql 添加環境環境變量 # 製做MySQL的Windows服務,在終端執行此命令: mysqld --install # 移除MySQL的Windows服務,在終端執行此命令: mysqld --remove 註冊成服務以後,之後再啓動和關閉MySQL服務時,僅需執行以下命令: # 啓動MySQL服務 net start mysql # 關閉MySQL服務 net stop mysql
打開終端,輸入mysql
輸入mysql提供的函數:select user(); # 查看當前登陸的帳號
當前登陸的默認帳號爲ODBC@localhost
若是想切到root帳號登陸
執行命令:
mysql -uroot -p
再查看當前用戶:
select user();
管理員爲root(擁有最高權限,管理員帳號),密碼爲空,以無密碼的方式登陸了管理員帳號,是很是危險的一件事情,因此要爲管理員帳號設置密碼
設置管理員root 帳號密碼爲123
#設置初始密碼 因爲原密碼爲空,所以-p能夠不用 注意這句話不起做用 update mysql.user set authentication_string = password("123") where User = "root" ;
ps:⚠️不用管它。翻譯爲:在命令行界面使用密碼不安全,暴露在終端當中。
而後再登陸帳號,不輸入密碼則會出現以下結果:
再次執行以下操做:
再查看一下當前登陸的帳號:
若是想將原始密碼123,設置新密碼爲4560
mysqladmin -uroot -p"123" password "456" # 修改mysql密碼 ,由於已經有密碼了 , 因此必須輸入原密碼才能設置新密碼
依次執行以下操做:
mysql -uroot -p456
select user();
跳過受權方式,直接登陸!!
C:\WINDOWS\system32>net stop mysql MySQL 服務正在中止. MySQL 服務已成功中止。
#跳過受權表 C:\WINDOWS\system32>mysql --skip-grant-tables 2018-06-09 17:12:38 0 [Warning] Insecure configuration for --secure-file-priv: Current value does not restrict location of generated files. Consider setting it to a valid, non-empty path. 2018-06-09 17:12:38 0 [Note] mysqld (mysqld 5.6.40) starting as process 6052 ...4.
update mysql.user set authentication-string = password('') where User = "root";
flush privileges;
tasklist |findstr mysql #查看當前mysql 的進程
taskkill /F /PID 6052 #殺死當前的進程pid
進入mysql客戶端,執行\s
在C:\mysql-5.6.40-winx64文件下建立my.ini文件
[mysqld] # 設置mysql的安裝目錄 **後面的路徑必定是安裝sql的目錄(本身電腦的)** basedir=C:\mysql-5.7.22-winx64\mysql-5.7.22-winx64 # 設置mysql數據庫的數據的存放目錄,必須是data datadir=C:\mysql-5.7.22-winx64\mysql-5.7.22-winx64\data sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES # mysql端口 port=3306 # 字符集 [mysqld] character-set-server=utf8 collation-server=utf8_general_ci [client] default-character-set=utf8 [mysql] default-character-set=utf8
C:\Windows\system32>net stop MySQL MySQL 服務正在中止.. MySQL 服務已成功中止。 C:\Windows\system32>net start MySQL MySQL 服務正在啓動 . MySQL 服務已經啓動成功。