1818IP-服务器技术教程,云服务器评测推荐,服务器系统排错处理,环境搭建,攻击防护等

当前位置:首页 - 运维 - 正文

君子好学,自强不息!

Linux MySQL编译安装相关命令

2022-11-12 | 运维 | gtxyzz | 566°c
A+ A-

想知道到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.以下为相关软件,包括其版本和下载地址:

mysql-5.1.30下载 memcached-1.2.6下载 libevent-1.4.7-stable下载 memcached_functions_mysql-0.8下载 libmemcached-0.26下载




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

[root@localhost~]#tarxzfmysql-5.1.30.tar_001.gz [root@localhost~]#cdmysql-5.1.30 [root@localhost~]#./configure--prefix
=/usr/local/mysql51 [root@localhost~]#make [root@localhost~]#makeinstall [root@localhost~]#./scripts/mysql_install_db--user
=mysql
--skip-name-resolve [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.

[root@localhost~]#tarxzflibmemcached-0.26.tar.gz [root@localhost~]#cdlibmemcached-0.26 [root@localhost~]#./configure--with-memcached
=/usr/local/memcached/bin/memcached [root@localhost~]#make&&makeinstall



编译安装Memcache UDFs for MySQL.

[root@localhost~]#tarxzfmemcached_functions_mysql-0.8.tar.gz [root@localhost~]#cdmemcached_functions_mysql-0.8 [root@localhost~]#./configure--with-mysql-config
=/usr/local/mysql51/bin/mysql_config [root@localhost~]#make&&makeinstall



编译完成后将编译好的库文件复制到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如下:

#插入数据时插入Memcached createtriggermysqlmmciafterinsertonmemcachedforeachrowset@tmp
=memc_set
(NEW.key,NEW.value); #更新记录时更新Memcached createtriggermysqlmmcuafterupdateonmemcachedforeachrowset@tmp
=memc_set
(NEW.key,NEW.value); #删除记录时删除Memcached相应的记录 createtriggermysqlmmcdbeforedeleteonmemcachedforeachrowset@tmp
=memc_delete
(OLD.key);





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

Linux MySQL操作相关的记录:

[root@localhost~]#mysql-S/tmp/mysql51.sock WelcometotheMySQLmonitor.Commandsendwith;or\g. YourMySQLconnectionidis6 Serverversion:5.1.30Sourcedistribution  Type'help;'or'\h'forhelp.Type'\c'toclearthebuffer.  mysql>
usetest; Databasechanged  mysql>
createtable`memcached`(`key`varchar(10),`value`varchar(100)); QueryOK,0rowsaffected(0.00sec)  mysql>
createtriggermysqlmmciafterinsertonmemcachedforeachrowset@tmp
=memc_set
(NEW.key,NEW.value); QueryOK,0rowsaffected(0.00sec)  mysql>
createtriggermysqlmmcuafterupdateonmemcachedforeachrowset@tmp
=memc_set
(NEW.key,NEW.value); QueryOK,0rowsaffected(0.00sec)  mysql>
createtriggermysqlmmcdbeforedeleteonmemcachedforeachrowset@tmp
=memc_delete
(OLD.key); QueryOK,0rowsaffected(0.00sec)  mysql>
insertintomemcachedvalues("keyi","valuei"),("keyu","valueu"),("keyd","valued"); QueryOK,3rowsaffected(0.00sec) Records:3Duplicates:0Warnings:0  mysql>
updatememcachedset`value`="update"where`key`="keyu"; QueryOK,1rowaffected(0.00sec) Rowsmatched:1Changed:1Warnings:0  mysql>
deletefrommemcachedwhere`key`="keyd"; QueryOK,1rowaffected(0.00sec)  mysql>
quit Bye Memcache查看时的记录:



































[root@localhost~]#telnet127.0.0.111211 Trying127.0.0.1... Connectedto127.0.0.1. Escapecharacteris'^]'. getkeyi VALUEkeyi06 valuei END getkeyu VALUEkeyu06 valueu END getkeyd VALUEkeyd06 valued END getkeyu VALUEkeyu06 update END getkeyd END quit Connectionclosedbyforeignhost.























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

本文来源:1818IP

本文地址:https://www.1818ip.com/post/8744.html

免责声明:本文由用户上传,如有侵权请联系删除!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。