MySQL必知必会 | 安全、维护、性能
全球化和本地化
关于MySQL处理不同字符集和语言
字符集和校对顺序
数据库被用来存储和检索数据,不同的语言和字符集需要以不同的方式存储和检索,因此,MySQL需要适应不同的字符集,适应不同的排序方式
一些术语:
字符集:字母和富豪的集合
编码:某某个字符成员的内部表示
校对:规定字符如何比较的指令
使用字符集和校对顺序
查看MySQL所支持的字符集完整列表
SHOW CHARACTER SET;
查看所支持校对的完整列表
SHOW COLLATION;
确认系统使用的字符集和校对
SHOW VARIABLES LIKE 'character%';
SHOW VARIABLES LIKE 'collation%';
一般情况下,不同的表甚至不同的列都可能需要不同的字符集,可以在创建表的时候指定
CREATE TABLE table_name
(col_name_1 type,col_name_2 type CHARACTER SET character_name COLLATE collate_name
)DEFAULT CHARACTER SET character_nameCOLLATE collate_name;
MySQL决定字符集和校对的方式
- 如果指定
CHARACTER SET
和COLLATE
两者,则使用这些值 - 如果只指定
CHARACTER SET
,则使用词字符集以及其对应的默认校对 - 如果两者都不指定,则使用数据库默认的字符集和校对
校对在对用ORDER BY
子句检索出来的数据排序时,起到重要的作用(如是否考虑大小写),如果需要用与常见表示不同的校对顺序排序特定的SELECT
语句,可以在语句自身中设置
SELECT * FROM table_nmae
ORDER BY COL_1,COL_2 COLLATE collate_name
COLLATE
还可以使用于GROUP BY
/HAVING
/聚集函数/别名
安全管理
关于访问控制和用户管理
访问控制
- MySQL服务器的安全基础是,用户应该对他们需要的数据具有合适的访问权
- 管理访问控制需要创建和管理用户账号
root
账号对整个MySQL数据库具有完全控制,在日常的MySQL操作中不应该使用它
管理用户
-
MySQL用户账号和信息存储在名为
mysql
的MySQL
数据库中,当需要获取所有用户账号列表时,可以使用以下代码USE mysql; SELECT user FROM user;
-
创建用户账号
CREATE USER user_name IDENTIFIED BY 'password';
INENTIFIED BY
指定的口令为纯文本
-
重命名一个用户账号
RENAME USEER user_name TO new_name;
-
删除用户帐号
DROP USER user_name;
删除用户账号及其相关权限
-
查看用户访问权限
SHOW GRANTS FOR user_name;
-
授予用户权限
GRANT option ON table_name.col_name TO user_name
-
撤销权限
REVOKE option ON table_nmae.col_name FROM user_name
-
可以被操作的权限
权限 说明 ALL
除了 GRANT OPTION
以外所有权限ALTER
CREATE
DELETE
DROP
EXECUTE
使用 CALL
和存储过程FILE
使用 SELECT INTO OUTFILE
和LOAD DATA INFILE
GRANT OPTION
INDEX
INSERT
LOCK TABLES
PROCESS
RELOAD
REPLICATION
SELECT
SHOW
SHUTDOWN
SUPER
UPDATE
USAGE
无访问权限 授权时,用户必须先存在,但是被授权的对象可以不存在,这样的副作用是,当某个数据库或表被删除时,相关的权限仍然存在,如果未来再次创建这些数据库和表,这些权限仍然起作用
-
更改口令
SET PASSWORD FOR user_name = Password('PASSWORD')-- 更新当前登录用户的口令
SET PASSWORD = Password('password')
数据库的维护
备份数据
MySQL数据库时基于磁盘的文件,普通的备份系统和例程就能备份MySQL的数据,但是由于这些文件总是处于打开和使用的状态,普通的文件副本备份不一定总是有效
几种解决方案:
- 使用命令函实用程序
mysqldump
转储所有数据库内容到某个外部文件 - 可用命令行实用程序
mysqlhotcopy
从一个数据库复制所有数据 - 使用
BACKUP TABLE
或·SELECT INTO OUTFILE
转储所有数据到某个外部文件
为了保证所有数据都被写到磁盘(包括索引数据),可能需要在进行备份前使用 FLUSH TABLES
语句
进行数据库维护
ANALYZE TABLE
用来检查表健是否正确
CHECK TABLE
用来针对许多问题对表进行检查
诊断启动问题
服务器启动问题通常在对MySQL配置或服务器本身进行更改时出现
MySQL在这个问题发生时报告错误,但由于多数MySQL服务器是作为系统进程或服务自启动的,这个消息可能看不到
在排除系统启动问题时,首先应该尽量手动启动服务器
MySQL服务器自身通过在命令杭商执行mysqld
启动
几个重要的mysqld
命令行选项
--help
显示帮助--safe-mode
装在减去某些最佳配置的服务器--verbose
显示全文本消息--version
显示版本信息然后退出
查看日志文件
MySQL维护管理员依赖的一系列日志文件
主要日志文件有以下几种:
- 错误日志
- 查询日志
- 二进制日志
- 缓慢查询日志
改善性能
在诊断应用的滞缓现象和性能问题时,性能不良的数据库通常是最常见的祸因
性能优化讨论和分析的出发点:
- 硬件建议
- 专用服务器
- 调整内存分配、缓冲区大小
- 多线程
- 编写
SELECT
语句的方式 - 使用存储过程
- 正确的数据类型
- 检索用于数据
DELAYED
关键字- 开启和关闭自动提交
- 索引
- or 和 union
- like 和 fulltext
- 每条规则都会在某些情况下被打破
相关文章:
MySQL必知必会 | 安全、维护、性能
全球化和本地化 关于MySQL处理不同字符集和语言 字符集和校对顺序 数据库被用来存储和检索数据,不同的语言和字符集需要以不同的方式存储和检索,因此,MySQL需要适应不同的字符集,适应不同的排序方式 一些术语: 字符…...
MaaS Model as a Service 模型即服务
大模型是人工智能的发展趋势和未来。大模型是“大算力强算法” 结合的产物。目前,大模型生态已初具规模。大模型能够实现 AI 从“手工作坊”到“工厂模式”的转变,大模型通常是在大规模无标注 数据上进行训练,学习出一种特征和规则…...
【编程基础】027.C语言中函数在解题中的应用(三)
文章目录C语言中函数的应用1、自定义函数实现二维数组的转置2、自定义函数之整数处理3、自定义函数之数字后移4、自定义函数之字符串拷贝C语言中函数的应用 1、自定义函数实现二维数组的转置 题目描述 写一个函数,使给定的一个二维数组(3&a…...
echart图表之highcharts
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、HighCharts是什么?二、使用步骤1.引入库2.前端代码3.展现结果4.后台自动截图总结前言 提示:这里可以添加本文要记录的大概内容&…...
关于.Net和Java的看法——我见过最牛的一个小实习生经历
1、背景 笔者(小方同学在学习)是一个专科院校的一名普通学生,目前就职于某三线城市的WEB方面.Net开发实习生,在找实习期间和就业期间的一些看法,发表此文,纯个人想法,欢迎讨论,指正…...
基于springboot+vue的“智慧食堂”程序设计实现【毕业论文,源码】
系统登录界面系统架构开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7数据库工具:Navicat开发软件:eclipse/myeclipse/ideaMaven包:Maven浏览器…...
学计算机选择什么编程语言好一些?
工资水平的话,目前人工智能、大数据和云计算等领域的工资相对较高,但是要求也高,学历,学习能力什么的。然后是后端开发,Python、Java、C等编程语言的工资普遍较高。 不用开发语言的优势 Java:Java是一种…...
持续集成 在 Linux 上搭建 Jenkins,自动构建接口测试
本篇把从 0 开始搭建 Jenkins 的过程分享给大家,希望对小伙伴们有所帮助。 文章目录 在 Linux 上安装 Jenkins在 Linux 上安装 Git在 Linux 上安装 Python在 Linux 上安装 Allure配置 Jenkinsjenkins 赋能 - 使用邮箱发送测试报告jenkins 赋能 - 优化测试报告内容…...
MySQL学习笔记(总结)
1. 数据库服务器操作命令 启动数据库:net start mysql80 (注释:windows命令) 停止数据库:net stop mysql80 (注释:windows命令) 重启数据库:systemctl restart mysql;…...
Android开发 Layout布局 ScrollView
1.LinearLayout 属性 orientation:内部组件排列方式,可选vertical、horizontal,默认horizontal layout_weight: 与平级组件长宽比例,需要将layout_width、layout_height其中一个设置为0dp,表明长或宽与平级组件的长…...
手撕数据结构与算法——树(三指针描述一棵树)
🏆作者主页:king&南星 🎄专栏链接:数据结构 🏅文章目录🌱树一、🌲概念与定义二、🌳定义与预备三、🌴创建结点函数四、🍀查找五、🍁插入六、&a…...
字节跳动Java后端开发实习面经
最近在和同学一起找实习,投了b站、字节和miHoYo的后端开发。b站二月底就投了,但现在也还没回复;miHoYo也还没回复,估计是只面向24届了;感谢字节,给了我面试的机会。字节真的处理好快,不到一周官…...
STM32实战项目-触摸按键
前言: 通过触摸按键控制LED灯以及继电器,具体实现功能如下: 1、触摸按键1单击与长按,控制LED1; 2、触摸按键2单击与长按,控制LED2; 3、触摸按键3单击与长按,控制LED3; 4、触摸按键4单击与长…...
安全行业-术语(万字)
肉鸡 所谓“肉鸡”说一种很形象的比喻,比喻那些可以任意被我们控制的电脑,对方可以是Windows系统,也可以说UNIX/linux系统,可以说普通的个人电脑,也可以是大型的服务器,我们可以像操作自己的电脑那样来操控…...
P1113 杂务(拓扑排序 or 记忆回溯)
题目描述 John的农场在给奶牛挤奶前有很多杂务要完成,每一项杂务都需要一定的时间来完成它。比如:他们要将奶牛集合起来,将他们赶进牛棚,为奶牛清洗乳房以及一些其它工作。尽早将所有杂务完成是必要的,因为这样才有更…...
Web3中文|政策影响下的新加坡Web3步伐喜忧参半
如果说“亚洲四小龙”是新加坡曾经的荣耀,那么当时代进入21世纪的第二个十年,用新加坡经济协会(SEE)副主席、新加坡新跃社科大学教授李国权的话来说,新加坡现在的“荣耀”是全球金融的主要“节点”或区块链行业发展的关…...
Java数据库高阶面试题,好程序员学员分享百度Java面试流程
小源下面分享一位好程序员的学员去百度Java面试流程!百度技术一面(20分钟)1、自我介绍很流畅捡重点介绍2、数据结构算法好不好挺好的(其实心还是有点虚,不过最近刷了很多好程序员出的题感觉没问题!)3、找到单链表的三等分点,如果单…...
栈和队列习题精选(持续更新中)
第一题(括号匹配)给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。有效字符串需满足:1.左括号必须用相同类型的右括号闭合。2.左括号必须以正确的顺序闭合。…...
大数据开发 - Java入门6
目录标题do-while循环练习1:从键盘输入单词,讲输入的单词输出到控制台,输入是exit时退出循环练习2:键盘输入密码和确认密码,两次密码一致就退出循环打印注册成功,两次密码不一致就循环输入两次密码死循环fo…...
开源超级终端工具——WindTerm
1、下载和安装(我的是win10,其他版本各位自选) Releases kingToolbox/WindTerm GitHub 安装的话,相信大家不用我赘述了。 初始界面是这样的: 2、WindTerm使用 2.1 本地会话(最下面那个框,发…...
【Linux】信号常见概念
文章目录信号入门生活中的信号技术应用角度的信号signal函数注意事项信号的概念信号的产生信号的记录(保存)信号处理常见方式概述信号入门 生活中的信号 你在网上买了很多件商品,在等待不同商品快递的到来 但即便快递还没有到来,你也知道快递到了的时候应该怎么处理快递,也就…...
15000 字的 SQL 语句大全 第一部分
一、基础 1、说明:创建数据库CREATE DATABASE database-name 2、说明:删除数据库drop database dbname 3、说明:备份sql server--- 创建 备份数据的 device USE master EXEC sp_addumpdevice disk, testBack, c:\mssql7backup\MyNwind_1.dat …...
突发——字节跳动被要求出售 TikTok 股票,否则禁令,低代码也曾被打压
一、欲加之罪,何患无辞! 正值人们对TikTok和其它社交媒体平台对年轻用户的影响进行更广泛、持续的反思之际,美政客们以数据安全为由要求TikTok出售股票,已然不顾文明国家的体面。 在美国,TikTok拥有1.4亿用户&#x…...
2023年网络安全趋势
数据安全越来越重要。 我国《数据安全法》提出“建立健全数据安全治理体系”,各地区部门均在探索和简历数据分类分级、重要数据识别与重点保护制度。 数据安全治理不仅是一系列技术应用或产品,更是包括组织构建、规范制定、技术支撑等要素共同完成数据…...
html练习
1.用户注册界面 代码: <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><body><form action"#" method"get"><table border"1" widt…...
【Redis】Redis 是如何保证高可用的?(背诵版)
Redis 是如何保证高可用的?1. 说一下 Redis 是如何保证高可用的?2. 了解过主从复制么?2.1 Redis 主从复制主要的作用是什么?2.2 Redis 主从模式的拓扑结构?(1)一主一从结构(2)一主多…...
Qt---去掉标题栏后,最大化应用程序窗口时,窗口遮住了任务栏
// showMaximized(); // Qt最大化显示函数 任务栏都会覆盖static bool max false;static QRect location this->geometry();if (max) {this->setGeometry(location);//回复窗口原大小和位置// ui->maxBtn->setIcon(QIcon(":/MAX_.png"));}else {// ui-…...
Cadence Allegro 导出Netin(non-back)报告详解
⏪《上一篇》 🏡《上级目录》 ⏩《下一篇》 目录 1,概述2,Netin(non-back)作用3,Netin(non-back)示例4,Netin(non-back)导出方法4.1,方法1:4.2,方法2:B站关注“硬小二”浏览更多演示视频...
HTML语言
1.什么是HTML? 1、HTML是超文本标记语言(Hyper Text Markup Language) 2、HTML由各种各样的标签(tag)组成,如、 3、HTML文档 网页 (1)一种纯文本文件,扩展名为.html或.html; (2)最终显示结果取决…...
线性代数之行列式
一、思维导图二、二阶、三阶行列式的定义1、二阶行列式2、三阶行列式沙路法展开3、解方程3.1解二元一次方程组观察上面两个未知量的值不难发现,它 们的分母均是上述方程组未知量的系数形成的二阶行列式,𝑥1的分子是将系数行列 式的第一列换成…...
青海网站建设西宁网络科技公司/惠州网站seo
背景由于微服务使用的“主从复制”的高可用方案,在k8s部署时需要区分主节点和从节点,而且需要对应用的存储状态进行管理,选择使用k8s的statefulset对后台服务进行部署。关于如何搭建k8s集群,请参考文章:Eric Liu&#…...
柳市网站建设公司/免费s站推广网站
前言: 在使用vue框架进行开发的时候可能会使用到组件的递归,比如常见的树形结构。 代码如下: <!DOCTYPE html> <html><head><meta charset"utf-8"><meta name"viewport" content"width…...
wordpress 文章模块/北京软件开发公司
2019独角兽企业重金招聘Python工程师标准>>> 1.选择 File|setting 2.在Editor|File and Code Templates,见下图标记更改即可 转载于:https://my.oschina.net/u/3477605/blog/1791002...
杭州市在建工程项目/手机网站优化排名
目录 1.卸载本地jdk 1.1检查一下系统中是否安装jdk版本 1.2检测jdk安装包 1.3卸载本地openjdk 1.4之后再次输入rpm -qa | grep java 查看卸载情况: 2.在线下载JDK 2.1进入要安装jdk的目录 2.2方式一在线下载 方式二离线安装(推荐) rz命令选中本地文…...
邯郸做移动网站报价/优化快速排名教程
VIM 操作 vim 选中多行后批量缩进 ”shiftv“选中行使用””进行缩进 vim 全选功能 gg光标移动到首行 V进入可视模式(visual) G光标移动到最后一行 了解spf13 1.spf13-vim常用插件EasyMotion Vim:4th Level – Vim Superpowers 参考文献࿱…...
深圳专业网站建设公司/如何引流被动加好友微信
https://share.weiyun.com/5OxmUiI...