MySql数据库运维学习笔记

数据库运维常识
DQL、DML、DCL 和 DDL 是 SQL(结构化查询语言)中的四个重要类别,它们分别用于不同类型的数据库操作,下面为你简单明了地解释这四类语句:
1. DQL(数据查询语言,Data Query Language)
- 定义:主要用于从数据库中查询数据,不涉及对数据的修改、插入或删除操作。
- 常用命令:
SELECT是 DQL 中最核心的命令,用于指定查询的字段、表以及查询条件等。 - 示例:从
employees表中查询所有员工的姓名和薪水:
SELECT name, salary FROM employees;
1.创建数据库支持中文编码 大小写不敏感(完美且严谨)
CREATE DATABASE IF NOT EXISTS users2 DEFAULT CHARSET UTF8 COLLATE utf8_general_ci;
案例:
MariaDB [(none)]> SHOW CREATE DATABASE users2;
±---------±----------------------------------------------------------------------------------------+
| Database | Create Database |
±---------±----------------------------------------------------------------------------------------+
| users2 | CREATE DATABASE users2 /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci */ |
±---------±----------------------------------------------------------------------------------------+
1 row in set (0.000 sec)
MariaDB [(none)]> show create database users;
±---------±-------------------------------------------------------------------------------------------+
| Database | Create Database |
±---------±-------------------------------------------------------------------------------------------+
| users | CREATE DATABASE users /*!40100 DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci */ |
±---------±-------------------------------------------------------------------------------------------+
2.查询我当前在那个数据库中:
select databases();
3.查看数据表结构:
desc + 数据表名;
4.查看表中所有信息:
select * from + 表名;指定查询 (比如查询: user host password)
2. DML(数据操作语言,Data Manipulation Language)
- 定义:用于对数据库中的数据进行增、删、改操作。
- 常用命令
INSERT:用于向数据库表中插入新的数据记录。UPDATE:用于修改数据库表中已有的数据记录。DELETE:用于从数据库表中删除指定的数据记录。\
1.删除一些无用的用户数据
语法: delelte from 数据库.数据表 where 条件;
delete from mysql.user where user='xxw' and host='192.168.153.*'; //删除mysql数据库下user表 user等于xxw 并且 host=192.168.153.*的用户数据
3. DCL(数据控制语言,Data Control Language)
- 定义:用于控制数据库的访问权限和事务处理,确保数据库的安全性和数据完整性。
- 常用命令
GRANT:用于授予用户或角色对数据库对象(如表、视图等)的特定权限。REVOKE:用于撤销用户或角色已经被授予的权限。COMMIT:用于提交事务,将事务中所做的所有修改永久保存到数据库中。ROLLBACK:用于回滚事务,撤销事务中所做的所有修改。
- 示例
- 授予权限:授予用户
user1对employees表的查询权限。
- 授予权限:授予用户
GRANT SELECT ON employees TO user1;
- 撤销权限:撤销用户
user1对employees表的查询权限。
REVOKE SELECT ON employees FROM user1;
1.案例:给开发创建一个账号 用来连接数据库 和查看数据库信息:
create user test1@'%' identified by '2004129'; //发现可以远程登录但是 无法进行任何操作----
2.接着我们给test1用户赋予查看mysql数据库下的user表权限:
grant select on mysql.user to test1@'%';
2.查询用户权限
备注:默认创建的用户 只有一个USAGE权限(只能登陆)reate user test1@'%' identified by '2004129';
flush privileges; //刷新数据库
4. DDL(数据定义语言,Data Definition Language)
- 定义:用于定义数据库的结构,包括创建、修改和删除数据库对象(如表、视图、索引等)。
- 常用命令
CREATE:用于创建数据库对象,如创建数据库、表、视图等。ALTER:用于修改已存在的数据库对象的结构,如添加列、修改列的数据类型等。DROP:用于删除数据库对象,如删除数据库、表、视图等。
- 示例
- 创建表:创建一个名为
employees的表。
- 创建表:创建一个名为
CREATE TABLE employees (id INT PRIMARY KEY,name VARCHAR(50),salary DECIMAL(10, 2)
);
- 修改表:向
employees表中添加一个新的列department。
ALTER TABLE employees ADD COLUMN department VARCHAR(50);
- 删除表:删除
employees表。
DROP TABLE employees;
副本:
1.查看数据库编码类型:
show variables like 'char%';
2.查找匹配关键字 like
show databases like 'u%'; //只查找以u开头的数据库
3.创建数据表(数据表严格区分大小写)
CREATE TABLE IF NOT EXISTS `tanke` ( id INT, name VARCHAR(100) NOT NULL, jneng VARCHAR(100) NOT NULL, jiage INT NOT NULL, PRIMARY KEY (id) ) ENGINE=innodb DEFAULT CHARSET=utf8; // PRIMARY KEY (id) 设置key为id // ENGINE=innoDB 设置引擎为Innodb
/// 查看创建表信息 show create table + 表名
// 查看表结构 desc +表名MariaDB [kings]> desc tanke;
4.删除数据库
drop database if exists +数据库名;
5.删除数据表
drop table if exists + 表名
用户管理
1.创建用户:
create user test@'%' identified by '密码';
2.授权:
grant all select,input,update,create on 数据库.数据表 to test@'%' identified by '密码';
危险:给予最大权限:grant all privileges on 数据库.数据表 to test@‘%’ identified by ‘密码’;
删除用户: drop user 用户名+‘ip’ // 加不加ip都可以 加了更精准
-----------------------------------------------------------------------------------------------------------------------------2025年2/22 23:51
后端代码连接mysql
php连接mysql脚本
环境安装: sudo dnf install mysqlnd php
脚本运行: php + 文件
<?php
// 数据库连接参数
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database_name";// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);// 检查连接是否成功
if ($conn->connect_error) {die("连接失败: " . $conn->connect_error);
}// 设置字符集为 UTF-8
if (!$conn->set_charset("utf8")) {printf("字符集设置失败: %s\n", $conn->error);exit();
}
echo "连接成功,字符集已设置为 UTF-8<br>";// 执行查询
$sql = "SELECT * FROM your_table_name";
$result = $conn->query($sql);if ($result->num_rows > 0) {// 输出数据while ($row = $result->fetch_assoc()) {echo "ID: " . $row["id"] . " - 姓名: " . $row["name"] . "<br>";}
} else {echo "0 结果";
}// 关闭连接
$conn->close();
?>
Python连接mysql
安装环境:sudo dnf install python3 python3-devel
安装第三方库: pip install pymysql
import pymysql# 数据库连接参数
host = 'localhost'
user = 'your_username'
password = 'your_password'
database = 'your_database_name'
charset = 'utf8'try:# 创建数据库连接connection = pymysql.connect(host=host,user=user,password=password,database=database,charset=charset)print("连接成功,字符集已设置为 UTF-8")# 创建游标对象with connection.cursor() as cursor:# 执行 SQL 查询sql = "SELECT * FROM your_table_name"cursor.execute(sql)# 获取查询结果results = cursor.fetchall()if results:for row in results:print(f"ID: {row[0]}, 姓名: {row[1]}")else:print("0 结果")except pymysql.Error as e:print(f"数据库连接或操作出错: {e}")
finally:# 关闭数据库连接if 'connection' in locals() and connection.open:connection.close()print("数据库连接已关闭")
-----------------------------------------------------\\\\2025 2-23 21.00
一.修该数据表
1.修改数据表名字:
rename table 旧的表名 to 新表名;

2.修改数据表字段
MariaDB [kings]> select * from tanke;
±—±-------±-------±------+
| id | name | jneng | jiage |
±—±-------±-------±------+
| 2 | 刘邦 | 传送 | 18888 |
±—±-------±-------±------+
1 row in set (0.000 sec)
上面 id 就是所谓的字段
3.添加字段
语法:alter table 表名 add 字段名 数据类型 其他…;
alter table tankex add age int;


枚举类型
枚举意思如下图:

alter table tabkes add 字段名 ENUM('XXXX','XXXXX') not null default 'XXXX'; //

4.删除数据表字段
语法:alter table 表名 drop 字段名;
alter table tankex drop host;
二 .添加索引 (索引就像目录一样)
1.查看数据表索引 : show index from 数据库.数据表\G;
2.添加索引:alter table 表名 add index 索引名(字段名);
3.删除索引:alter table 数据表 drop index + 索引名;
三.删除基本语法
1.删除数据库 drop database +数据库名;
2.删除数据表: drop table + 数据表名;
相关文章:
MySql数据库运维学习笔记
数据库运维常识 DQL、DML、DCL 和 DDL 是 SQL(结构化查询语言)中的四个重要类别,它们分别用于不同类型的数据库操作,下面为你简单明了地解释这四类语句: 1. DQL(数据查询语言,Data Query Langu…...
Linux中Shell运行原理和权限(下)(4)
文章目录 前言一、Shell的运行原理二、Linux当中的权限问题Linux权限的概念如何将普通用户添加到信任列表 三、Linux权限管理文件访问者的分类(人)文件类型和访问权限(事物属性)文件权限值的表示方法文件访问权限的相关设置方法如…...
LeetCode热题100- 字符串解码【JavaScript讲解】
古语有云:“事以密成,语以泄败”! 关于字符串解码: 题目:题解:js代码:代码中遇到的方法:repeat方法:为什么这里不用this.strstack.push(result)? 题目&#x…...
每日一题——LRU缓存机制的C语言实现详解
LRU缓存机制的C语言实现详解 参考1. 数据结构设计双向链表节点哈希表节点哈希表LRU缓存结构 2. 初始化哈希表和双向链表哈希函数初始化哈希表初始化双向链表创建LRU缓存 3. 更新双向链表4. 实现Get操作5. 实现Put操作更新节点值删除最久未使用节点插入或更新节点 6. 释放缓存释…...
Leetcode3162:优质数对的总数 I
题目描述: 给你两个整数数组 nums1 和 nums2,长度分别为 n 和 m。同时给你一个正整数 k。 如果 nums1[i] 可以除尽 nums2[j] * k,则称数对 (i, j) 为 优质数对(0 < i < n - 1, 0 < j < m - 1)。 返回 优…...
docker安装etcd:docker离线安装etcd、docker在线安装etcd、etcd镜像下载、etcd配置详解、etcd常用命令、安装常见问题总结
官方网站 官方网址:etcd 二进制包下载:Install | etcd GitHub社区项目:etcd-io GitHub GitHub社区项目版本历史:Releases etcd-io/etcd GitHub 一、镜像下载 1、在线下载 在一台能连外网的linux上执行docker镜像拉取命令…...
Apache SeaTunnel 构建实时数据同步管道(最新版)
文章作者 王海林 白鲸开源 数据集成引擎研发 Apache SeaTunnel Committer & PMC Member,Apache SkyWalking Committer,多年平台研发经验,目前专注于数据集成领域。 导读 在当今数字化快速发展的时代,数据已然成为企业决策…...
递归、搜索与回溯第二讲:二叉树中的深搜 穷举vs暴搜vs深搜vs回溯vs剪枝
递归、搜索与回溯第二讲:二叉树中的深搜 && 穷举vs暴搜vs深搜vs回溯vs剪枝 1.计算布尔二叉树的值2.求根节点到叶结点数字之和3.二叉树剪枝4.验证二叉搜索树5.二叉搜索树中第K小的元素6.二叉树的所有路径7.全排列8.子集 1.计算布尔二叉树的值 2.求根节点到叶…...
Hbase分布式——储存机制
说明: 客户端调用,到达zk。然后到大HMaster(主节点可以有多个但是只有和active在一起的才有效。)。然后找到一个HRegionServer(从节点可以有多个)去做保存操作。 每一个HRegionServer上管理着表的HRegion…...
Word表格中如何只单独调整某一单元格宽度
大家好,我是小鱼。 在日常制作Word表格时,表格中不同单元格有时需要设置不同的宽度,但是很多小伙伴会发现想单独调整某一个单元格宽度时,发现其它单元格宽度也会发生变化。那么,到底怎么才能单独调整某一单元格宽度呢…...
Build错误:Cannot determine build data storage root for project 和 无法加载主类的解决办法的经验分享
Build错误:Cannot determine build data storage root for project 解决方案与经验分享 1. 引言 查看错误信息 “Cannot determine build data storage root for project”的含义: 这是一个关于构建项目时遇到的常见错误。错误信息表明构建工具无法确定…...
【Springboot知识】Logback从1.2.x升级到1.3.x需要注意哪些点?
文章目录 **1. 确认依赖版本**示例依赖配置(Maven): **2. 处理 StaticLoggerBinder 的移除**解决方案: **3. 修改日志配置文件**示例 logback.xml 配置: **4. 检查兼容性问题**Spring Boot 2.x 的兼容性解决方案&#…...
大语言加持的闭环端到端自动驾驶模型 学习笔记纯干货
LMDrive:大语言模型辅助闭环端到端 LMDrive:大语言模型辅助闭环端到端 背景框架输入部分:导航指令:视觉数据:提示指令(可选):处理部分:输出部分: 视觉编码器…...
初阶数据结构(C语言实现)——2算法的时间复杂度和空间复杂度
目录 本节目标1. 算法效率1.1 如何衡量一个算法的好坏1.2 算法的复杂度 2.时间复杂度2.1 时间复杂度的概念2.1.1 入门习题2.1.2 进阶习题 2.2 常见时间复杂度 3. 空间复杂度3.1 常见空间复杂度 本节目标 算法效率时间复杂度空间复杂度常见时间复杂度以及复杂度oj练习 1. 算法…...
MySQL知识
1.Navicat客户端连接 打开navicat,点击连接,点击MySQL 输入连接名与密码,如果连接的mysql是windows下的mysql主机号就填写localhost 填写好后点击测试连接 点击确定,mysql连接navicat成功 2.MySQL数据定义语言(DDL) DDL用于数据库…...
【前端定位线上问题的多种方案(不依赖 Sentry)】
前端定位线上问题的多种方案(不依赖 Sentry) 🛠️ 一、构建时注入调试信息 🔧 1. 注入版本信息与 Git 提交哈希 Webpack 配置: // webpack.config.js const webpack require(webpack); const gitRevision require(…...
怎么修改node_modules里的文件,怎么使用patch-package修改node_modules的文件,怎么修改第三方库原文件。
在开发中会遇到需要node_modules里第三方库有bug,然后需要修改node_modules文件的情况 使用patch-package包可以修改node_modules里的文件 patch-package npm 官网:patch-package - npm 安装 npm i patch-package 修改文件后 npx patch-package s…...
muduo网络库2
Muduo网络库:底层实质上为Linux的epoll pthread线程池,且依赖boost库。 muduo的网络设计核心为一个线程一个事件循环,有一个main Reactor负载accept连接,然后把连接分发到某个sub Reactor(采用轮询的方式来选择sub Reactor)&…...
什么是DrawCall?DrawCall为什么会影响游戏运行效率?如何减少DrawCall?
目录 1 什么是DrawCall? 2 DrawCall为什么会影响游戏运行效率? 3 如何减少 DrawCall?(结合性能分析工具) 1 什么是DrawCall? DrawCall(绘制调用) 是 GPU 的一个指令,…...
LabVIEW电能质量分析软件
随着电力系统的复杂性增加,电能质量问题日益突出,传统的电能质量检测装置多采用DSP技术,不仅开发周期长、功能单一,而且在多功能集成方面存在局限性。基于LabVIEW虚拟仪器开发平台的电能质量分析软件利用FFT、STFT、WT、HHT等多种…...
装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
