[toc] 1. 資料庫是什麼 存數據的倉庫 2. 為什麼使用資料庫 1. 管理大量數據 2. 支持併發操作 3. 支持高級的操作,比如分組,鏈表等 3. 資料庫的分類 1. 關係型資料庫 表結構存儲,對每一列的數據的類型會有約束,數據存在硬碟中 Mysql(免費,企業用的多),maridb,Sql ...
目錄
1. 資料庫是什麼
存數據的倉庫
2. 為什麼使用資料庫
- 管理大量數據
- 支持併發操作
- 支持高級的操作,比如分組,鏈表等
3. 資料庫的分類
1. 關係型資料庫
表結構存儲,對每一列的數據的類型會有約束,數據存在硬碟中
Mysql(免費,企業用的多),maridb,Sqlserver(大學、政府),Oracle(金融公司,阿裡),sqlite(自己玩的小型資料庫)
2. 非關係型資料庫
key-value存儲,對於數據沒有約束,數據存在記憶體中
memcache(十年前的產品,未能解決斷電即消失的問題),mongodb(文檔型資料庫,爬蟲),redis(微博)
4. mysql的架構
類似於socket的客戶端和服務端
- 流程
- MySQL服務端先啟動,監聽在某一個特定的埠(3306)
- MySQL客戶端連接服務端
- MySQL客戶端就可以發送相關的操作命令,去操作服務端存儲的數據
5. mysql的安裝
1. windows的安裝
- 下載:MySQL Community Server 5.7.16
http://dev.mysql.com/downloads/mysql/ - 解壓
如果想要讓MySQL安裝在指定目錄,那麼就將解壓後的文件夾移動到指定目錄,如:E:\mysql-5.7.16-winx64
- 添加環境變數
【右鍵電腦】--》【屬性】--》【高級系統設置】--》【高級】--》【環境變數】--》【在第二個內容框中找到 變數名為Path 的一行,雙擊】 --> 【將MySQL的bin目錄路徑追加到變值值中,用 ; 分割】 - 初始化
mysqld --initialize-insecure
:創建data目錄, 初始化的數據 - 啟動MySQL服務
mysqld
:啟動MySQL服務 - 啟動MySQL客戶端並連接MySQL服務
mysql -u root -p
: 連接MySQL伺服器
2. windows服務
上一步可以運行MySQL,但不夠徹底,執行mysql
執行服務端會阻塞住,因此要將MySQL添加到windows服務
添加windows服務
cmd運行命令:
"e:\mysql-5.7.16-winx64\bin\mysqld" --install
註意:--install前,必須用mysql啟動命令的絕對路徑
啟動MySQL服務
cmd運行命令:
net start mysql
關閉MySQL服務
cmd運行命令:
net stop mysql
移除windows服務
cmd運行命令:
"e:\mysql-5.7.16-winx64\bin\mysqld" --remove
註意:這裡的路徑也必須是絕對路徑
3. 設置密碼
mysql -u root -p
: 管理員root用戶 ,預設沒有密碼
- -u:user 用戶名
- -p:password 密碼
- -h:host 主機名或IP
mysql -uroot -p -h 192.168.1.10
- -P:port 預設是3306
管理員登錄的情況下:
set password = password('密碼');
# 給當前資料庫設置密碼沒有登錄的情況下:
mysqladmin -uroot password "123"
:設置初始密碼 由於原密碼為空,因此-p可以不寫mysqladmin -uroot -p "原密碼" password "新密碼"
:修改mysql密碼,因為已經有密碼了,所以必須輸入原密碼才能設置新密
4. 忘記密碼
- 關閉mysqld的windows服務
- cmd中執行:
mysqld --skip-grant-tables
(不用密碼就可以登錄,繞過密碼驗證的許可權) - cmd中執行:
mysql
- cmd中執行:
update mysql.user set authentication_string=password('新密碼')where user = 'root';
- cmd中執行:
flush privileges;
- cmd中執行:
tasklist | findstr mysqld
或taskkill -f /PID 進程號
- 重新啟動
5. 新建賬號
MySQL> create user 'nick'@'192.168.10.%' IDENTIFIED BY '123';# 指示網段
MySQL> create user 'nick'@'192.168.10.5' # 指示某機器可以連接
MySQL> create user 'nick'@'%' #指示所有機器都可以連接
MySQL> show grants for 'nick'@'192.168.10.5';查看某個用戶的許可權
# 遠程登陸
$ MySQL -uroot -p123 -h 192.168.10.3
# 給賬號授權
MySQL> grant all on *.* to 'nick'@'%';
MySQL> flush privileges; # 刷新使授權立即生效
# 創建賬號並授權
MySQL> grant all on *.* to 'nick'@'%' identified by '123'