Squid 3.1.7通过mysql_auth方式认证(FreeBSD平台)
一、下载相应软件及补丁
#fetch http://people.arxnet.hu/airween/mysql_auth/mysql_auth-0.8.tar.gz
#fetch http://www.zero-sys.net/portal/download/additionalselect.patch
#tar xvzf mysql_auth-0.8.tar.gz
#cd mysql_auth-0.8
#patch -p1 < ../additionalselect.patch
patching file src/confparser.c
patching file src/define.h
patching file src/mysql_auth.c
patching file src/mysql_auth.conf
注:这个补丁主要是增加一个可以暂时封停账号的字段isactive,此字段需要自己手动创建,语句
alter table table_name add column isactive enum('0','1') 或者修改mysql_auth-0.8目录下的scripts/create_script文件,如图
二、创建相应数据库及管理数据库的用户与密码
创建对应的数据库即用上图的脚本即可(上面的脚本已被本人修改,自定义了数据库的相关信息,用户可根据需要自行修改,亦可保持默认值不变)。
#mysql -uroot -p < create_script
Enter password:
插入数据类似于:
mysql> insert into data (user, password, isactive) values ('liwentao', '123456',’1’);
Query OK, 1 row affected (0.00 sec)
mysql> insert into data (user, password,isactive) values ('liwentao', password("123456"),’1’);
Query OK, 1 row affected (0.00 sec)
三、修改参数 FreeBSD平台下如下图修改
系统会寻找第一个路径下的mysql/mysql.h,第二个路径下的libmysqlclients.a(路径不对,导致编译出错) 修改完之后, make && make install
四、添加用户 系统自带了一个叫mypasswd的程序,可以帮助用户添加相应的用户名及密码 #mypassword test 111111 Password record ADDED succesfully. 删除用户用-d参数
五、测试用户 利用系统的mysql_auth命令测试用户 #mysql_auth test username password 出现OK即可
六、修改squid 在squid.conf中添加以下几行
最后不要忘了添加http_access allow mysqlauth all
七、让squid配置生效 #squid -k parse 无错误输出,即 # squid -k reconfigure
以上测试在freebsd 8.1平台测试通过