MySQL的源碼安裝及使用UDFs進(jìn)行數(shù)據(jù)自動(dòng)更新的教程
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. 創(chuàng)建用戶的相應(yīng)目錄
# 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. 修改目錄權(quán)限
# 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. 初始化數(shù)據(jù)庫(kù)
# 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. 啟動(dòng)mysql服務(wù)
# 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實(shí)現(xiàn)Memcached與Mysql的自動(dòng)更新
UDFs是User Defined Functions的縮寫,表示MYSQL的用戶定義函數(shù),應(yīng)用程序可以利用這些函數(shù)從MYSQL5.0以上版本的數(shù)據(jù)庫(kù)中訪問Memcached寫入或者獲取的數(shù)據(jù)。此外,MYSQL從5.1版本開始支持觸發(fā)器,從而可以在觸發(fā)器中使用UDFs直接更新Memcached的內(nèi)容,這種方式降低了應(yīng)用程序設(shè)計(jì)和編寫的復(fù)雜性。
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,需要重新運(yùn)行這句以建立與memcached之間的關(guān)系
select memc_server_count();
select memc_set('urls:sequence', 0);
select memc_list_behaviors()\G//修改memcached參數(shù)的行為
select memc_servers_behavior_set('MEMCACHED_BEHAVIOR_NO_BLOCK','1');
select
memc_servers_behavior_set('MEMCACHED_BEHAVIOR_TCP_NODELAY','1');
設(shè)置MEMCACHED_BEHAVIOR_NO_BLOCK為打開狀態(tài),這樣在memcached出現(xiàn)問題時(shí)(不能連接時(shí))數(shù)據(jù)繼續(xù)插入到
mysql中,報(bào)錯(cuò)提示,如果不設(shè)置此值,如果memcached失敗,mysql需要等到timeout才可以插入到表中。
2.測(cè)試:
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自動(dòng)安裝批處理腳本實(shí)例代碼
- 詳解docker?制作mysql鏡像并自動(dòng)安裝腳本
- mysql8.0.14.zip安裝時(shí)自動(dòng)創(chuàng)建data文件夾失敗服務(wù)無(wú)法啟動(dòng)
- Linux下mysql5.6.24(二進(jìn)制)自動(dòng)安裝腳本
- 生產(chǎn)庫(kù)自動(dòng)化MySQL5.6安裝部署詳細(xì)教程
- mysql一鍵安裝教程 mysql5.1.45全自動(dòng)安裝(編譯安裝)
- 集群運(yùn)維自動(dòng)化工具ansible使用playbook安裝mysql
- 分享MySQL的自動(dòng)化安裝部署的方法
- mysql自動(dòng)化安裝腳本(ubuntu and centos64)
- MySQL自動(dòng)安裝腳本代碼實(shí)例分享
相關(guān)文章
Navicat把csv數(shù)據(jù)導(dǎo)入mysql
這篇文章主要為大家詳細(xì)介紹了Navicat把csv數(shù)據(jù)導(dǎo)入mysql,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05
MySQL中出現(xiàn)lock?wait?timeout?exceeded問題及解決
這篇文章主要介紹了MySQL中出現(xiàn)lock?wait?timeout?exceeded問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
MySql設(shè)置指定用戶數(shù)據(jù)庫(kù)查看查詢權(quán)限
這篇文章主要介紹了MySql設(shè)置指定用戶數(shù)據(jù)庫(kù)查看查詢權(quán)限,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10

