MySQL關系型數據庫學習

學習參考鏈接:https://www.runoob.com/mysql/mysql-tutorial.html

Windows 安裝MYSQL服務端的步驟:https://www.runoob.com/w3cnote/windows10-mysql-installer.html

1. 概念學習

MySQL 是一種關聯數據庫管理系統,關聯數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度并提高了靈活性。

MySQL 使用標準的 SQL 數據語言形式。
MySQL 是可以定制的,采用了 GPL 協議,你可以修改源碼來開發自己的 MySQL 系統。

在這里插入圖片描述

  • 表頭(header): 每一列的名稱;
  • 列(col): 具有相同數據類型的數據的集合;
  • 行(row): 每一行用來描述某條記錄的具體信息;
  • 值(value): 行的具體信息, 每個值必須與該列的數據類型相同;
  • 鍵(key): 鍵的值在當前列中具有唯一性。

在這里插入圖片描述

2. MySQL權限管理

客戶端連接權限

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

表管理權限

GRANT privileges ON database_name.* TO 'username'@'host';

在這里插入圖片描述

3. MySQL配置文件

/etc/my.cnf 文件配置

/etc/my.cnf 文件是 MySQL 配置文件,用于配置 MySQL 服務器的各種參數和選項。

一般情況下,你不需要修改該配置文件,該文件默認配置如下:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock[mysql.server]
user=mysql
basedir=/var/lib[safe_mysqld]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

在配置文件中,你可以指定不同的錯誤日志文件存放的目錄,一般你不需要改動這些配置。

/etc/my.cnf 文件在不同的系統和 MySQL 版本中可能有所不同,但是一般包含以下幾個部分:

  1. 基本設置
    basedir: MySQL 服務器的基本安裝目錄。
    datadir: 存儲 MySQL 數據文件的位置。
    socket: MySQL 服務器的 Unix 套接字文件路徑。
    pid-file: 存儲當前運行的 MySQL 服務器進程 ID 的文件路徑。
    port: MySQL 服務器監聽的端口號,默認是 3306。
  2. 服務器選項
    bind-address: 指定 MySQL 服務器監聽的 IP 地址,可以是 IP 地址或主機名。
    server-id: 在復制配置中,為每個 MySQL 服務器設置一個唯一的標識符。
    default-storage-engine: 默認的存儲引擎,例如 InnoDB 或 MyISAM。
    max_connections: 服務器可以同時維持的最大連接數。
    thread_cache_size: 線程緩存的大小,用于提高新連接的啟動速度。
    query_cache_size: 查詢緩存的大小,用于提高相同查詢的效率。
    default-character-set: 默認的字符集。
    collation-server: 服務器的默認排序規則。
  3. 性能調優
    innodb_buffer_pool_size: InnoDB 存儲引擎的緩沖池大小,這是 InnoDB 性能調優中最重要的參數之一。
    key_buffer_size: MyISAM 存儲引擎的鍵緩沖區大小。
    table_open_cache: 可以同時打開的表的緩存數量。
    thread_concurrency: 允許同時運行的線程數。
  4. 安全設置
    skip-networking: 禁止 MySQL 服務器監聽網絡連接,僅允許本地連接。
    skip-grant-tables: 以無需密碼的方式啟動 MySQL 服務器,通常用于恢復忘記的 root 密碼,但這是一個安全風險。
    auth_native_password=1: 啟用 MySQL 5.7 及以上版本的原生密碼認證。
  5. 日志設置
    log_error: 錯誤日志文件的路徑。
    general_log: 記錄所有客戶端連接和查詢的日志。
    slow_query_log: 記錄執行時間超過特定閾值的慢查詢。
    log_queries_not_using_indexes: 記錄未使用索引的查詢。
  6. 復制設置
    master_host 和 master_user: 主服務器的地址和復制用戶。
    master_password: 復制用戶的密碼。
    master_log_file 和 master_log_pos: 用于復制的日志文件和位置。

4. MySQL表格

表格的列屬性

在這里插入圖片描述

MySQL 數據類型

MySQL 中定義數據字段的類型對你數據庫的優化是非常重要的。

MySQL 支持多種類型,大致可以分為三類:數值、日期/時間和字符串(字符)類型。

5. MySQL客戶端

安裝 MySQL 后,你可以通過以下幾種方式連接到 MySQL 服務端:
1、使用命令行客戶端連接
2、使用圖形化工具連接

常用 MySQL 圖形化管理工具:

MySQL Workbench(官方工具):https://www.mysql.com/cn/products/workbench/

Navicat(付費):https://www.navicat.com/

DBeaver:https://dbeaver.io/

phpMyAdmin(基于Web):https://www.phpmyadmin.net/

DbGate下載地址:https://dbgate.org/download/

在這里插入圖片描述

6. python使用MySQL數據庫

pip install mysql-connector-python
pip install pymysql

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

ORM 框架

對于復雜應用,可以考慮使用 ORM (對象關系映射) 框架,如 SQLAlchemy 或 Django ORM。

7. 防止SQL注入

防范 SQL 注入:

使用參數化查詢或預編譯語句: 使用參數化查詢(Prepared Statements)可以有效防止 SQL 注入,因為它們在執行查詢之前將輸入數據與查詢語句分離。

輸入驗證和轉義: 對用戶輸入進行適當的驗證,并使用合適的轉義函數(如mysqli_real_escape_string)來處理輸入,以防止惡意注入。

最小權限原則: 給予數據庫用戶最小的權限,確保它們只能執行必要的操作,以降低潛在的損害。

使用ORM框架: 使用對象關系映射(ORM)框架(如Hibernate、Sequelize)可以幫助抽象 SQL 查詢,從而降低 SQL 注入的風險。

禁用錯誤消息顯示: 在生產環境中,禁用顯示詳細的錯誤消息,以防止攻擊者獲取有關數據庫結構的敏感信息。

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/907985.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/907985.shtml
英文地址,請注明出處:http://en.pswp.cn/news/907985.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

web攻防之SSTI 注入漏洞

知識簡介 : 模版引擎和框架的區別 ssti的中文翻譯 : 服務端的模版的注入 模版引擎 :前端的用于裝飾優化html的模版 最簡單的就是在騰訊會議中的聊天功能 框架 : 這個是一套獨立存在的邏輯 如TP他是一個區別于php語法的后端邏輯…

【清晰教程】利用Git工具將本地項目push上傳至GitHub倉庫中

Git 是一個分布式版本控制系統,由 Linus Torvalds 創建,用于有效、高速地處理從小到大的項目版本管理。GitHub 是一個基于 Git 的代碼托管平臺,提供了額外的協作和社交功能,使項目管理更加高效。它們為項目代碼管理、團隊協作和持…

極簡以太彩光網絡解決方案4.0正式發布,“彩光”重構園區網絡極簡之道

5月28日下午,銳捷網絡在京舉辦以“光,本該如此‘簡單’”為主題的發布會,正式發布極簡以太彩光網絡解決方案4.0。作為“彩光”方案的全新進化版本,極簡以太彩光4.0從用戶需求出發,聚焦場景洞察,開啟了一場從底層基因出發的極簡革命,通過架構、部署、運維等多維度的創新升級,以強…

Selenium 中 JavaScript 點擊的優勢及使用場景

*在 Selenium 自動化測試中,使用 JavaScript 執行點擊操作(如driver.execute_script("arguments[0].click();", element))相比直接調用element.click()有以下幾個主要優勢: 1. 繞過元素不可點擊的限制 問題場景&#x…

CppCon 2014 學習:Cross platform GUID association with types

類型的 GUID(全局唯一標識符) 是在 COM 編程(Component Object Model) 和某些大型 C 架構(如 Office、DirectX、跨 DLL 接口)中關聯類型信息和實現運行時類型識別與動態接口查詢的重要機制。 下面我們分層解…

Android 11以上App主動連接WIFI的完整方案

早期Android版本App內連接指定的WIFI還是比較簡單的,但是隨著Android版本的提升,限制也越來越多。以下是一套完整的Android 11以上的WIFI應用內主動連接方案。 第一步:添加到建議連接: val wifiManager getSystemService(WIFI_…

讓AI彈琴作曲不再是夢:Python+深度學習玩轉自動化音樂創作

讓AI彈琴作曲不再是夢:Python+深度學習玩轉自動化音樂創作 一、AI也能譜出動人的旋律?真不是科幻! 還記得小時候學鋼琴時老師的那句經典:“感覺不到情緒的樂句,是沒靈魂的。” 當時我一邊練琴一邊想:要是有個機器能幫我寫譜、調性又不跑調就好了! 結果幾年后,真被我碰…

機器學習:集成學習概念、分類、隨機森林

本文目錄: 一、集成學習概念**核心思想:** 二、集成學習分類(一)Bagging集成(二)Boosting集成(三)兩種集成方法對比 三、隨機森林 一、集成學習概念 集成學習是一種通過結合多個基學習器&#…

YOLO機械臂丨使用unity搭建仿真環境,YOLO算法識別,Moveit2控制

文章目錄 前言搭建開發環境在window中安裝Unity創建Docker容器,并安裝相關軟件運行測試改進添加刪除節點前的函數調用 報錯?框選節點的時候報錯?如果無法控制機械臂,查看rviz2的終端,應該會有?規劃路徑超出范圍 參考 前言 本項目介紹通過…

Docker 插件生態:從網絡插件到存儲插件的擴展能力解析

Docker 容器技術以其輕量、快速、可移植的特性,迅速成為構建和部署現代應用的核心工具。然而,盡管 Docker Engine 自身功能強大,但在面對多樣化的生產環境和復雜業務需求時,僅靠核心功能往往無法滿足所有場景。 例如,跨主機的容器網絡通信、異構存儲系統的持久化數據管理…

飛牛fnNAS使用群輝DSM系統

目錄 一、Virtual DSM簡介 二、在飛牛NAS中安裝 1、激活Docker 2、建立路徑 3、創建Compose項目 4、容器啟動 (1)構建容器 (2)容器啟動 5、查看日志 6、登錄DSM地址 7、安裝完成 8、安裝套件示例 9、遠程訪問 10、測試 (1)PC瀏覽器創建筆記 (2)手機創建…

關于FPGA軟核的仿真(一)

MicroBlaze是Xilinx專為FPGA設計的軟核處理器,其本質是通過FPGA的可編程邏輯資源(如查找表LUT、觸發器Flip-Flop)動態構建的處理器架構,其本質為搭建處理器電路。MicroBlaze上運行嵌入式C代碼程序,通過CoreConnect總線…

戶外攝像頭監控如何兼顧安全實時監控

一、技術手段提升隱私安全性 硬件與功能設計 采用支持隱私保護技術的設備,例如帶電子開關的攝像頭(可遠程控制攝像頭啟閉)3,或搭載本地AI算法的設備,僅識別人形、車輛等目標,減少無關信息采集。 使用安全…

【C#朗讀文本DLL動態按鈕控件組及按鈕事件文本框拖放數據】2022-1-21

緣由https://bbs.csdn.net/topics/604357098 DotNetSpeech.dll下載_DotNetSpeech.dll免費版下載 - 系統之家 dotnetspeech.dll 64下載-dotnetspeech.dll下載 v10.2 官方版-IT貓撲網 下載了一個DotNetSpeech.dll,放到 \bin\Debug里,添加引用,…

<5>, Qt系統相關

目錄 一、Qt 事件 1,事件的定義 2,事件的處理 3,鼠標事件 4,按鍵事件 5,定時器 6,事件分發器 7,事件過濾器 二、Qt 文件 1,輸入輸出類 2,文件讀寫類 3&#x…

WordPress主題代碼優化深度指南

引言:為何主題優化至關重要 WordPress作為全球最流行的內容管理系統,其性能表現直接關系到用戶體驗和網站成功。主題代碼優化不僅能夠: 提升頁面加載速度(Google研究表明,頁面加載時間每增加1秒,跳出率增加…

數據結構第6章 圖(竟成)

第 6 章 圖 【考綱內容】 1.圖的基本概念 2.圖的存儲及基本操作:(1) 鄰接矩陣法;(2) 鄰接表法;(3) 鄰接多重表、十字鏈表 3.圖的遍歷:(1) 深度優先搜索;(2) 廣度優先搜索 4.圖的基本應用:(1) 最小 (代價) 生…

【ROS2實體機械臂驅動】rokae xCoreSDK Python測試使用

【ROS2實體機械臂驅動】rokae xCoreSDK Python測試使用 文章目錄 前言正文配置環境下載源碼配置環境變量測試運行修改點說明實際運行情況 參考 前言 本文用來記錄 xCoreSDK-Python的調用使用1。 正文 配置環境 配置開發環境,這里使用conda做python環境管理&…

黑馬Java面試筆記之MySQL篇(優化)

一. 慢查詢 在MySQL中,如何定位慢查詢? 出現慢查詢的情況有以下幾種: 聚合查詢多表查詢表數據量過大查詢深度分頁查詢 表象:頁面加載過慢,接口壓測響應時間過長(超過1s) 1.2 如何定位慢查詢&…

歷史數據分析——廣州港

個股簡介 公司簡介: 華南地區最大的綜合性主樞紐港。 本公司是由廣州港集團、國投交通、廣州發展作為發起人,共同出資以發起方式設立的股份有限公司。 經營分析: 一般經營項目:企業管理服務(涉及許可經營項目的除外);港務船舶調度服務;船舶通信服務;企業自有資金…