您的位置:首页 > 游戏 > 手游 > 凡科互动小程序官网_郴州_网络营销带来的效果_业务推广公司

凡科互动小程序官网_郴州_网络营销带来的效果_业务推广公司

2024/12/23 4:51:18 来源:https://blog.csdn.net/weixin_44063529/article/details/142685988  浏览:    关键词:凡科互动小程序官网_郴州_网络营销带来的效果_业务推广公司
凡科互动小程序官网_郴州_网络营销带来的效果_业务推广公司

文章目录

  • 1. 基于docker安装mysql
  • 2. 字符集的相关操作
    • 2.1 修改MySQL5.7字符集
    • 2.2 各级别的字符集
    • 2.3 字符集与比较规则(了解)
    • 2.4 请求到响应过程中字符集的变化
  • 3. SQL大小写规范
    • 3.1 Windows和Linux平台区别
    • 3.2 Linux下大小写规则设置
    • 3.3 SQL编写建议
  • 4. sql_mode的合理设置
    • 4.1 宽松模式 vs 严格模式
    • 4.2 宽松模式再举例
    • 4.3 模式查看和设置

1. 基于docker安装mysql

docker pull mysql:5.7.38
// 注意容器其中的文件夹内容会被外部文件夹内容覆盖掉
// 建议:
// 步骤1:先不挂载conf.d文件夹,先启动mysql容器,使得在容器里面生成my.cnf文件。 
// 步骤2:然后拷贝my.cnf到主机上。
// 步骤3:然后挂载主机my.cnf到容器,并且启动容器,就可以了。docker run -p 13306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d a3

2. 字符集的相关操作

2.1 修改MySQL5.7字符集

  1. 修改步骤
    在MySQL 8.0版本之前,默认字符集为 latin1 ,utf8字符集指向的是 utf8mb3 。网站开发人员在数据库设计的时候往往会将编码修改为utf8字符集。如果遗忘修改默认的编码,就会出现乱码的问题。从MySQL8.0开始,数据库的默认编码将改为 utf8mb4 ,从而避免上述乱码的问题。
    操作1:查看默认使用的字符集
show variables like 'character%'; # 或者 show variables like '%char%';
  • MySQL8.0中执行:
    在这里插入图片描述

  • MySQL5.7中执行:
    MySQL 5.7 默认的客户端和服务器都用了 latin1 ,不支持中文,保存中文会报错。MySQL5.7截图如下:

在这里插入图片描述

在MySQL5.7中添加中文数据时,报错:

在这里插入图片描述

因为默认情况下,创建表使用的是 latin1 。如下:

在这里插入图片描述

操作2:修改字符集

vim /etc/my.cnf

在MySQL5.7或之前的版本中,在文件最后加上中文字符集配置:

character_set_server=utf8

在这里插入图片描述

操作3:重新启动MySQL服务

systemctl restart mysqld

但是原库、原表的设定不会发生变化,参数修改只对新建的数据库生效。

2.2 各级别的字符集

MySQL有4个级别的字符集和比较规则,分别是:

  • 服务器级别
  • 数据库级别
  • 表级别
  • 列级别
    执行如下SQL语句:
show variables like 'character%';

在这里插入图片描述

  • character_set_server:服务器级别的字符集
  • character_set_database:当前数据库的字符集
  • character_set_client:服务器解码请求时使用的字符集
  • character_set_connection:服务器处理请求时会把请求字符串从character_set_client转为character_set_connection
  • character_set_results:服务器向客户端返回数据时使用的字符集
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.3 字符集与比较规则(了解)

2.4 请求到响应过程中字符集的变化

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3. SQL大小写规范

3.1 Windows和Linux平台区别

  • 在 SQL 中,关键字和函数名是不用区分字母大小写的,比如 SELECT、WHERE、ORDER、GROUP BY 等关键字,以及 ABS、MOD、ROUND、MAX 等函数名。
  • 不过在 SQL 中,你还是要确定大小写的规范,因为在 Linux 和 Windows 环境下,你可能会遇到不同的大小写问题。 windows系统默认大小写不敏感 ,但是 linux系统是大小写敏感的
  • 通过如下命令查看:
SHOW VARIABLES LIKE '%lower_case_table_names%'

在这里插入图片描述

在这里插入图片描述

3.2 Linux下大小写规则设置

  • 当想设置为大小写不敏感时,要在 my.cnf 这个配置文件 [mysqld] 中加入 lower_case_table_names=1 ,然后重启服务器。
  • 但是要在重启数据库实例之前就需要将原来的数据库和表转换为小写,否则将找不到数据库名。
  • 此参数适用于MySQL5.7。在MySQL 8下禁止在重新启动 MySQL 服务时将 lower_case_table_names 设置成不同于初始化 MySQL 服务时设置的 lower_case_table_names 值。如果非要将MySQL8设置为大小写不敏感,具体步骤为:
1、停止MySQL服务 
2、删除数据目录,即删除 /var/lib/mysql 目录 
3、在MySQL配置文件( /etc/my.cnf )中添加 lower_case_table_names=1 
4、启动MySQL服务

3.3 SQL编写建议

在这里插入图片描述

4. sql_mode的合理设置

4.1 宽松模式 vs 严格模式

在这里插入图片描述

在这里插入图片描述

4.2 宽松模式再举例

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4.3 模式查看和设置

在这里插入图片描述

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com