1.安装mysql:(不管要啥,一股脑都装上)
sudo apt-get install mysql-serversudo apt-get install mysql-clientsudo apt-get install libmysqlclient-devsudo apt-get install libmysqld-dev
2.下载mysql和handlersocket源代码:
3.解压
sudo tar -zxvf mysql-5.1.62.tar.gz -C /usr/local/src/
sudo tar -zxvf handlersocket_1.0.6-80-g88bf1e0.orig.tar.gz -C /usr/local/src/
4.编译安装handler socket
cd /usr/local/src/ahiguti-HandlerSocket-Plugin-for-MySQL-395fa55/
sudo ./autogen.sh
小插曲:
这里出现:
错误1
Searching libtoolize...-e WARNING: Cannot Found libtoolize... input libtool command^C
解决:
sudo apt-get install libtool
错误2
Searching libtoolize...-e FOUND: libtoolize ->libtoolize
Searching aclocal...-e WARNING: Cannot Found aclocal... input aclocal command^C
解决:
sudo apt-get install autotools-devsudo apt-get install automake
插曲结束~
sudo ./configure --with-mysql-source=../mysql-5.1.62 --with-mysql-bindir=/usr/bin --with-mysql-plugindir=/usr/lib/mysql/plugin
with-mysql-source 表示MySQL源代码目录,with-mysql-bindir 表示MySQL二进制可执行文件目录(也就是 mysql_config 所在目录,可以用whereis mysql_config找到),with-mysql-plugindir 表示MySQL插件目录
如果不清楚这个目录在哪,可以按如下方法查询:
mysql> SHOW VARIABLES LIKE 'plugin%';
+---------------+-----------------------+
| Variable_name | Value |
+---------------+-----------------------+
| plugin_dir | /usr/lib/mysql/plugin |
+---------------+-----------------------+
sudo make & make install
5.修改mysql配置文件my.cnf,添加相关端口配置:
# sudo vi /etc/my.cnf
[mysqld]
loose_handlersocket_port= 9998# the port number to bind to (forread requests)
loose_handlersocket_port_wr= 9999# the port number to bind to (for writerequests)
loose_handlersocket_threads= 16# the number of worker threads (forread requests)
loose_handlersocket_threads_wr= 1# the number of worker threads (for writerequests)
open_files_limit= 65535# to allow handlersocket accept many concurren connections,make open_files_limit as large as possible.
6.登陆mysql
bobo@master:/usr/local/src$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connectionid is 45Server version:5.1.62-0ubuntu0.11.10.1(Ubuntu)
Copyright (c)2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type'help;' or '\h' for help. Type '\c' to clearthe current input statement.
mysql> install plugin handlersocket soname 'handlersocket.so';
Query OK,0 rows affected (0.30sec)
插曲二:
中间又出现错误了。。
mysql> install plugin handlersocket soname 'handlersocket.so';
ERROR1126 (HY000): Can't open shared library'/usr/lib/mysql/plugin/handlersocket.so'(errno: 2 cannot open shared object file: No such file or directory)
莫名其妙的,结果我又单独make一下,再make install一下,就好了。。
我也不知道跟这个又没有关系。。。
插曲二终
通过show processlist 能在MySQL里看到HandlerSocket的线程了:
mysql>show processlist->;+----+-------------+-----------------+---------------+---------+------+-------------------------------------------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-------------+-----------------+---------------+---------+------+-------------------------------------------+------------------+
| 45 | root | localhost | NULL | Query | 0 | NULL | show processlist |
| 46 | system user | connecting host | NULL | Connect | NULL | handlersocket: mode=rd, 0 conns, 0 active | NULL |
| 47 | system user | connecting host | NULL | Connect | NULL | handlersocket: mode=rd, 0 conns, 0 active | NULL |
| 48 | system user | connecting host | NULL | Connect | NULL | handlersocket: mode=rd, 0 conns, 0 active | NULL |
| 49 | system user | connecting host | NULL | Connect | NULL | handlersocket: mode=rd, 0 conns, 0 active | NULL |
| 50 | system user | connecting host | NULL | Connect | NULL | handlersocket: mode=rd, 0 conns, 0 active | NULL |
| 51 | system user | connecting host | NULL | Connect | NULL | handlersocket: mode=rd, 0 conns, 0 active | NULL |
| 52 | system user | connecting host | NULL | Connect | NULL | handlersocket: mode=rd, 0 conns, 0 active | NULL |
| 53 | system user | connecting host | NULL | Connect | NULL | handlersocket: mode=rd, 0 conns, 0 active | NULL |
| 54 | system user | connecting host | NULL | Connect | NULL | handlersocket: mode=rd, 0 conns, 0 active | NULL |
| 55 | system user | connecting host | NULL | Connect | NULL | handlersocket: mode=rd, 0 conns, 0 active | NULL |
| 56 | system user | connecting host | NULL | Connect | NULL | handlersocket: mode=rd, 0 conns, 0 active | NULL |
| 57 | system user | connecting host | NULL | Connect | NULL | handlersocket: mode=rd, 0 conns, 0 active | NULL |
| 58 | system user | connecting host | handlersocket | Connect | NULL | handlersocket: mode=wr, 0 conns, 0 active | NULL |
| 59 | system user | connecting host | NULL | Connect | NULL | handlersocket: mode=rd, 0 conns, 0 active | NULL |
| 60 | system user | connecting host | NULL | Connect | NULL | handlersocket: mode=rd, 0 conns, 0 active | NULL |
| 61 | system user | connecting host | NULL | Connect | NULL | handlersocket: mode=rd, 0 conns, 0 active | NULL |
| 62 | system user | connecting host | NULL | Connect | NULL | handlersocket: mode=rd, 0 conns, 0 active | NULL |
+----+-------------+-----------------+---------------+---------+------+-------------------------------------------+------------------+
18 rows in set (0.00 sec)
也可以查看端口占用来验证你的mysql装好了:
bobo@master:~$ sudo lsof -i :9998COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld14173 mysql 30u IPv4 49030 0t0 TCP *:9998(LISTEN)
bobo@master:~$ sudo lsof -i :9999COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld14173 mysql 77u IPv4 49032 0t0 TCP *:9999 (LISTEN)
7.简单测试
看了许多教程,有许多问题,觉得这个的参考价值大一些: