注:在我们推出的免费文本教程中,有一些最受欢迎的主题,本文是某系列「入门」的一部分。
为了跳到某些章节,请参考下面的目录表:
-
介绍
-
数据库的介绍
-
四种基本的 SQL 操作(CRUD)
-
创建数据
-
读取数据
-
更新数据
-
删除数据
-
-
结论
介绍
SQL …
[获取更多]写在前面:我们在使用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的自动提交默认是开启的,用惯了Oracle,习惯了自己去提交或回滚。我们可以通过set来设置autocommit,过程如下:
Step 1:使用select @@autocommit来查看当前autocommit设置情况,如下图1:
图1:查看autocommit
1表示自动提交是开启的,0表示自动提交是关闭的,图1可看出,当前是处于开启状态。
Step 2:通过set autocommit = 0来关闭autocommit,如下图2:
图2:设置autocommit
还有别的方法来设置,目前我只用了上面的方法。
猜您喜欢
配置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二制进日志用于记录数据库的变更记录,这里从结构上讨论一下日志的格式。
每个日志都包含4个字节的magic number 和event的描述包
日志有前四个字节是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" |
每个event的header大概如下:
1 2 3 | … |
最近有几个同学问我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用着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,提示下面信息,无法登入,怎么回事?
[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 …[获取更多]
早先已经做过一次OLTP性能对比测试:SAS vs SSD各种模式下MySQL TPCC OLTP对比测试结果,这次做OLAP对比测试。
对比测试结果见下:
SSD设备相应的性能提升比例:
测试环境:
之前在群里说要整理基准测试分享文档,近期花了几天时间终于整理完毕,上传到slideshare上:服务器基准测试-叶金荣@CYOU-20121130.pdf,本意是让圈内人士在做服务器基准测试时的标准、参数、方法能尽可能统一,相互沟通时也能有共同语言,有更多可比性。非专业人士整理,欢迎拍砖,O(∩_∩)O哈哈~
更新:微盘下载地址:http://t.cn/zjpQMcH