Linux MySQL编译安装相关命令

运维 系统运维
编译安装Linux MySQL,安装因个人细好而定,省略许多与测试无关的编译细节及参数。编译安装Memcache UDFs for MySQL.Linux MySQL操作相关的记录:

想知道到Linux MySQL系统的真相么,想知道Linux MySQL系统中藏有的内在奥义么,只有我来给大家全面讲解介绍Linux MySQL系统差不多在一年前,写过一篇文章介绍将Linux MySQL数据映射到Memcached,当时Linux MySQL和Memcached Functions for MySQL都还不够成熟,时过一年,Memcached Functions for MySQL升级到了0.8版本,而MySQL也发布了GA版本,加上很多朋友反应前一篇文章中的实现他们因种种原因没能成功,于是便有了这篇文章,就当是上一篇文章的升级版本吧。

测试环境在Linux MySQL下进行,版本系统为CentOS5.以下为相关软件,包括其版本和下载地址:

  1. mysql-5.1.30 下载  
  2. memcached-1.2.6 下载  
  3. libevent-1.4.7-stable 下载  
  4. memcached_functions_mysql-0.8 下载  
  5. libmemcached-0.26 下载 

编译安装Linux MySQL,安装因个人细好而定,省略许多与测试无关的编译细节及参数。

  1. [root@localhost ~]#tar xzf mysql-5.1.30.tar_001.gz  
  2. [root@localhost ~]#cd mysql-5.1.30  
  3. [root@localhost ~]#./configure --prefix=/usr/local/mysql51  
  4. [root@localhost ~]#make  
  5. [root@localhost ~]#make install  
  6. [root@localhost ~]#./scripts/mysql_install_db --user=mysql --skip-name-resolve  
  7. [root@localhost ~]#/usr/local/mysql51/bin/mysqld_safe 

省略列出安装memcached和libevent的相关命令,具体可按照实际情况安装,测试时我将libevent默认安装,memcached安装于/usr/local/memcached目录下。
启动memcached.

/usr/local/memcached/bin/memcached -d -m 50 -u root -p 11211编译安装libmemcache.

  1. [root@localhost ~]#tar xzf libmemcached-0.26.tar.gz  
  2. [root@localhost ~]#cd libmemcached-0.26  
  3. [root@localhost ~]#./configure --with-memcached=/usr/local/memcached/bin/memcached  
  4. [root@localhost ~]# make && make install 

编译安装Memcache UDFs for MySQL.

  1. [root@localhost ~]# tar xzf memcached_functions_mysql-0.8.tar.gz  
  2. [root@localhost ~]# cd memcached_functions_mysql-0.8  
  3. [root@localhost ~]# ./configure --with-mysql-config=/usr/local/mysql51/bin/mysql_config  
  4. [root@localhost ~]# make && make install 

编译完成后将编译好的库文件复制到mysql的插件目录下,以便于加载使用。cp /usr/local/lib/libmemcached_functions_mysql* /usr/local/mysql51/lib/mysql/plugin/进入memcached_functions_mysql的源码目录,在目录下有相关添加UDF的SQL文件用于初始化。[root@localhost ~]# mysql <sql/install_functions.sql注:如果对这些UDFs不熟悉或者不懂,可进行源码目录参看README,里边有相应的说明。

至此,相关软件的编译和安装完成,进行测试,我们要达到的目的是当MySQL有新记录插入时,同时插入到Memcached中,当记录更新时同步更新Memcached中的记录,删除时同时也删除Memcached相关的记录,为此创建三个触发器来实现,如果对MySQL的触发程序不熟悉可以参考MySQL手册第21章,下面SQL中的memcached为需要操作的表名,SQL如下:

  1. #插入数据时插入Memcached  
  2. create trigger mysqlmmci after insert on memcached for each row set @tmp = memc_set(NEW.key, NEW.value);  
  3. #更新记录时更新Memcached  
  4. create trigger mysqlmmcu after update on memcached for each row set @tmp = memc_set(NEW.key, NEW.value);  
  5. #删除记录时删除Memcached相应的记录  
  6. create trigger mysqlmmcd before delete on memcached for each row set @tmp = memc_delete(OLD.key); 

以下为测试记录,在对Linux MySQL操作的同时操作Memcached来查看情况,当然你也可以在启动Memcached的时候带-vv参数来查看相关信息.

Linux MySQL操作相关的记录:

  1. [root@localhost ~]#mysql -S /tmp/mysql51.sock   
  2. Welcome to the MySQL monitor.  Commands end with ; or \g.  
  3. Your MySQL connection id is 6  
  4. Server version: 5.1.30 Source distribution  
  5.    
  6. Type 'help;' or '\h' for help. Type '\c' to clear the buffer.  
  7.    
  8. mysql> use test;  
  9. Database changed  
  10.    
  11. mysql> create table `memcached` (`key` varchar(10), `value` varchar(100));                                       
  12. Query OK, 0 rows affected (0.00 sec)  
  13.    
  14. mysql> create trigger mysqlmmci after insert on memcached for each row set @tmp = memc_set(NEW.key, NEW.value);  
  15. Query OK, 0 rows affected (0.00 sec)  
  16.    
  17. mysql> create trigger mysqlmmcu after update on memcached for each row set @tmp = memc_set(NEW.key, NEW.value);  
  18. Query OK, 0 rows affected (0.00 sec)  
  19.    
  20. mysql> create trigger mysqlmmcd before delete on memcached for each row set @tmp = memc_delete(OLD.key);  
  21. Query OK, 0 rows affected (0.00 sec)  
  22.    
  23. mysql> insert into memcached values("keyi", "valuei"),("keyu","valueu"),("keyd", "valued");                                           
  24. Query OK, 3 rows affected (0.00 sec)  
  25. Records: 3  Duplicates: 0  Warnings: 0  
  26.    
  27. mysql> update memcached set `value`="update" where `key`="keyu";  
  28. Query OK, 1 row affected (0.00 sec)  
  29. Rows matched: 1  Changed: 1  Warnings: 0  
  30.    
  31. mysql> delete from memcached where `key`="keyd";  
  32. Query OK, 1 row affected (0.00 sec)  
  33.    
  34. mysql> quit  
  35. Bye  
  36. Memcache查看时的记录: 
  1. [root@localhost ~]#telnet 127.0.0.1 11211  
  2. Trying 127.0.0.1...  
  3. Connected to 127.0.0.1.  
  4. Escape character is '^]'.  
  5. get keyi  
  6. VALUE keyi 0 6  
  7. valuei  
  8. END  
  9. get keyu  
  10. VALUE keyu 0 6  
  11. valueu  
  12. END  
  13. get keyd  
  14. VALUE keyd 0 6  
  15. valued  
  16. END  
  17. get keyu  
  18. VALUE keyu 0 6  
  19. update  
  20. END  
  21. get keyd  
  22. END  
  23. quit  
  24. Connection closed by foreign host. 

至此,我们基本实现的将Linux MySQL的数据同步到Memcached中,性能暂时还没有测试,当然上面只是简单的实现的数据映射的功能,如果在实现的生产环境中,则需要考虑名字空间,高可靠性的问题,这些都是可以通过数据库名-表名-关键字的方面能达到KEY***的目的,而高可靠性则是一个比较大的问题。

【编辑推荐】

  1. Linux mysql命令安装允许远程连接
  2. Linux MYSQL命令修改各种连接的这那方法
  3. Linux MySQL程序服务内建安全机制
  4. Linux mysql安装修改root密码服务
  5. Linux Mysql服务器使用源码编译安装
责任编辑:佚名 来源: CSDN
相关推荐

2010-01-14 14:23:47

2009-12-31 10:51:55

Silverlight

2010-01-13 10:58:08

CentOS配置安装

2010-03-12 09:29:04

Python 代码

2010-01-13 15:50:23

CentOS安装

2010-06-09 16:55:04

2010-06-08 15:56:13

OpenSUSE光盘安

2010-01-15 13:58:29

CentOS系统

2010-01-13 17:46:31

CentOS 5.4安

2010-07-05 16:36:33

2009-12-28 10:17:54

Fedora Core

2010-05-31 17:38:55

Cacti使用手册

2010-01-04 10:06:56

Ubuntu gcc

2010-02-04 14:42:51

Linux mysql

2011-01-10 10:55:55

linux认证

2010-02-03 09:26:52

Linux Mysql

2009-12-31 15:05:23

Ubuntu Virt

2011-08-30 10:14:43

postgresqlpgagent

2011-03-09 14:27:25

2010-02-22 16:09:18

CentOS安装
点赞
收藏

51CTO技术栈公众号