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等多种…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...
<6>-MySQL表的增删查改
目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...

定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
【决胜公务员考试】求职OMG——见面课测验1
2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...