学习参考链接: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 如何定位慢查询&…

历史数据分析——广州港

个股简介 公司简介: 华南地区最大的综合性主枢纽港。 本公司是由广州港集团、国投交通、广州发展作为发起人,共同出资以发起方式设立的股份有限公司。 经营分析: 一般经营项目:企业管理服务(涉及许可经营项目的除外);港务船舶调度服务;船舶通信服务;企业自有资金…