首先,您需要具有适当的权限才能在MySQL中创建数据库。通常,这意味着您需要以具有创建数据库权限的用户身份登录到MySQL服务器。
utf8mb4编码是utf8编码的超集,兼容utf8,并且能存储4字节的表情字符。
在MySQL数据库中,可以通过执行SQL查询来检查数据库的默认字符集,也可以查看特定数据库、表或列的字符集。以下是一些查询示例:
ALTER DATABASE 允许修改数据库的特征,所有关于数据库的特征都存储在db.opt文件中。你必须先具备该数据库的ALTER特权,才能完成对数据库的ALTER操作。
之前使用django+mysql建立的一个站点,发现向数据库中写入中文字符时总会报错,尝试了修改settings文件和更改数据表的字符集后仍不起作用。最后发现,在更改mysql的字符集后,需要重建数据库,才能起作用。
先讲一下写该文章的原因,首先,工作中又遇到一条很熟悉的MySQL报错信息 Cause: java.sql.SQLException: Incorrect string value:Cause: java.sql.SQLException: Incorrect string value… (emoji表情存储导致),原因是MySQL的字符集导致的;其次,因为一直听说数据库变更可能锁表,但是一直不知道到底哪些操作会导致锁表。所以今天对相关知识做一个系统的整理。
1. MySQL的版本 utf8mb4的最低mysql版本支持版本为5.5.3+,若不是,请升级到较新版本。 2.修改MySQL配置文件 修改mysql配置文件my.cnf(windows为my.ini) my.cnf一般在etc/mysql/my.cnf位置。找到后请在以下三部分里添加如下内容: [client] default-character-set = utf8mb4 [mysql] default-character-set = utf8mb4 [mysqld] character-set-client-handshake = FALSE character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4' 3. 重启数据库,检查变量 SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%'; Variable_name Value character_set_client utf8mb4 character_set_connection utf8mb4 character_set_database utf8mb4 character_set_filesystem binary character_set_results utf8mb4 character_set_server utf8mb4 character_set_system utf8 collation_connection utf8mb4_unicode_ci collation_database utf8mb4_unicode_ci collation_server utf8mb4_unicode_ci collation_connection 、collation_database 、collation_server是什么没关系。 但必须保证这几个变量必须是utf8mb4。 系统变量 描述 character_set_client (客户端来源数据使用的字符集) character_set_connection (连接层字符集) character_set_database (当前选中数据库的默认字符集) character_set_results (查询结果字符集) character_set_server (默认的内部操作字符集) ———————————————————— 到这里为止,上面都是服务器环境方面配置调整 ———————————————————— 4. 将数据库、表、列三个同时也转换成utf8mb4 更改数据库编码:ALTER DATAbase alfredsw CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; 更改表编码:ALTER TABLE TABLE_NAME CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; 更改列编码:在需要存储的字段进行更改 [注意:数据库和表编码可以不更改,不影响使用] 5、服务器连接排序规则:utf8mb4_general_ci 6、最关键的,thinkphp5的配置要修改 'charset' =>'utf8mb4',// 数据库编码默认采用utf8
由于一台vps在下个月就要到期了,不打算续费了,所以打算把上面的数据进行迁移一下,然后迁移数据库某个库的时候报错了Unknown collation: 'utf8mb4_0900_ai_ci',我是通过navicat直接导出库,然后导入新库,发现就报错了,都是一些小问题,记录一下解决过程。
1.[库选项] 数据库的相关属性 字符集: charset 字符集 校对集: collate 校对集
con = cx_Oracle.connect("pythondemo","welcome","192.168.188.11:1521/std1")
这里还有一个mysql字符乱码的例子,部署redmine过程中,mysql数据库使用了默认的字符集,导致含有中文内容为乱码。
如何修改mysql数据库编码 修改字符集的方法,就是使用mysql的命令 mysql> SET character_set_client = utf8 ; mysql> SET character_set_connection = utf8 ; 使用 mysql> SHOW VARIABLES LIKE 'character%';查看,发现数据库编码均已改成utf8 +--------------------------+---------------------------------+ | Variable_name | &#118alue | +--------------------------+---------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | D:"mysql-5.0.37"share"charsets" | +--------------------------+---------------------------------+
启动/关闭 启动(以管理员模式运行命令行) net start mysql 关闭(以管理员模式运行命令行) net stop mysql 登录/退出 登录 mysql -u"用户名" -p"密码" 登录格式二 mysql -h"ip地址" -u"用户名" -p"密码" 退出 exit 图形化界面 Navicat SQLyog 当然,我个人是不建议使用SQLyog的,推荐使用Navicat,因为Navicat真的很强大 SQL语句分类 什么是SQL语句 结构化查询语言(Structured Query La
13.创建一innodb GBK表test,字段id int(4)和namevarchar(16)
上面错误意思是 mysql 数据库中 name 字段插入不正确的字符串值。name 字段是记录微信呢称,设计之出没有考虑到微信呢称中使用 Emoji 表情,导致写入数据失败。
今天在设计开源项目的反馈信息表时遇到了emoji表情插入失败的问题,网上找了很多解决方案,答案五花八门,没找到好使的。
今天正式开始MySQL的学习,基础部分的学习先跳过,直接进入高级部分的学习。本文主要参考B站中的MySQL数据库教程天花板,mysql安装到mysql高级,强!硬!
当我们在Django应用程序中使用MySQL数据库时,可能会遇到无法存储包含Emoji表情的数据的问题。这是因为MySQL默认字符集和校对规则只支持存储基本的Unicode字符集,无法支持Emoji表情字符。在这篇博客中,我将为您介绍如何在Django中使MySQL支持存储Emoji表情。
https://www.cnblogs.com/poloyy/category/1683347.html
1.5 数据库的操作 1.5.1 创建数据库 语法: create database [if not exists] 数据名 [选项] 例题 -- 创建数据库 mysql> create database stu; Query OK, 1 row affected (0.06 sec) -- 创建数据库时,如果数据库已经存在就要报错 mysql> create database stu; # ERROR 1007 (HY000): Can't create database 'stu'; databa
SHOW TABLES FROM 数据库名 直接写SHOW TABLES,查看的是当前使用数据库下的表
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
「Talk is cheap. Show me the code」 修改数据库字符集 alter database 数据库名 character set utf8; ps:修改完数据库字符集,需要重启mysql数据库。 修改数据库表字符集 ALTER TABLE 表名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 修改数据库表字段字符集 ALTER TABLE 表名 CHANGE 列名 列名 VARCHAR( 100 ) CHARACTER
在文章开始前,大家可以先考虑几个问题,这样方便更快理解文章的知识点,下面的问题都会在文章中找到答案哦!
作者: 程序猿小卡_casper 原文:https://segmentfault.com/a/1190000012775484 一、内容概述 在MySQL的使用过程中,了解字符集、字符序的概念,以及不同设置对数据存储、比较的影响非常重要。不少同学在日常工作中遇到的“乱码”问题,很有可能就是因为对字符集与字符序的理解不到位、设置错误造成的。 本文由浅入深,分别介绍了如下内容: 字符集、字符序的基本概念及联系 MySQL支持的字符集、字符序设置级,各设置级别之间的联系 server、database、table
MYSQL数据库-库表操作 零、前言 一、库的操作 1、创建数据库 2、字符集和校验规则 3、查看数据库 4、修改数据库 5、数据库删除 6、备份和恢复 7、查看连接情况 二、表的操作 1、创建表 2、查看表 3、修改表 4、删除表 4、删除表 零、前言 本章主要学习MYSQL数据库中库操作和表操作 一、库的操作 1、创建数据库 语法: CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specificati
Q:什么是存储引擎? A:比如一个视频文件可以转成mp4,avi,wmv,而存储进磁盘中也会存在不同类型的文件系统中如linux中的ext3,ext4,xfs等.(直观区别就是占用系统的空间大小与清晰程度可能不一样);
遇到的是在使用 CodeFirst 生成数据库的字符集编码问题 执行迁移命令:Add-Migration 版本 , Update-Database 生成数据库(若无自动创建)的字符集为 latin1 -- cp1252 West European 此字符集将会在生成查询语句包含中文的时候报如下错误
字符集:charset 字符集,代表着当前数据库下的所有表存储的数据默认指定的字符集(如果当前不指定,那么采用DBMS默认的)
COLLATE:指定数据库字符集的排序规则,utf8的默认排序规则为utf8_general_ci(通过show character set查看)
MySQL 支持多种字符集,使您能够使用各种字符集存储数据,并根据给定排序规则执行比较。
🎃在上一篇文章中便有简单讲过这个操作,但还有一些其他的细节仍未阐述,下面就一起来看一下吧。
数据库校验集 -- 支持数据库进行字段比较使用的编码,本质也是一种读取数据库中数据采用的编码格式。
当我们创建数据没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则:utf_general_ci;
数据库常用语句 目录 1、下列语句中的各种括号说明 2、启动/关闭mysql服务器 3、登入/退出数据库 4、创建数据库 5、查看数据库 6、修改数据库 7、删除数据库 8、选择数据库 9、MySQL注释 10、MySQL系统帮助 11、字段约束 12、新建表 13、查看表 14、修改表 15、删除表 16、插入数据 17、mysql乱码解决 18、更新/修改数据 19、删除数据 20、查询数据 21、多表查询 1、下列语句中的各种括号说明 尖括号<>代表参数,不
MySQL 字符编码集中有两套 UTF-8 编码实现:utf8 和 utf8mb4。
又很久没有写博客了 这篇笔记是边学边记的 当时比较仓促 所以有的地方可能会比较乱 但是大概的方法写的还是比较清楚了 等有时间回头再好好整理一下这篇文章。
大部分情况下,数据库的连接,数据库本身、数据库的服务器都是utf8的。在最开始的my.cnf配置中,我们把默认字符集全部配成了utf8进行统一,如果不配置,可能就会因为编码的不同导致无法正确解析数据。
在日常处理客户的问题中,会遇到非常多的客户反馈字符乱码的问题,遇到这类型的问题,我们要怎么去处理呢?又该怎么去引导用户去解决呢?
然后set global sql_slave_skip_counter = 1;跳过一步错误
创建一个数据库Test1,校验规则使用utf8_ general_ ci[不区分大小写]:
在创建完数据库和表之后,需要插入模拟数据。在插入的过程中就碰到了问题,此文作为记录解决字符集的问题
在开发过程中,我们有时会遇到数据库存储数据时出现字符编码问题的情况。其中一个常见的错误是Caused by: java.sql.SQLException: Incorrect string value,并且提到了具体的列名和行号。本文将详细介绍这个错误的原因和解决方案。
[ ] 中的关键字可以选择不加,IF NOT EXISTS 的意思是如果不存在才创建 数据库
mysqli_set_charset()函数规定当与数据库服务器进行数据传送时要使用的默认字符集。
前面几篇文章,我们介绍了MySQL的基础概念及逻辑架构。相信你现在应该有了自己的一套MySQL环境,接下来我们就可以开始练习MySQL了。本文将从MySQL最基础的语句出发,为你展示出创建及修改不同对象应该使用的标准语句。
注: 在同一个数据库服务器上必须是唯一的,不允许存在同名的数据库。 此外在创建数据库时如果不进行自定义设置编码方式,就会使用系统默认的编码方式,所以我们可以在创建数据库的同时自定义设置编码方式。 语法:
1.数据库字符集:数据库需要存储多国语言选择AL32UTF8,只有中英文选择ZHS16GBK
领取专属 10元无门槛券
手把手带您无忧上云