mysql 數據庫第一天
Mysql 數據庫
Mysql 數據庫:實質是一個存放和管理文件的軟件
那麽對於MySQL來說有兩個軟件:
——服務器軟件:
socket服務端
本地文件操作
——客戶端軟件:
socket客戶端
發送指令
解析指令(mysql語句)
對於服務器軟件中的socket服務器是一直開著的,客戶端隨時需要連接,還有創建文件、刪除文件、等操作。
對於客戶端軟件中的socket客戶端,我們得需要發送指令去命令socket服務端文件進行操作。
mysql 要掌握的技能(內容):
——安裝 服務器(mysqld)和客戶端(mysql)
——連接
——學習SOL語句規則;命令服務端做任何的操作
數據庫定義:存放數據的倉庫。 數據庫是長期存放在計算機中、有組織、可共享的數據。
數據庫中的數據按一定的數據模型組織、描述和存儲,具有較小的冗余度、較高的數據獨立性、可以進行數據共享
數據庫管理系統(DataBase Management System):
數據庫管理軟件分類
分兩大類: 關系型:如sqllite,db2,oracle,access,sql server,MySQL,註意:sql語句通用 非關系型:mongodb,redis,memcache 可以簡單的理解為: 關系型數據庫需要有表結構 非關系型數據庫是key-value存儲的,沒有表結構
非關系型數據庫是以鍵對應值的方式存儲的。
數據庫服務器、數據管理系統。數據庫。。表與記錄的關系:
記錄:1 xxx 324245234 22(多個字段的信息組成一條記錄,即文件中的一行內容)
表:student,scholl,class_list(即文件)
數據庫:oldboy_stu(即文件夾)
數據庫管理系統:如mysql(是一個軟件)
數據庫服務器:一臺計算機(對內存要求比較高)
總結:
數據庫服務器-:運行數據庫管理軟件
數據庫管理軟件:管理-數據庫
數據庫:即文件夾,用來組織文件/表
表:即文件,用來存放多行內容/多條記錄
Mysql 安裝於基本管理:
添加環境變量:
【右鍵計算機】--》【屬性】--》【高級系統設置】--》【高級】--》【環境變量】--》【在第二個內容框中找到 變量名為Path 的一行,雙擊】 --> 【將MySQL的bin目錄路徑追加到變值值中,用 ; 分割】
5.初始化
1 |
mysqld - - initialize - insecure
|
6.啟動mysql服務
mysqld #啟動MySQL服務
7.啟動mysql客戶端並連接mysql服務端(新開一個cmd窗口)
mysql -u root -p # 連接MySQL服務器
上一步解決了一些問題,但不夠徹底,因為在執行【mysqd】啟動MySQL服務器時,當前終端會被hang住,那麽做一下設置即可解決此問題,即將MySQL服務制作成windows服務
註意:--install前,必須用mysql啟動命令的絕對路徑 # 制作MySQL的Windows服務,在終端執行此命令: "c:\mysql-5.6.40-winx64\bin\mysqld" --install # 移除MySQL的Windows服務,在終端執行此命令: "c:\mysql-5.7.16-winx64\bin\mysqld" --remove 註冊成服務之後,以後再啟動和關閉MySQL服務時,僅需執行如下命令: # 啟動MySQL服務 net start mysql # 關閉MySQL服務 net stop mysql
windows下登錄設置密碼
打開終端,輸入mysql
輸入mysql提供的函數:select user(); # 查看當前登錄的賬號
當前登錄的默認賬號為ODBC@localhost
如果想切到root賬號登錄
執行命令:
mysql -uroot -p
再查看當前用戶:
select user();
管理員為root(擁有最高權限,管理員賬號),密碼為空,以無密碼的方式登錄了管理員賬號,是非常危險的一件事情,所以要為管理員賬號設置密碼
設置管理員root賬號密碼為123
C:\Users\mjj>mysqladmin -uroot -p password "123" #設置初始密碼 由於原密碼為空,因此-p可以不用
ps:??不用管它。翻譯為:在命令行界面使用密碼不安全,暴露在終端當中。
然後再登錄賬號,不輸入密碼則會出現如下結果:
再次執行如下操作:
再查看一下當前登錄的賬號:
如果想將原始密碼123,設置新密碼為456
C:\Users\mjj>mysqladmin -uroot -p"123" password "456" #修改mysql密碼,因為已經有密碼了,所以必須輸入原密碼才能設置新密碼
依次執行如下操作:
mysql -uroot -p456 select user();
密碼忘記——破解密碼
跳過授權方式,直接登錄!!
0.以管理員身份打開cmd
2.停掉mysql服務端
C:\WINDOWS\system32>net stop mysql MySQL 服務正在停止. MySQL 服務已成功停止。
3.執行如下命令跳過授權表
#跳過授權表 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.
4.再次查看
5. 現在可以任意的更改密碼,執行如下命令
update mysql.user set authentication_string =password(‘‘) where User=‘root‘;
6.刷新權限,執行命令
flush privileges;
7.退出mysql。執行命令:exit,
8.讓用戶去加載權限,以管理員身份進入cmd,查看當前mysql進程
1 |
tasklist |findstr mysql #查看當前mysql的進程
|
9.殺死當前的進程,執行如下命令
taskkill /F /PID 6052 # 殺死當前的進程pid
10.再次執行如下操作,還原
統一字符編碼
進入mysql客戶端,執行\s
為了統一字符編碼,請執行如下操作:
(1)my.ini文件是mysql的配置文件,
在C:\mysql-5.6.40-winx64文件下創建my.ini文件
(2)將如下代碼拷貝保存。
#mysql5.5以上:修改方式為 [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,顯示如下信息,表示成功
註: \c 表示上一行代碼不執行;
內容補充:
進程相關:
——查看進程:
tasklist | findstr mysql
——關閉進程:
taskkill /F /PID 進程號
mysql 數據庫第一天