2013-10-27 Robin Wen
目录 Table of Contents {:toc} 文/温国兵 关于MySQL AB复制 本文讲解如何快速打包和安装MySQL, MySQL AB复制,MySQL AB双向复制,MySQL多级主从复制,解决AB双向复制主键冲突。 首先我们先介绍什么是MySQL AB复制。 AB复制又称主从复制,实现的是数据同步。如果要做MySQL AB复制,数据库版本尽量保持一致。如果版本不一致,从服务器版本高于主服务器,但是版本不一致不能做双向复制。MySQL AB复制有什么好处呢?有两点,第一是解决宕机带来的数据不一致,因为MySQL AB复制可以实时备份数据;第二点是减轻数据库服务器压力,这点很容易想到,多台服务器的性能一般比单 继续阅读 »
2013-12-22 Robin Wen
目录 Table of Contents {:toc} 文/温国兵 一 MySQL集群简介 上一篇文章我们提到MySQL 读写分离,这篇文章我们讲解MySQL集群。我们提到的集群,是指多台机器完成一个工作,最主要的场景是数据库服务器和Web服务器,但是集群环境不适合大规模计算。前面我们有提到MySQL AB复制,因为MySQL AB复制不适合大规模运用,要解决这个问题,我们可以使用MySQL集群。 MySQL集群分为三类节点:管理节点、SQL节点、存储节点。管理节点的功能是管理其他节点,负责调度不同的SQL节点和存储节点。SQL节点作用是用户和该节点进行交互,用户发送SQL语句到该节点,进行读写请求。存储节点负责到磁盘中读数 继续阅读 »
2013-10-20 Robin Wen
目录 Table of Contents {:toc} 文/温国兵 MySQL 5.5的安装方法和5.1略有 不同,主要区别在配置环境,MySQL 5.1的安装方法,参考搭建LAMP环境(源码方式)。本文讲解怎样在RedHat 6.1系统上安装MySQL 5.5。 首先,我们要准备MySQL,至于在什么地方下载,想必不用多说,这个可难不倒聪明的小伙伴们。本文使用的MySQL版本是5.5.29,假设读者已经把该版本或者5.5的其他版本准备好了,下面正式讲解怎样安装MySQL 5.5。本文的操作均在虚拟机下完成,并且均以root用户运行。 第一步,真实机拷贝MySQL 5.5源码包到虚拟机下。 bash yum install 继续阅读 »
2015-01-14 Robin Wen
文/温国兵 环境 OS: Mac OS X 10.9.5 MySQL: 5.1.73/5.5.40/5.6.21 解决思路 MySQL 中允许运行多个实例,举一反三,也可以同时运行多个版本的 MySQL。每个版本的 MySQL 占有独立的数据目录、端口、Socket、PID 即可。有了这种思路,就不难实现了。 具体实施步骤 创建 MySQL 主目录,解压不同版本的 MySQL 到 该目录。 bash sudo mkdir /usr/local/mysql sudo tar -zxvf ~/Downloads/mysql-5.1.73-osx10.6-x86_64.tar.gz \ -C /usr/local/mysq 继续阅读 »
2013-12-08 Robin Wen
目录 Table of Contents {:toc} 文/温国兵 一 为什么需要延时备份 在上一篇文章中,我们讲到MySQL备份与恢复之percona-xtrabackup实现增量备份及恢复,percona-xtrabackup是一个优秀的用于增量备份的工具。今天我们讲到的延时备份也是使用他们的产品。 以前在MySQL AB复制一文中提到了AB复制。我们首先回顾下MySQL复制的相关要点。AB复制又称主从复制,实现的是数据同步。经过以下步骤: 1)主服务器把数据更改记录到二进制日志中,这个操作叫做二进制日志事件; 2)从服务器把主服务器的二进制日志事件拷贝到自己的中继日志(relay log)中; 3)从服务器执行中继日 继续阅读 »
2015-09-11 王爵nice
首先要声明一下:一般情况下,修改MySQL密码,授权,是需要有mysql里的root权限的。 注:本操作是在WIN命令提示符下,phpMyAdmin同样适用。 用户:phplamp 用户数据库:phplampDB more 1.新建用户。 bash //登录MYSQL @>mysql -u root -p @>密码 //创建用户 mysql> insert into mysql.user(Host,User,Password) values("localhost","phplamp",password("1234")); //刷新系统权限表 mysql>flush privileges; 这样就创建了一个名为 继续阅读 »
2015-01-23 Robin Wen
目录 Table of Contents {:toc} 文/温国兵 一 引子 在 MySQL 中,可以有如下几种途径实现唯一值: 自增序列 UUID() 函数 程序自定义 UUID 基于 16 进制,由 32 位小写的 16 进制数字组成,如下: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee 比如 123e4567-e89b-12d3-a456-426655440000 就是一个典型的 UUID。 MySQL 实现了 UUID,并且提供 UUID() 函数方便用户生成 UUID。在 MySQL 的 UUID() 函数中,前三组数字从时间戳中生成,第四组数字暂时保持时间戳的唯一性,第五组数字是 继续阅读 »
2013-09-26 Robin Wen
文/温国兵 2013年9月22日Oracle官方发布MySQL5.7.2,功能增加了很多,也有很多优化,该版本提供了更快的连接速度,更高的事务吞吐量,提升了复制速度,带来了内存仪表和其他增强功能,从而实现更高的性能和增强的可管理性。 但另外一条新闻是“MySQL再度失势:继维基百科之后,Google也迁移到了MariaDB”,不知此时Oracle怎么想。早在今年4月份就有报道MySQL原始团队已重整旗鼓。Oracle于09年收购了Sun,其中必不可少的原因就是获得MySQL这个最热门开源DBMS的控制权。然而这一收购似乎并未完全达到Oracle的目的:早在08年MySQL被Sun收购之后,MySQL旧部(一些创始人及顶级工程师) 继续阅读 »
2014-12-30 Robin Wen
文/温国兵 在MySQL中是允许在同一个列上创建多个索引的,示例如下: bash mysql --socket=/tmp/mysql5173.sock -uroot -p ``` bash mysql> SELECT VERSION(); +-----------+ | VERSION() | +-----------+ | 5.1.73 | +-----------+ 1 row in set (0.00 sec) 创建测试表 mysql> DROP TABLE temp; ERROR 1051 (42S02): Unknown table 'temp' mysql> CREATE TABLE temp 继续阅读 »
2015-01-09 Robin Wen
文/温国兵 环境: Linux:RHEL 6.1 MySQL:5.5 登录到MySQL。 bash mysql -uroot -proot 创建测试表: ``` bash mysql> USE test; Database changed mysql> CREATE TABLE data_type(cola smallint unsigned) DEFAULT CHARACTER SET utf8; Query OK, 0 rows affected (0.02 sec) mysql> INSERT INTO data_type VALUES(27); Query OK, 1 row affected (0.01 s 继续阅读 »