MySQL的源码安装及使用UDFs进行数据自动更新的教程

MySQL的源码安装
1. 安装依赖组件

# yum install gcc gcc-c++ ncurses-devel perl -y

2. 安装cmake

# wget http://www.cmake.org/files/v2.8/cmake-2.8.12.tar.gz
# tar zxvf cmake-2.8.12.tar.gz
# cd cmake-2.8.12
# ./bootstrap
# make && make install

3. 安装bison

# wget http://ftp.gnu.org/gnu/bison/bison-3.0.2.tar.gz
# tar zxvf bison-3.0.2.tar.gz
# cd bison-3.0.2
# ./configure
# make && make install

4. 创建用户的相应目录

# groupadd mysql
# useradd -g mysql mysql
# mkdir -p /data/mysql/
# mkdir -p /data/mysql/data/
# mkdir -p /data/mysql/log/

5. 获取mysql安装包并安装

# wget http://downloads.mysql.com/archives/mysql-5.5/mysql-5.5.24.tar.gz
# tar zxvf mysql-5.5.24.tar.gz
# cd mysql-5.5.24
# cmake \
-DCMAKE_INSTALL_PREFIX=/data/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/data/mysql/data \
-DMYSQL_TCP_PORT=3306 \
-DENABLE_DOWNLOADS=1
# make && make install

6. 修改目录权限

# chmod +w /data/mysql/
# chown -R mysql:mysql /data/mysql/

# ln -s /data/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18
# ln -s /data/mysql/mysql.sock /tmp/mysql.sock

7. 初始化数据库

# cp -rp /data/mysql/support-files/my-medium.cnf /etc/my.cnf
# cp -rp /data/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
# /data/mysql/scripts/mysql_install_db --user=mysql --defaults-file=/etc/my.cnf --basedir=/data/mysql --datadir=/data/mysql/data

8. 启动mysql服务

# chmod +x /etc/init.d/mysqld
# vi /etc/init.d/mysqld -->
basedir=/data/mysql
datadir=/data/mysql/data
# chkconfig --add mysqld
# service mysqld start

9. 完成配置

# /data/mysql/bin/mysqladmin -uroot -p password 'PASSWD'
# echo "export PATH=/data/mysql/bin:$PATH" >> ~/.bash_profile
# source ~/.bash_profile

UDFs实现Memcached与Mysql的自动更新

UDFs是User Defined Functions的缩写,表示MYSQL的用户定义函数,应用程序可以利用这些函数从MYSQL5.0以上版本的数据库中访问Memcached写入或者获取的数据。此外,MYSQL从5.1版本开始支持触发器,从而可以在触发器中使用UDFs直接更新Memcached的内容,这种方式降低了应用程序设计和编写的复杂性。
1.安装

wget https://launchpad.net/libmemcached/1.0/0.34/+download/libmemcached-0.34.tar.gz
yum install gcc44 gcc44-c++ libstdc++44-devel
export CC=/usr/bin/gcc44
export CXX=/usr/bin/g++44
./configure --prefix=/soft/libmemcached -disable-64bit CFLAGS="-O3 -march=i686" \
--with-memcached=/root/libmemcached-1.0.7/memcached
make && make install
wget https://launchpad.net/memcached-udfs/trunk/1.1/+download/memcached_functions_mysql-1.1.tar.gz
./configure --prefix=/soft/UDFS/memcache_mysql \
--with-mysql=/soft/mysql/bin/mysql_config \
--libdir=/soft/mysql/lib/plugin \
--with-libmemcached=/soft/UDFS/libmemcached
make && make install
mysql -uroot -pmysql < /sql/install_functions.sql
mysql -uroot -pmysql -se "select name,dl from mysql.func"
select memc_servers_set('127.0.0.1:11211');//如果mysql restart,需要重新运行这句以建立与memcached之间的关系
select memc_server_count();
select memc_set('urls:sequence', 0);

select memc_list_behaviors()\G//修改memcached参数的行为

select memc_servers_behavior_set('MEMCACHED_BEHAVIOR_NO_BLOCK','1');
select
memc_servers_behavior_set('MEMCACHED_BEHAVIOR_TCP_NODELAY','1');

设置MEMCACHED_BEHAVIOR_NO_BLOCK为打开状态,这样在memcached出现问题时(不能连接时)数据继续插入到
mysql中,报错提示,如果不设置此值,如果memcached失败,mysql需要等到timeout才可以插入到表中。

2.测试:

drop table if exists urls;
create table urls (
 id int(3) not null auto_increment,
 url varchar(64) not null default '',
 primary key (id)
 );

select memc_servers_set('localhost:11211');
select memc_set('urls:sequence', 0);

DELIMITER |

DROP TRIGGER IF EXISTS url_mem_insert |
CREATE TRIGGER url_mem_insert
BEFORE INSERT ON urls
FOR EACH ROW BEGIN
  SET NEW.id= memc_increment('urls:sequence');
  SET @mm= memc_set(NEW.id, NEW.url);
END |

DROP TRIGGER IF EXISTS url_mem_update |
CREATE TRIGGER url_mem_update
BEFORE UPDATE ON urls
FOR EACH ROW BEGIN
  SET @mm= memc_replace(OLD.id, NEW.url);
END |

DROP TRIGGER IF EXISTS url_mem_delete |
CREATE TRIGGER url_mem_delete
BEFORE DELETE ON urls
FOR EACH ROW BEGIN
  SET @mm= memc_delete(OLD.id);
END |

DELIMITER ;

insert into urls (url) value ('http://google.com');
insert into urls (url) value ('http://lycos.com/');
insert into urls (url) value ('http://tripod.com/');
insert into urls (url) value ('http://microsoft.com/');
insert into urls (url) value('http://slashdot.org');
insert into urls (url) value ('http://mysql.com');
select * from urls;

select memc_get('urls:1');
select memc_get('urls:2');
select memc_get('urls:3');
select memc_get('urls:4');
select memc_get('urls:5');
select memc_get('urls:6');

update urls set url= 'http://mysql.com/sun' where url = 'http://mysql.com';
select url from urls where url = 'http://mysql.com/sun';
select memc_get('urls:6');

delete from urls where url = 'http://microsoft.com/';
select * from urls where url='http://microsoft.com/';
select memc_get('urls:4');
(0)

相关推荐

  • mysql5.7数据库安装完成后如何配置环境变量

    如果我们在windows10系统中安装mysql后,没有配置环境变量的话,在使用命令行进行mysql操作时就必须要进入mysql安装目录才行.这样操作起来感觉会非常麻烦.这该怎么办呢?win10系统中配置mysql环境变量的方法. 方法/步骤: 键盘组合键:Win+i,打开设置窗口,点击"系统",进入系统设置 点击打开后,在系统设置窗口中选择"关于"-"系统信息", 在出现的窗口中选择"高级系统设置": 在"系统属性

  • Linux环境mysql5.7.12安装教程

    在Linux上安装MySQL  环境:windows7  虚拟机:Oracle VMVirtualBox  Linux: ubuntukylin-14.04.1-amd64.iso  mysql:5.7.12  一.环境准备  step1:安装虚拟机  step2:修改宿主机BIOS配置 操作系统:Windows 7 64位: 虚拟机:Oracle VM VirtualBox  Linux版本: Ubuntu4.0  64  问题描述:新建虚拟机的列表中没有64位系统选项 解决方法:修改机器中的

  • MySql5.6使用validate password 插件加强密码强度的安装及使用方法

    mysql 5.6对密码的强度进行了加强,推出了 validate_password 插件.支持密码的强度要求. 安装办法: 在配置文件中打开 [mysqld] plugin-load=validate_password.so validate-password=FORCE_PLUS_PERMANENT validate_password_policy=2 并装载plugin: mysql>>INSTALL PLUGIN validate_password SONAME 'validate_p

  • python安装mysql-python简明笔记(ubuntu环境)

    本文讲述了python安装mysql-python的方法.分享给大家供大家参考,具体如下: ubuntu 系统下进行的操作 首先安装了pip工具 sudo apt-get install python-pip 然后使用 sudo pip install mysql-python 安装第三方库.但是此时报错 sh: mysql_config: not found Traceback (most recent call last): File "setup.py", line 15, in

  • mysql一键安装教程 mysql5.1.45全自动安装(编译安装)

    一.问题来源  安装MySQL如果手动安装一台还可以,但安装多台,手动安装很麻烦,需要编写一个shell程序 install_mysql.sh来进行安装 二.程序说明  将MySQL5.1.45安装到了 /home/longxibendi/mysql/usrl/local/mysql  数据文件以及日志文件设置在了 /home/longxibendi/mysql/3309/  配置文件my.cnf 在   /home/longxibendi/mysql/3309  端口使用  3309 三.源程

  • mysql 5.7.11 安装配置教程

    六步轻松搞定mysql5.7.11的安装 1.下载安装包.mysql-5.7.11版本: 2.拷贝到任意盘: 例如,解压后拷贝文件夹至C盘:C:\Program Files\mysql.建议文件夹名字使用英文. 3.配置环境变量: 计算机->右键->高级系统设置->高级->环境变量->修改Path,将地址栏"C:\Program Files\mysql\bin;"粘贴到最后,注意:不同的路径之间用英文的";"分开,确定,退出. 4.修改

  • mysql安装配置详解教程(一)

    MySQL数据库具有跨平台性,不仅可以在Windows上运行,还可以在UNIX,Linux和Mac OS等操作系统上运行 1.先简单说下MySQL的版本: 根据操作系统的类型可分为:Windows版.UNIX版.Linux版和Mac OS版 根据用户群体的不同可分为:社区版(Community Edition)和企业版(Enterprise),社区版完全免费,企业版是收费的 根据发布顺序来区分可分为:4.1.5.0.5.1.5.4.6.0等版本 根据MySQL的开发情况分为:Alpha.Beta

  • 解决mysql安装时出现error Nr.1045问题的方法

    我们在windows下安装MySQL时会出现Access denied for user 'root'@localhost'(using password:No)的问题,这个问题是因为你的机器上之前安装过mysql,或者这 一次安装配置了新密码,进入应用的最后一步时候由于某些原因卡出了或者由于服务未启动等原因导致无法配置成功,最终结果是,配置未成功,密码设置已经保存 进去了.这样我们调整好了服务等原因后,进行重新配置的时候,会发现在设置密码的时候,多了一个旧密码输入框.其实这也没什么,在密码知道

  • 解决MySQL安装重装时出现could not start the service mysql error:0问题的方法

    当各位在安装.重装时出现could not start the service mysql error:0 原因: 卸载mysql时并没有完全删除相关文件和服务,需要手动清除. 安装到最后一步execute时不能启动服务的解决方法: 首先,在管理工具->服务里面将MySQL的服务给停止(有的是没有安装成功,有这个服务,但是已经停止了的),win+R->cmd,打开命令提示符窗口,输入命令:sc delete mysql(查看服务,此时服务中已没有mysql),将已停的服务删除,卸载MySQL记

  • MySQL5.5.21安装配置教程(win7)

    Win7安装mysql的具体过程,我的版本是5.5.21 以下是我的安装步骤: 1.首先单击MySQL5.5.21的安装文件,出现该数据库的安装向导界面,单击"next"继续安装,如图所示: 2.在打开的窗口中,选择接受安装协议,单击"next"继续安装,如图所示: 3.在出现选择安装类型的窗口中,有"typical(默认)"."Complete(完全)"."Custom(用户自定义)"三个选项,我们选择&

  • windows server 2008/2012安装php iis7 mysql环境搭建教程

    windows server 2008/2012安装php iis7 mysql环境搭建教程,具体内容如下 1.安装IIS windows server 2008的IIS版本为7.0,包括fastcgi,安装十分方便. 打开"开始"菜单→"服务器管理",出现服务器管理界面(图1) 图1 - 服务器管理 滚动条下翻,或者点击主菜单的"角色",然后点击"添加角色",出现向导页面后点击下一步,选择"web服务器(IIS)&

  • mysql 5.6.17 绿色版(免安装)安装配置教程

    最近在做项目开发时用到了MySql数据库,在看了一些有关MySql的文章后,很快就上手使用了.在使用的过程中还是出现了一些问题,因为使用的是绿色免安装版的MySql所以在配置的时候出现了一些问题,该篇文章就主要针对MySql绿色版的配置及其使用进行讨论. 一.MySql概述        MySql数据库是有瑞典MySql AB公司开发,现在该公司被Oracle收购属于Oracle所有.同SQL Server类似,它也是基于关系型数据库的数据库管理系统,在Web应用方面MySQL是最好的RDBM

  • mysql 5.7.13 安装配置笔记(Mac os)

    一.MySQL5.7.13安装 到MySQL官网上http://dev.mysql.com/downloads/mysql/,下载mysql可安装dmg版本 mysql-5.7.13-osx10.11-x86_64 .dmg 下载完的文件为:mysql-5.7.13-osx10.11-x86_64 .dmg 点击安装包一步步傻瓜式安装就行. 系统偏好设置的其他里,点击"mysql"的图标 点击Start MySQL Server按钮,启动mysql 二.打开终端,定义MySQL别名 输

  • Mysql下载安装、部署与图形化详细操作教程

    Mysql是一个必须学会如何安装与部署的工具,它不同于其它那些傻瓜式的应用/程序,一键到底,如果是初次在Windows下安装Mysql的初学者还是有一定难度的. 本文配合之前的<Javaweb开发环境Myeclipse6.5 JDK1.6 Tomcat6.0 SVN1.8配置教程>(点击打开链接)一文中的前台开发环境的部署,也就形成了JavaWeb.JSP.J2EE的基本开发环境. 一.Mysql的下载 首先打开Mysql的官网(点击打开链接),百度一下是搜不到的,我也找了很久才找到Mysql

  • mysql 5.7.11 winx64快速安装配置教程

    本文为大家分享了mysql 5.7.11安装配置方法,供大家参考,具体内容如下 一.安装总体思路: 在官网下载zip安装包: 解压拷贝到C盘下: 配置环境变量: 修改mysql根目录下配置文件my-default.ini: 初始化mysql,安装mysql,启动mysql服务: 修改root用户密码: 成功安装. 二.具体步骤说明 1.下载安装包. 2.拷贝到C盘: 解压后拷贝文件夹至C盘:C:\Program Files\mysql.建议文件夹名字简单些. 3.配置环境变量: 计算机->右键-

随机推荐