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
今天在设计开源项目的反馈信息表时遇到了emoji表情插入失败的问题,网上找了很多解决方案,答案五花八门,没找到好使的。
先讲一下写该文章的原因,首先,工作中又遇到一条很熟悉的MySQL报错信息 Cause: java.sql.SQLException: Incorrect string value:Cause: java.sql.SQLException: Incorrect string value… (emoji表情存储导致),原因是MySQL的字符集导致的;其次,因为一直听说数据库变更可能锁表,但是一直不知道到底哪些操作会导致锁表。所以今天对相关知识做一个系统的整理。
MySQL> create database name character set utf8;
MySQL编码 1.查看数据库编码格式 show create database <数据库名>;
今天在写一个项目的时候,在数据库中手动插入数据不会产生中文乱码,但是通过javaWeb却出现乱码,把提交表单和响应中的乱码问题解决后,还是乱码。所以我锁定一定是我的mysql数据库中出现了乱码的现象。
今天在爬取文章的时候,在将数据插入mysql数据库的时候,出现了Incorrect string value: '\xF0\x9F\x98\xAD",...' for column 'commentContent' at row 1 这个错误,Google了下发现原来是因为数据库编码问题导致的,原因在于我们的评论数据中存在emoj表情,而这些表情是按照四个字节一个单位进行编码的,而我们通常使用的utf-8编码在mysql数据库中默认是按照3个字节一个单位进行编码的,正是这个原因导致将数据存入mysql数据库的时候出现错误,那么这个问题我们应该怎么解决呢?
utf8mb4编码是utf8编码的超集,兼容utf8,并且能存储4字节的表情字符。
在开发IM时有些有用的头像用了emoji表情或者聊天的时候用了emoji表情,然而mysql数据库用的编码是utf8_general_ci,就是utf-8编码,结果也就报错误了。emoji表情存不了在数据库。
启动/关闭 启动(以管理员模式运行命令行) 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
COLLATE:指定数据库字符集的排序规则,utf8的默认排序规则为utf8_general_ci(通过show character set查看)
在最最初配置 MySQL 数据库的时候,就设置成 UTF-8 的编码 sudo vim /etc/my.cnf [3hzjs83bsi.png] 然后在 metastore 库生成后,如果直接用 hive 创建库或表就会报错,Specified key was too long; max key length is 767 bytes,是因为此时的 metastore 库的编码是UTF-8,这时我们把 metastore 的编码修改为 latin1,然后重启 MySQL 数据库,就OK了,使用 hive 创
| ERROR 1046 (3D000): No database selected |
大部分情况下,数据库的连接,数据库本身、数据库的服务器都是utf8的。在最开始的my.cnf配置中,我们把默认字符集全部配成了utf8进行统一,如果不配置,可能就会因为编码的不同导致无法正确解析数据。
一、表名 和 数据库名 不要用大小写混合(即驼峰式),应该全部用小写,使用下划线作为连接符。
图中的数据库是MySQL8.0自带的数据库。这四个数据库对于不是DBA的人而言,我们就不要去动它。创建自己的数据库即可。
这里我已经将MySQL的数据库编码设置为UTF-8,所以下面现实的都是UTF-8。
当我们创建数据没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则:utf_general_ci;
注: 在同一个数据库服务器上必须是唯一的,不允许存在同名的数据库。 此外在创建数据库时如果不进行自定义设置编码方式,就会使用系统默认的编码方式,所以我们可以在创建数据库的同时自定义设置编码方式。 语法:
###1 MySQL登录与退出 MySQL登陆 MySQL 参数(在cmd命令框中输入) 登陆MySql mysql -uroot -p -P3306 -h127.0.0.1 MySql退出
connect = Connection = Connect 本质上是一个函数,使用这三个里面的任何一个函数都可以创建一个连接对象
在文章开始前,大家可以先考虑几个问题,这样方便更快理解文章的知识点,下面的问题都会在文章中找到答案哦!
如何修改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" | +--------------------------+---------------------------------+
1、修改数据库字符编码 mysql> alter database mydb character set utf8 ; 2、创建数据库时,指定数据库的字符编码 mysql> create database mydb character set utf8 ; 3、查看mysql数据库的字符编码 mysql> show variables like 'character%'; //查询当前mysql数据库的所有属性的字符编码 +--------------------------+---------------
Typecho默认不支持emoji表情,其实不是程序的锅,而是由于编码的问题,只需要将默认的数据库编码utf8修改为utf8mb4即可,当然别忘了,utf8mb4编码只有在PHP5.5以后才支持。 简单两步即可让typecho支持emoji
前一段时间,项目中需要在数据库中存储emoji,由于编码格式不对,直接导致数据库报错,后来修改mysql的编码,就解决了
MySQL 是最常用的数据库,在数据库操作中,基本都是增删改查操作,简称CRUD。
今天正式开始MySQL的学习,基础部分的学习先跳过,直接进入高级部分的学习。本文主要参考B站中的MySQL数据库教程天花板,mysql安装到mysql高级,强!硬!
在开发过程中,如果还原MySQL数据库后,数据库数据出现乱码,可以通过修改数据库默认编码来解决。
一、登录数据库 (1) 简单模式 C:\Users\xlg>mysql -uroot -p Enter password: ****** (2) 标准模式 C:\Users\xlg>mysql -h127.0.0.1 -uroot -p mysql -hlocalhost -uroot -p mysql -h10.0.110.238 -uroot -p Enter password: ****** 参数所代表的含义: h:host 主机(localhost IPV4 127.0.0.1) 注意: roo
下载好安装包后,找到 mysql-5.7.26-winx64.zip 并解压到指定目录下(目录自己定)。
遇到的是在使用 CodeFirst 生成数据库的字符集编码问题 执行迁移命令:Add-Migration 版本 , Update-Database 生成数据库(若无自动创建)的字符集为 latin1 -- cp1252 West European 此字符集将会在生成查询语句包含中文的时候报如下错误
mysql 创建数据库时指定编码很重要,很多开发者都使用了默认编码,乱码问题可是防不胜防。制定数据库的编码可以很大程度上避免倒入导出带来的乱码问题。 网页数据一般采用UTF8编码,而数据库默认为latin 。我们可以通过修改数据库默认编码方式为UTF8来减少数据库创建时的设置,也能最大限度的避免因粗心造成的乱码问题。 我们遵循的标准是,数据库,表,字段和页面或文本的编码要统一起来 我们可以通过命令查看数据库当前编码:mysql> SHOW VARIABLES LIKE 'character%'; 发现很多对应的都是 latin1,我们的目标就是在下次使用此命令时latin1能被UTF8取代。 第一阶段: mysql设置编码命令
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"
CREATE DATABASE 数据库名[DEFAULT] CHARACTER SET 编码方式| [DEFAULT] COLLATE 排序规则
昨天安装了MySQL数据库,也就是说我这台电脑理论上是可以作为数据库服务器的,用户可以连接这台电脑中的数据库。
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
🎃在上一篇文章中便有简单讲过这个操作,但还有一些其他的细节仍未阐述,下面就一起来看一下吧。
数据库校验集 -- 支持数据库进行字段比较使用的编码,本质也是一种读取数据库中数据采用的编码格式。
刚才发布文章出现 Database Query Error,百度了问题,原因是 Typecho 在初始化数据库的时候,选用了 UTF-8 的编码,而在 MySQL 中,UTF-8 只支持最多 3 个字节,而 emoji 是 4 个字节,所以出现该问题。如果嫌麻烦可以直接删掉 emoji 就可以成功发表了。
jira因为忘记续免费的License,过期之后,无论如何都无法启动,加载完插件之后,就core dump了,查看日志,说是libresolve.so.2库的问题,怀疑DNS的问题,更换DNS后,仍然无法启动
下载链接: 链接:https://pan.xunlei.com/s/VMNHMWaZ-bLa5HltrBnjRPdVA1 提取码:v8rh
作者: 程序猿小卡_casper 原文:https://segmentfault.com/a/1190000012775484 一、内容概述 在MySQL的使用过程中,了解字符集、字符序的概念,以及不同设置对数据存储、比较的影响非常重要。不少同学在日常工作中遇到的“乱码”问题,很有可能就是因为对字符集与字符序的理解不到位、设置错误造成的。 本文由浅入深,分别介绍了如下内容: 字符集、字符序的基本概念及联系 MySQL支持的字符集、字符序设置级,各设置级别之间的联系 server、database、table
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
[ ] 中的关键字可以选择不加,IF NOT EXISTS 的意思是如果不存在才创建 数据库
领取专属 10元无门槛券
手把手带您无忧上云