表示 进入内容 213043
« 先前的 10 新的记录 | 下一步 10 较早的记录 »
Displaying posts with tag: MySQL基础知识 (reset)
清官谈mysql中utf8和utf8mb4区别

   一、简介

   MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。好在utf8mb4是utf8的超集,除了将编码改为utf8mb4外不需要做其他转换。当然,为了节省空间,一般情况下使用utf8也就够了。

   二、内容描述

   那上面说了既然utf8能够存下大部分中文汉字,那为什么还要使用utf8mb4呢? 原来mysql支持的 utf8 编码最大字符长度为 3 字节,如果遇到 4 字节的宽字符就会插入异常了。三个字节的 UTF-8 最大能编码的 Unicode 字符是 0xffff,也就是 Unicode 中的基本多文种平面(BMP)。也就是说,任何不在基本多文本平面的 Unicode字符,都无法使用 Mysql 的 utf8 字符集存储。包括 Emoji 表情(Emoji 是一种特殊的 Unicode 编码,常见于 ios 和 android …

[获取更多]
SQL 新手指南

注:在我们推出的免费文本教程中,有一些最受欢迎的主题,本文是某系列「入门」的一部分。

为了跳到某些章节,请参考下面的目录表:

  • 介绍

  • 数据库的介绍

  • 四种基本的 SQL 操作(CRUD)

    • 创建数据

    • 读取数据

    • 更新数据

    • 删除数据

  • 结论

介绍

SQL

[获取更多]
使用mysqldump备份时为什么要加上 -q 参数

   写在前面:我们在使用mysqldump备份数据时,请一定记住要加上 -q 参数,后果可能是很严重的,不要给自己挖坑哦。到底为什么呢,且听我慢慢道来!

   先来看看 mysqldump -help 中,关于 -q 参数的解释:

-q, --quick         Don't buffer query, dump directly to stdout.

   简言之,就是说加上 -q 后,不会把SELECT出来的结果放在buffer中,而是直接dump到标准输出中,顶多只是buffer当前行结果,正常情况下是不会超过 max_allowed_packet 限制的,它默认情况下是开启的。

   如果关闭该参数,则会把SELECT出来的结果放在本地buffer中,然后再输出给客户端,会消耗更多内存。

  …

[获取更多]
MySQL怎么禁用autocommit

   MySQL的自动提交默认是开启的,用惯了Oracle,习惯了自己去提交或回滚。我们可以通过set来设置autocommit,过程如下:

   Step 1:使用select @@autocommit来查看当前autocommit设置情况,如下图1:

图1:查看autocommit

   1表示自动提交是开启的,0表示自动提交是关闭的,图1可看出,当前是处于开启状态。

   Step 2:通过set autocommit = 0来关闭autocommit,如下图2:

图2:设置autocommit

   还有别的方法来设置,目前我只用了上面的方法。

猜您喜欢

  • 2014 年 5 月 27 日 -- …
[获取更多]
配置MySQL SSL

配置MySQL SSL

   MySQL默认的数据通道是不加密的,在一些安全性要求特别高的场景下,我们需要配置MySQL端口为SSL,使得数据通道加密处理,避免敏感信息泄漏和被篡改。

   当然,启用MySQL SSL之后,由于每个数据包都需要加密和解密,这个对MySQL的性能是有不小影响的,读者们在使用的时候,要根据实际情况斟酌。

   MySQL客户端登录服务器时候的密码不是明文传输,有加密策略处理。

   笔者是在 ubuntu12.04 系统上使用MySQL 5.5版本测试的,其他环境请读者自行匹配。

配置MySQL服务器证书

   编辑 /etc/mysql/my.cnf 文件

# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem

  …

[获取更多]
MySQL 二进制日志格式基础(一)

MySQL二制进日志用于记录数据库的变更记录,这里从结构上讨论一下日志的格式。

每个日志都包含4个字节的magic number 和event的描述包

  1. 日志有前四个字节是magic number: oxfe ox62 0×69 0x6e = 0xfe ‘b”i”n’ 转成整数:1852400382  用处就是读4个字节对比不是这个数,说明就不是二进制日志,就不用处理了。

    1 2 3 4  log_event.sh中可以查到  /* 4 bytes which all binlogs should begin with */     #define BINLOG_MAGIC        "\xfe\x62\x69\x6e"


  2. 每个event的header大概如下:

    1 2 3
[获取更多]
varchar和text说不清的那些事

最近有几个同学问我varchar和text有啥别吗,这个问题,以前说真的也没太多的整理,以前遇到text在设计中就是尽可能的拆到另一个表中,保持主表尽量的瘦小,可以让innodb bp缓存更多的数据。

今天借次机会系统整理一下,主要从存储上,最大值,默认值几个方面进行比较。

BTW: 从ISO SQL:2003上讲VARCHAR是一个标准型,但TEXT不是(包括tinytext).varchar在MySQL 5.0.3之前只支持0-255byte, 在5.0.3之后才支持到0-65535byte.

从存储上讲:

- text 是要要进overflow存储。 也是对于text字段,不会和行数据存在一起。但原则上不会全部overflow ,
会有768字节和原始的行存储在一块,多于768的行会存在和行相同的Page或是其它Page上。
  
- varchar …
[获取更多]
Mysql安全配置介绍

一、前言

   很多文章中会说,数据库的权限按最小权限为原则,这句话本身没有错,但是却是一句空话。因为最小权限,这个东西太抽象,很多时候你并弄不清楚具体他需要哪些权限。 现在很多mysql用着root账户在操作,并不是大家不知道用root权限太大不安全,而是很多人并不知道该给予什么样的权限既安全又能保证正常运行。所以,本文更多的是考虑这种情况下,我们该如何简单的配置一个安全的mysql。注:本文测试环境为mysql-5.6.4

二、Mysql权限介绍

   mysql中存在4个控制权限的表,分别为user表,db表,tables_priv表,columns_priv表。

   mysql权限表的验证过程为:

1.先从user表中的Host,User,Password这3个字段中判断连接的ip、用户名、密码是否存在,存在则通过验证。
[获取更多]
[MySQL FAQ]系列 -- 启用GTID & binlog新安装完的MySQL提示无法登录

问:刚刚新安装的MySQL,提示下面信息,无法登入,怎么回事?

[root@imysql mysql]# mysql mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

答:数据库已经执行过 mysql_install_db 初始化了,按理说应该没问题。经过排查,发现 $datadir 的 mysql 数据库目录的权限模式为:

drwx------ 2 mysql root        4096 Jan  9 20:22 mysql

看起来没有问题。检查错误日志,发现一行:

130109 21:04:23 [Warning] Bootstrap mode disables GTIDs. Bootstrap mode should only be used by mysql_install_db which initializes the MySQL data directory and creates system tables.
ERROR: 1785  Updates to non-transactional tables are forbidden when DISABLE_GTID_UNSAFE_STATEMENTS = 1.
130109 21:04:23 [ERROR] Aborting

同时,mysql库下的user表空间文件显示:

-rw-rw---- 1 mysql mysql 10684 Jan  9 20:22 user.frm …
[获取更多]
SAS vs SSD对比测试MySQL tpch性能

早先已经做过一次OLTP性能对比测试:SAS vs SSD各种模式下MySQL TPCC OLTP对比测试结果,这次做OLAP对比测试。

对比测试结果见下:

SSD设备相应的性能提升比例:

测试环境:

技术相关: MySQL优化MySQL基础知识硬件相关运维相关

表示 进入内容 213043
« 先前的 10 新的记录 | 下一步 10 较早的记录 »