MySQL的安裝和基本管理 一、MySQL介紹 MySQL是一個關係型資料庫管理系統,由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下公司。MySQL 最流行的關係型資料庫管理系統,在 WEB 應用方面MySQL是最好的 RDBMS (Relational Database Manag ...
MySQL的安裝和基本管理
一、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 可組成良好的開發環境。
MySQL是什麼?
總結:MySQL就是一個基於socket編寫的C/S架構的軟體
二、應用環境
與其他的大型資料庫例如 Oracle、DB2、SQL Server等相比,MySQL [1] 自有它的不足之處,但是這絲毫也沒有減少它受歡迎的程度。對於一般的個人使用者和中小型企業來說,MySQL提供的功能已經綽綽有餘,而且由於 MySQL是開放源碼開放源碼)軟體,因此可以大大降低總體擁有成本。
linux作為操作系統操作系統,Apache 或Nginx作為 Web 伺服器,MySQL 作為資料庫資料庫,PHP/Perl/Python作為伺服器端腳本腳本解釋器解釋器。由於這四個軟體都是免費或開放源碼開放源碼軟體(FLOSS),因此使用這種方式不用花一分錢(除開人工成本)就可以建立起一個穩定、免費的網站系統網站系統,被業界稱為“LAMP“或“LNMP”組合。
三、資料庫管理軟體分類
分兩大類:
關係型:如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的下載和安裝
想要使用MySQL來存儲並保存數據,則需要做幾件事情:
a. 安裝MySQL服務端
b. 安裝MySQL客戶端
b. 【客戶端】連接【服務端】
c. 【客戶端】發送命令給【服務端MySQL】服務的接受命令並執行相應操作(增刪改查等)
下載地址:https://dev.mysql.com/downloads/mysql/
五、windows版本
windows版本的安裝與下載
去官網下載
針對操作系統的不同下載不同的版本
如果想要讓MySQL安裝在指定目錄,那麼就將解壓後的文件夾移動到指定目錄,如:E:\Program Files
添加環境變數
(以下以win10為例, win7操作大同小異)
桌面 --> 右鍵單擊‘此電腦’ --> 在快捷菜單中單擊‘屬性’命令 --> 在打開的文件夾中單擊‘高級系統設置’命令 --> 在打開的對話框中選擇‘高級選項卡’ --> 單擊‘環境變數’按鈕 --> 找到‘系統變數’列表框 --> 雙擊其中的Path --> 將安裝的MySQL文件夾下的bin路徑(例如:E:\Program Files\mysql-5.7.23-winx64\bin)添加進去 --> 單擊'確定'按鈕
初始化
在cmd中輸入以下指令
mysqld --initialize-insecure
啟動MySQL服務端
在cmd中輸入以下指令
mysqld # 啟動mysql服務端
啟動mysql客戶端並連接mysql服務端(新開一個cmd視窗)
mysql -u root -p # 連接MySQL伺服器
上一步解決了一些問題,但不夠徹底,因為在執行【mysqd】啟動MySQL伺服器時,當前終端會被hang住,那麼做一下設置即可解決此問題,即將MySQL服務製作成windows服務
註意:--install前,必須用mysql啟動命令的絕對路徑
# 製作MySQL的Windows服務,在終端執行此命令:
"E:\Program Files\mysql-5.7.23-winx64\bin\mysqld" --install
# 移除MySQL的Windows服務,在終端執行此命令:
"E:\Program Files\mysql-5.7.23-winx64\bin\mysqld" --remove
註冊成服務之後,以後再啟動和關閉MySQL服務時,僅需執行如下命令:
# 啟動MySQL服務
net start mysql
# 關閉MySQL服務
net stop mysql
windows下設置登錄密碼
管理員為root(擁有最高許可權,管理員賬號),密碼為空,以無密碼的方式登錄了管理員賬號,是非常危險的一件事情,所以要為管理員賬號設置密碼
假定為管理員root賬號密碼為123
C:\Users\mjj>mysqladmin -uroot -p password "123" #設置初始密碼 由於原密碼為空,因此-p可以不用 Mysql版本的不同,可能執行這句指令不起作用,請使用update mysql.user set authentication_string =password('') where User='root';
ps:⚠️不用管它。翻譯為:在命令行界面使用密碼不安全,暴露在終端當中。
再次啟動mysql客戶端並連接服務端:
如果想將原始密碼123,設置新密碼為456
C:\Users\mjj>mysqladmin -uroot -p"123" password "456" #修改mysql密碼,因為已經有密碼了,所以必須輸入原密碼才能設置新密碼
密碼忘記 ---- 破解密碼
跳過授權方式,直接登錄!!
以管理員身份打開cmd
停掉mysql服務端
C:\WINDOWS\system32>net stop mysql # MySQL 服務正在停止. # MySQL 服務已成功停止。
執行如下命令跳過授權表
#跳過授權表 C:\WINDOWS\system32>mysqld --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;
退出mysql。執行命令:exit,
讓用戶去載入許可權,以管理員身份進入cmd,查看當前mysql進程
tasklist |findstr mysql #查看當前mysql的進程
殺死當前的進程,執行如下命令
taskkill /F /PID 6052 # 殺死當前的進程pid
再次執行如下操作,還原
windows下統一字元編碼
進入mysql客戶端,執行\s
ps:因為我已經設置過了,所以顯示的都是utf-8,不過打個碼你們應該看不見(滑稽)
為了統一字元編碼,請執行如下操作:
(1)my.ini文件是mysql的配置文件
在mysql安裝路徑下創建my.ini文件(例如:E:\Program Files\mysql-5.7.23-winx64 在這個位置下創建my.ini文件)
(2)打開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的模式為ONLY_FULL_GROUP_BY
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,ONLY_FULL_GROUP_BY
# mysql埠
port=3306
# 字元集
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
(3)以管理員身份重啟服務,執行如下命令
C:\Windows\system32>net stop MySQL
# MySQL 服務正在停止..
# MySQL 服務已成功停止。
C:\Windows\system32>net start MySQL
# MySQL 服務正在啟動 .
# MySQL 服務已經啟動成功。
(4)在cmd中輸入mysql進入mysql環境,執行\s,顯示如下信息,表示成功
六、Linux版本
安裝
yum install mysql-server
服務端啟動
mysql.server start
客戶端連接
連接: 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