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

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');

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索mysql
, 安装
, 更新
UDFs
mysql5.7源码安装教程、udfs.sys下载 xp sp3、udfs.sys、mysql源码包下载z dig、mysql源码包下载,以便于您获取更多的相关知识。

时间: 2024-10-13 16:33:38

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

CentOS 7中源码安装MySQL 5.7.6+详细教程_Mysql

配置说明      Linux版本:Centos7      MySQL版本:MySQL5.7.16      该文档适用于MySQL版本>=5.7.6 一.卸载CentOS7默认携带的mariadb包 # 检查mariadb安装包 [root@wing ~]# rpm -qa | grep -i mysql [root@wing ~]# rpm -qa | grep -i mariadb mariadb-libs-5.5.50-1.el7_2.x86_64 # 卸载mariadb安装包 [ro

MySQL源码安装总结(r12笔记第12天)

作为一个DBA, MySQL源码安装还是要做做的,虽然不是推荐线上批量安装部署,但是自己作为了解MySQL的一个学习过程,还是值得的. 相比商业软件来说,开源的这一点上就让人很羡慕,商业软件我们总是使用各种工具和底层原理去反推,探测,但是离代码还是有一定的距离.当然商业有商业的好,开源有开源的乐,不能一概而论. 值得推荐的安装镜像 对于MySQL的安装部署来说,总是存在各种版本和子版本,其实整理起来非常繁杂,今天看到竟然我狐已经提供了非常的镜像站点 http://mirrors.sohu.com

Linux+Nginx+MySql+Php既LNMP源码安装

我们都知道Apache作为一款出色的web服务器占据了市场大半个江山,他的地位目前还无人能取代,但是除了Apache,,在web服务器软件行列,Nginx以其性能稳定.功能丰富.运维简单.处理静静态文件速度快且消耗系统资源极少的优势,也同样赢得了许多人的青睐. 下面让我们能来了解一下linux下Nginx+mysql+php的源码安装方法. 准备工具: mysql-5.5.15-linux2.6-i686.tar.gz nginx-1.0.11.tar.gz pcre-devel-6.6-2.e

linux下mysql 5.1.73 源码安装笔记

linux下安装mysql有多种方式,相对而言源码安装速度最快,兼容性也会好些.相反,源码安装更麻烦一些. 第一步,下载和解压安装包: mysql 5.1.73官方下载地址. http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.73.tar.gz md5:887f869bcc757957067b9198f707f32f 1 md5sum mysql-5.5.38.tar.gz      #计算md5校验和 2 tar -zxf mysql

Linux MySQL源码安装缺少ncurses-devel包

在Red Hat Enterprise Linux Server release 5.7 上用源码安装MySQL-5.6.23时,遇到了" remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel."错误,如下所示 [root@DB-Server mysql-5.6.23]# cm

mysql源码安装

我准备学下mysql的源码,所以编译和调试源码是很重要的一部分. 好了废话不多说. 我的环境是 CentOS-6.9-x86_64-minimal,这个可以在阿里的源中直接下.阿里云CentOS6.9下载地址 然后是安装之前的准备工作 先装好环境 yum update yum -y install cmake yum -y install bison yum -y install library* yum -y install libncurses5-dev yum -y install g++

linux下mysql 5.5.38 源码安装笔记

接上一篇<linux下mysql 5.1.73 源码安装笔记>,继续安装一个mysql 5.5.38 版.同样使用源码安装.并且实现两个实例同时运行,互不冲突. 这篇笔记记录的简单些,省略一些和上篇笔记相同的步骤. 第一步,下载: mysql 5.5.38官方下载地址: http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.38.tar.gz df5071c49764c3ad65df04ff20866a86 解压的步骤就不重复了. 第二步

源码安装 mysql 5.5.20升级到mysql 5.6.25

环境: centos 6.5  64 mysql 5.5.20 升级 5.6.25 mysql 5.5.20安装参考: http://blog.csdn.net/u010098331/article/details/50730391 mysql 5.6.25安装参考:      http://blog.csdn.net/u010098331/article/details/50886619 CentOS系统下将MySQL升级至5.6.25 (源码安装方式) 摘要:CentOS系统下将MySQL升

Linux 下MySQL源码安装完整版

    在Linux中安装MySQL,通常为RPM与源码方式安装.对于生产环境而言,由于需要自定义诸如安装路径.数据文件位置.字符集以及支持的存储引擎等多以源码方式来进行安装.之前有写过一篇关于源码安装的文章,Linux下基于源码方式安装MySQL 5.6,但不是很完整,因此该文可以作为其补充.以下为具体安装步骤,供大家参考.   1.安装前的有关描述必备的包和工具  gcc/g++ :MySQL 5.6开始,需要使用g++进行编译.  cmake  :MySQL 5.5开始,使用cmake进行