我用http://people.fsn.hu/~airween/mysql_auth/这个网址上的mysql_auth提供的作mysql认证,但是我在mysql_auth-0.5编译总是出错
gcc -I/usr/local/include -L/usr/local/lib -c src/mysql_auth.c
src/mysql_auth.c:24: mysql/mysql.h: No such file or directory
*** Error code 1
Stop in /tmp/mysql_auth-0.5.
这个错误是我在freebsd中编译得到的。
[root@squid mysql_auth-0.5]# make
gcc -I/usr/local/include -L/usr/local/lib -c -o src/mysql_auth.o src/mysql_auth.c
src/mysql_auth.c:24:25: mysql/mysql.h: No such file or directory
src/mysql_auth.c: In function `main':
src/mysql_auth.c:37: `MYSQL' undeclared (first use in this function)
src/mysql_auth.c:37: (Each undeclared identifier is reported only once
src/mysql_auth.c:37: for each function it appears in.)
src/mysql_auth.c:37: parse error before "connect"
src/mysql_auth.c:38: `MYSQL_RES' undeclared (first use in this function)
src/mysql_auth.c:38: `result' undeclared (first use in this function)
src/mysql_auth.c:39: `MYSQL_ROW' undeclared (first use in this function)
src/mysql_auth.c:39: parse error before "row"
src/mysql_auth.c:64: `connect' undeclared (first use in this function)
src/mysql_auth.c:188: `row' undeclared (first use in this function)
make: *** [src/mysql_auth.o] Error 1
这个错误是在redhat中得到的,那位大侠帮忙看看把
Make any changes to the source code you need. For example, set up correctly place of configuration file. See that in define.h.
Review the Makefile, and modify based on target platform or site requirements. Setting up the mysql.h header and libmysqlclients.a places. Setting up your squid user and group accounts, and squid root directory.
Setting up correctly the permissions of mysql_auth.conf (mode 600)!
This is very important! This file included a mysql account, with select, update, insert and delete privileges!
Also very important: if you use mysql.log, be very carefull! It contains all transactions! For example:
52 Query UPDATE data SET password = password ("1234") WHERE user LIKE 'airween'
After when you edit what you want, type 'make', then 'make install', then 'make clean'.
'Make install' will put 'mysql_auth' into /usr/local/squid/bin by default, and 'mysql_auth.conf' to /usr/local/squid/etc.
这段话是说明怎么安装的,我有些东西我看的不是很明白的,也希望那位可以详细解释一下。谢谢。
wujianpengjj 回复于:2003-10-14 21:45:02搞定,经过漫长的三天的痛苦的安装,终于搞定squid+mysql在bsd上的安装了。
wujianpengjj 回复于:2003-10-15 02:24:19FreeBSD4.7 上搭建squid代理mysql认证服务器
Wjp
2003-10-14
首先我要感谢hj的帮助,不管是在我学习linux上,还是FreeBSD上虽然更多的是java上。
接着声明一下,本人的语文水平很不好,写的文档可能比较糟糕,但是看在我辛辛苦苦作了好几个通宵的份上希望有人在转载时注名出处http://www.jnull.com/jive/thread.jsp?nav=false&forum=7&thread=943 和作者wjp,还有第一段感谢的人。^_^谢谢。
文档的开头先介绍一下我为什么用这些东西作为代理服务器的开发。
一.我试用了squid,socks5,wingate,kingate,觉得squid适用像我们学校这种单位应用。
它在性能和节省带宽,提高访问速度上很有优势。
二.我用的操作系统是FreeBSD,虽然我是BSD的超级菜鸟,但是在浏览squid的FAQ时看到,squid可能在FreeBSD上运行是比较快的,加上hj的极力推荐,我相信FreeBSD不会让大家失望的。
三.刚开始我用的是NSCA这种认证,这也是,中文文档比较多的一种认证方式,但是我觉得它的开发很困难,我是不懂怎么写一个htpasswd的,像改密码,什么的都比较,困难。而且我的直觉上觉的mysql认证会比NSCA快,所以我选用了mysql,还有朋友用LDAP的,很遗憾因为我不会搭建LDAP服务器,就没有用它,感觉上LDAP的表现也会同样出色的。
以上就是我选用这三个组合的原因,不知各位大侠同意否。
操作系统和软件的安装,本人学FreeBSD没有一个星期,全靠hj的帮助,还有FreeBSD手册才搞定得,我装的是FreeBSD4.8从ftp.freeBSD.org上下载的mini版,大家可以参考FreeBSD的手册http://people.freebsdchina.org/kinki 。我现在会的就是能把FreeBSD安装完,设好ip上网,大家肯定比我厉害^_^。
现在的BSD上是没有squid和mysql的,我先安装squid。我是用ports安装的(如果你不会和我一样菜的话,我建议你仔细读一下http://www.jnull.com/jive/thread.jsp?forum=7&thread=183&tstart=45&trange=15 这篇文章,我相信你也会喜欢ports的):
BSD# cd /usr/ports/www/squid
BSD# make install
BSD# make clean
如果你能上网的话那么squid就装完了。我现在装的是squid2.5这个版本的,这个版本和2.4比在认证上有了很大的改变。接着是mysql了。
BSD# cd /usr/ports/databases/mysql323-server
BSD# make install
BSD# make clean
同样的easy,哈哈!我太喜欢ports了。我装的是mysql3-23-58这个版本。接下来去下载squid的认证模块,http://people.fsn.hu/~airween/mysql_auth/mysql_auth-0.5.tar.gz
我把它放在/tmp下(这儿是e文的文档http://people.fsn.hu/~airween/mysql_auth/ )。
BSD# tar -zxvf mysql_auth-0.5.tar.gz
BSD# cd mysql_auth-0.5
BSD# make
BSD# make install
当你make时可能会出错,问题出在Makefile这个文件上,那个mysql_auth的作者他libmysqlclients.a这两个文件的位置和我的这两个文件的位置不同就会出错,我贴出我刚开始的错误
BSD# make
gcc -I/usr/local/include -L/usr/local/lib -c src/mysql_auth.c
gcc -I/usr/local/include -L/usr/local/lib -c src/confparser.c
gcc -I/usr/local/include -L/usr/local/lib -c src/mypasswd.c
gcc -o mysql_auth src/mysql_auth.c src/confparser.c -lmysqlclient -I/usr/local/include -L/usr/local/lib
/usr/libexec/elf/ld: cannot find -lmysqlclient
*** Error code 1
Stop in /tmp/10-13/