【MySQL】Linux中MySQL的使用及配置

news2024/10/7 3:19:26

一、字符集修改

1、MySQL8.0之前,字符集都默认是latin1,从MySQL8.0开始,字符集utf8mb4,这意味着,在默认情况下,MySQL8.0之前都是不支持中文的

# 查看字符集信息,主要是character_set_server和character_set_database
show variables like '%character%';

# 创建一个database,进行插入中文测试
create database dbtest1;

create table test1(
id INT,
name VARCHAR(10)
);

insert into test1(id,name)VALUES(1,'decade');
insert into test1(id,name)VALUES(2,'十年');

我们发现,在MySQL5.7中,如果不修改字符集,插入中文时会报错

insert into test1(id,name)VALUES(2,'十年')
1366 - Incorrect string value: '\xE5\x8D\x81\xE5\xB9\xB4' for column 'name' at row 1

2、修改字符集
Windows系统中,我们要修改MySQL的字符集,需要修改my.ini文件
而在Linux系统中,MySQL的配置文件为/etc/my.cnf

vim /etc/my.cnf

# 输入i,进入编辑模式,在mysqld标签下加入如下配置,设置服务器级别的字符集
character_set_server=utf8
# 输入esc退出编辑模式,:wq!,保存文件的变更

# 保存后,重启MySQL服务
systemctl restart mysqld

注意:上述指令不会已经创建的database的字符集产生影响
在建表时,如果没有显式指定字符集,那么新建表的字符集会和当前database的字符集保持一致

3、修改已创建的database或者表的字符集

# 修改database的字符集
ALTER DATABASE dbtest1 CHARACTER set 'utf8';
# 查看数据库database的字符集
show create DATABASE dbtest1;
# 修改已创建表的字符集
ALTER TABLE test1 CONVERT to CHARACTER set 'utf8';
# 修改已创建表的字符集和比较规则
ALTER TABLE test1 CHARACTER set 'utf8' COLLATE 'utf8_general_ci'; 
# 查看已创建表的字符集
show create table test1;
# 修改字段的字符集
alter table test1 modify name varchar(10) character set utf8;

4、MySQL存在四个级别的字符集

  • 服务器级别
  • 数据库级别
  • 表级别
  • 列级别

优先级,列>表>数据库>服务器,如果优先级高的没有设置字符集,那么默认使用它上一级的字符集

二、SQL大小写规范

1、在SQL中,关键字(如SELECT、WHERE、ORDER、GROUP BY等)以及函数名(如ABS、ROUND、MAX)是不区分大小写的
2、Windows默认对大小写不敏感,Linux对大小写是敏感的
分别在Windows和Linux中执行SHOW VARIABLES LIKE '%lower_case_table_names%';,结果如下
在这里插入图片描述
在这里插入图片描述

  • value默认为0,表示大小写敏感
  • value设置为1表示不敏感,创建的数据库和表都是以小写的形式放在磁盘中,sql语句都是先转换成小写再去执行
  • value设置为2,数据库和表按照创建时的大小写进行存放,sql的执行也会先转换成小写

3、Linux中MySQL的大小写规则

  • 数据库名、表名、表的别名、变量名严格区分大小写
  • 关键字、函数名在SQL中不区分大小写
  • 列名、列的别名忽略大小写

4、SQL编写规范

  • 关键字、函数名全部大写
  • 数据库名、表名、表的别名、字段名、字段别名等全部小写,便于和关键字、函数名进行区分
  • SQL语句以分号结尾

三、sql_mode

1、sql_mode会影响MySQL支持的语法以及数据校验的严格性

2、宽松模式和严格模式

  • 如果sql_mode是宽松模式,当插入的数据不满足要求时,也可能会被接受,而且不会报错
  • 如果是严格模式,当试图插入错误数据时,数据库不会接受,会报error错误,并且事务回滚

3、sql_mode的查看与修改

  • 查看
mysql> select @@SESSION.sql_mode;
+-------------------------------------------------------------------------------------------------------------------------------------------+
| @@SESSION.sql_mode                                                                                                                        |
+-------------------------------------------------------------------------------------------------------------------------------------------+
| ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+-------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)


mysql> select @@GLOBAL.sql_mode;
+-------------------------------------------------------------------------------------------------------------------------------------------+
| @@GLOBAL.sql_mode                                                                                                                         |
+-------------------------------------------------------------------------------------------------------------------------------------------+
| ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+-------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SHOW VARIABLES LIKE 'sql_mode';
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
| Variable_name | Value                                                                                                                                     |
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
| sql_mode      | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql>
  • 临时修改:修改session会话或者全局global变量
# 只在当前会话中有效
SET SESSION sql_mode = 'STRICT_TRANS_TABLES';
# 只在当前服务中有效,MySQL服务重启就会失效
SET GLOBAL sql_mode = 'STRICT_TRANS_TABLES';
  • 永久修改:修改配置文件my.cnf并重启MySQL服务
[mysqld]
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

如有错误,欢迎指正!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1854939.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024全国各地高考录取分数线一览表(含一本、二本、专科)

2024年高考录取分数线陆续公布,上大学网(www.sdaxue.com)为大家整理全国31个省市高考录取分数线汇总,包括本科批、专科批和特殊类招生控制分数线汇总,来看看你的省份多少分能上大学吧。 一、2024年全国高考录取线一览表 1、宁夏 一本线&…

3d隐藏模型为什么就不见了?---模大狮模型网

在3D建模和设计过程中,经常会遇到需要隐藏某些模型的情况。然而,有时候隐藏之后再也找不到这些模型了。这种情况可能让人感到困惑和沮丧。本文将探讨3D隐藏模型后“消失”的原因,并提供一些解决方法,帮助您更好地管理和查找隐藏的…

Vue的Router?一个小demo秒了

效果展示 正文 登录页 <template><div><div class"login"><h3>图书管理系统</h3><div class"user"><span>账号&#xff1a;</span><input type"text" v-model"user" /></…

监控 Promethus的监控告警Alertmanager、Grafana

Promethus的监控告警Alertmanager Alertmanager 介绍 Prometheus的一个组件&#xff0c;用于定义和发送告警通知&#xff0c;内置多种第三方告警通知方式&#xff0c;同时还提供了对Webhook通知的支持基于警报规则对规则产生的警报进行分组、抑制和路由&#xff0c;并把告警发…

Nginx基础概念和常用操作

文章目录 1. 安装、启动、连接2. 快速尝试部署网站3. 配置文件1. nginx.conf全局配置事件模块HTTP 模块性能优化建议 2. default.confserver 块基本设置日志设置根路径设置 4. 反向代理1. 模拟3个Web2. 链接 5. 负载均衡1. 加权轮询&#xff0c;Weighted Round Robin2. 最少连接…

【LeetCode刷题】232.用栈实现队列

目录 题目链接 图解思路 整体结构 实现过程 入队列 出队列 实现代码 MyQueue.h MyQueue.c stack.h stack.c test.c 题目链接 232. 用栈实现队列 - 力扣&#xff08;LeetCode&#xff09; 图解思路 整体结构 实现过程 入队列 插入数据时&#xff0c;插入到ist。…

SpringBoot使用AutoConfigure实现依赖库自动导入配置

我们知道导入配置有两种&#xff0c;一种是Value&#xff0c;一种是ConfigurationProperties&#xff0c;将对应的类标记为Component即可导入。但是被注解标识的类创建Bean有一个前提&#xff0c;只对启动类所在的包路径下的所有带有Component等注解的类才会创建Bean。如果我们…

Java智慧工地源码 5G智慧工地系统源码 使用SAAS部署 三维可视化管理,与一线生产过程相融合,集成数据后台,统一前端入口,呈现多方项目信息;

Java智慧工地源码 5G智慧工地系统源码 使用SAAS部署 三维可视化管理&#xff0c;与一线生产过程相融合&#xff0c;集成数据后台&#xff0c;统一前端入口&#xff0c;呈现多方项目信息; 智慧工地是指运用信息化手段&#xff0c;通过三维设计平台对工程项目进行精确设计和施工…

Java程序之素数问题

题目&#xff1a; 判断101-200之间有多少个素数&#xff0c;并输出所有素数。 程序分析&#xff1a; 判断素数的方法&#xff1a;用一个数分别去除2到sqrt(这个数)&#xff0c;如果能被整除&#xff0c;则表明此数不是素数&#xff0c;反之是素数。素数被利用在密码学上&#…

Kubernetes排错(七)-Pod 状态一直 ContainerCreating

查看 Pod 事件 $ kubectl describe pod apigateway-6dc48bf8b6-l8xrw -n cn-staging 异常原因 1&#xff09;no space left on device ... Events:Type Reason Age From Message---- ------ …

移远通信发布高性价比智能模组SC200P系列,赋能金融支付等行业智慧升级

近日&#xff0c;全球领先的物联网整体解决方案供应商移远通信宣布&#xff0c;为满足智慧金融、智能家居、智能穿戴、工业手持等消费和工业应用对高速率、多媒体、长生命周期等终端性能的需求&#xff0c;其正式推出基于紫光展锐UNISOC 7861平台的全新8核4G智能模组SC200P系列…

TypedDict 解析

TypedDict 解析 文章目录 TypedDict 解析1. 类型安全性2. 可读性3. 可维护性TypedDict 的解决方案没有 TypedDict 会发生什么&#xff1f;使用 TypedDict 的优势 TypedDict 应用场景1. 配置文件解析2. API 数据解析3. 数据库记录表示4. 表单数据验证5. 大型团队协作6. 静态类型…

数据可视化在智慧社区中的关键应用

数据可视化能够在智慧社区中发挥重要作用&#xff0c;通过直观和交互的方式将复杂的数据呈现出来&#xff0c;提升社区管理效率&#xff0c;优化居民生活体验&#xff0c;促进社区的可持续发展。在智慧社区中&#xff0c;数据可视化的应用涵盖了安全、环境、能源、交通和公共服…

AI播客下载:Eye on AI(AI深度洞察)

"Eye on A.I." 是一档双周播客节目&#xff0c;由长期担任《纽约时报》记者的 Craig S. Smith 主持。在每一集中&#xff0c;Craig 都会与在人工智能领域产生影响的人们交谈。该播客的目的是将渐进的进步置于更广阔的背景中&#xff0c;并考虑发展中的技术的全球影响…

【React】登录-封装Token的存取删方法--共享复用

在token.js中 // 封装存取方法const TOKENKEY token_keyfunction setToken (token) {return localStorage.setItem(TOKENKEY, token) }function getToken () {return localStorage.getItem(TOKENKEY) }function clearToken () {return localStorage.removeItem(TOKENKEY) }ex…

tensorRT C++使用pt转engine模型进行推理

目录 1. 前言2. 模型转换3. 修改Binding4. 修改后处理 1. 前言 本文不讲tensorRT的推理流程&#xff0c;因为这种文章很多&#xff0c;这里着重讲从标准yolov5的tensort推理代码&#xff08;模型转pt->wts->engine&#xff09;改造成TPH-yolov5&#xff08;pt->onnx-…

微信小程序毕业设计-在线厨艺平台系统项目开发实战(附源码+论文)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;微信小程序毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计…

XSS漏洞实验

本篇为xss漏洞实验练习&#xff0c;练习网址来源于网络 练习网址&#xff1a;XSS平台|CTF欢迎来到XSS挑战|XSS之旅|XSS测试 一、前置说明 在测试过程中&#xff0c;有哪些东西是我们可以利用来猜测与判断的&#xff1a; 网页页面的变化&#xff1b;审查网页元素&#xff1b;查…

奇瑞复活经典路虎!中国技术,英国车标,卖向全球

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 更多资源欢迎关注 6月19日&#xff0c;奇瑞和捷豹路虎宣布签署战略合作意向书&#xff0c;将复活“Freelander神行者”品牌。 小编当课代表&#xff0c;做个简单总结&#xff1a; 英国品牌&#xff0c;中国技术&#xf…

数组 (java)

文章目录 一维数组静态初始化动态初始化 二维数组静态初始化动态初始化 数组参数传递可变参数关于 main 方法的形参 argsArray 工具类sort 中的 comparable 和 comparatorcomparator 比较器排序comparable 自然排序 一维数组 线性结构 静态初始化 第一种&#xff1a;int[] a…