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等多种…...
【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...
(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...
