1. Assumptions:
apt-get install libtool
apt-get install autoconf automake
apt-get install python
apt-get install build-essential
apt-get install gcc
apt-get install g++
apt-get -y install libxml2-dev
2. Installation for Node.js + ZeroMQ(jzmq/zeromq.node) + MySQL
(1)Node.js
git clone https://github.com/joyent/node.git
ls
cd node
ls
git status
git checkout -b v0.8.22-release origin/v0.8.22-release
>>>> 可能有的地方要使用 export GIT_SSL_NO_VERIFY=true
>>>> 要用正式发布版本。否则,很多的NODE的模块会有异常。
./configure
make
make install
(2) ZMQ + jzmq + zeromq.node
///ZMQ
git clone https://github.com/zeromq/zeromq3-x.git
cd zeromq3-x
ls
git status
git tag
git checkout -b v3.2.2 v3.2.2
./autogen.sh
./configure
make
make install
>>>> 成功后, /usr/local/lib有libzmq.a
>>>> 可能在./configure阶段输出有WARN,提示工具asciidoc和xmlto没有安装。
使用apt-get install assciidoc xmlto安装。
///jzmq
git clone https://github.com/zeromq/jzmq.git
cd jzmq
./autogen.sh
./configure
make
make install
ldconfig
>>>> 成功后, /usr/local/lib 新增libjzmq.a, /usr/local/share/java新增 zmq.jar
///zeromq.node
git clone https://github.com/JustinTulloss/zeromq.node
ls
cd zeromq.node/
npm install -g zmq
>>>> 成功后,在zeromq.node/build/Release下生成 binding.node。
>>>> 最终会安装zmq.jar到 /usr/local/lib/node_modules/zmq
///为了能够运行zeromq.node的perf目录下程序,
///执行(告诉程序引用全局的module):
///(1)export NODE_PATH=/usr/local/lib/node_modules
>>>> 或者,设置永久环境变量,即进入/etc/profile在最后面追加两行:
export NODE_PATH=”$NODE_PATH:/usr/local/lib/node_modules”
///(2)修改程序的zmq的引用:
将
var zmq = require('../')
改为:
var zmq = require('zmq')
///或者: 在zeromq.node/目录下执行(这样程序引用本地的module):
node-gyp configure
node-gyp build
(3) MySQL
///mysql-server
sudo apt-get install mysql-server
///mysql-workbench
sudo apt-get install libctemplate2*
sudo apt-get install mysql-workbench*
3. Test
(1) Setup MySQL with new table
mysql -uroot -p
show databases;
use mysql;
select * from user;
grant all priviledges on *.* to sms@localhost identified by "123456";
grant all priviledges on *.* to sms@"%" identified by "123456";
grant select,insert,update,delete on *.* to sms@localhost Identified by "123456";
grant select,insert,update,delete on *.* to sms@"%" Identified by "123456";
use test;
show tables;
create table student_info (name VARCHAR(20), sex CHAR(1));
describe student_info;
insert into student_info values ("hyq","M");
(2) Client ZeroMQ REQ-REP mode in Node.js
cd zeromq.node/perf
export NODE_PATH=$NODE_PATH:/usr/local/lib/node_modules
node remote_lat.js tcp://127.0.0.1:5555 1 20
4. That is all!!!