aix c访问mysql_编译 – 在AIX上使用MySQL身份验证支持编译proftpd

编辑1:

问题似乎与MySQL组件有关.因为如果我从配置文件中删除每个SQL指令,它确实可以在ftp / ftpes,sftp和ftps上运行

编辑2:

如果我把一个现有主机没有托管数据库,连接到ftp守护程序将挂起并最终超时,而如果我放错了数据库或非响应主机,它将尝试运行unix auth instaed of mysql auth.

编辑3:

Sqllog提到我们可以看到线路2月07日15:44:12 mod_sql / 4.3 [15139036]:进入mysql cmd_open之后是一个新的日志行超过一分钟07年2月15日15:45:27:

Feb 07 15:44:11 mod_sql/4.3[15139036]: defaulting to 'mysql' backend

Feb 07 15:44:11 mod_sql/4.3[15139036]: backend module 'mod_sql_mysql/4.0.8'

Feb 07 15:44:11 mod_sql/4.3[15139036]: backend api 'mod_sql_api_v1'

Feb 07 15:44:11 mod_sql/4.3[15139036]: >>> sql_sess_init

Feb 07 15:44:11 mod_sql/4.3[15139036]: entering mysql cmd_defineconnection

Feb 07 15:44:11 mod_sql/4.3[15139036]: name: 'default'

Feb 07 15:44:11 mod_sql/4.3[15139036]: user: 'mysql_poney_user'

Feb 07 15:44:11 mod_sql/4.3[15139036]: host: 'pingableHostWithoutDB.net'

Feb 07 15:44:11 mod_sql/4.3[15139036]: db: 'mysql_poney_user'

Feb 07 15:44:11 mod_sql/4.3[15139036]: port: '15140'

Feb 07 15:44:11 mod_sql/4.3[15139036]: ttl: '2'

Feb 07 15:44:11 mod_sql/4.3[15139036]: exiting mysql cmd_defineconnection

Feb 07 15:44:11 mod_sql/4.3[15139036]: connection 'default' successfully established

Feb 07 15:44:11 mod_sql/4.3[15139036]: mod_sql engine : on

Feb 07 15:44:11 mod_sql/4.3[15139036]: negative_cache : off

Feb 07 15:44:11 mod_sql/4.3[15139036]: authenticate : users

Feb 07 15:44:11 mod_sql/4.3[15139036]: usertable : proftpd_users

Feb 07 15:44:11 mod_sql/4.3[15139036]: userid field : userid

Feb 07 15:44:11 mod_sql/4.3[15139036]: password field : passwd

Feb 07 15:44:11 mod_sql/4.3[15139036]: UID field : uid

Feb 07 15:44:11 mod_sql/4.3[15139036]: GID field : gid

Feb 07 15:44:11 mod_sql/4.3[15139036]: homedir field : homedir

Feb 07 15:44:11 mod_sql/4.3[15139036]: shell field : shell

Feb 07 15:44:11 mod_sql/4.3[15139036]: SQLMinUserUID : 200

Feb 07 15:44:11 mod_sql/4.3[15139036]: SQLMinUserGID : 1

Feb 07 15:44:11 mod_sql/4.3[15139036]: <<< sql_sess_init

Feb 07 15:44:12 mod_sql/4.3[15139036]: >>> sql_escapestr

Feb 07 15:44:12 mod_sql/4.3[15139036]: entering mysql cmd_escapestring

Feb 07 15:44:12 mod_sql/4.3[15139036]: entering mysql cmd_open

Feb 07 15:45:27 mod_sql/4.3[15139036]: exiting mysql cmd_open

Feb 07 15:45:27 mod_sql/4.3[15139036]: exiting mysql cmd_escapestring

Feb 07 15:45:27 mod_sql/4.3[15139036]: unrecoverable backend error

Feb 07 15:45:27 mod_sql/4.3[15139036]: error: '2003'

Feb 07 15:45:27 mod_sql/4.3[15139036]: message: 'Can't connect to MySQL server on 'pingableHostWithoutDB.net' (78)'

Feb 07 15:45:27 mod_sql/4.3[15139036]: entering mysql cmd_exit

Feb 07 15:45:27 mod_sql/4.3[15139036]: exiting mysql cmd_exit

原始问题

我有一个proftpd配置文件,在proftpd 1.3.4b和proftpd 1.3.4d上进行了测试.现在我想在新系统上编译AIX 6.1.

我正在使用IBM XLc编译器.

这是我安装的库:

rpm -qa

apr-1.4.6-1

mkisofs-1.13-4

pci.df1000fa-1-191A5

openldap-2.4.23-0.3

apr-util-ldap-1.5.1-1

openssl-1.0.1e-2

bash-3.0-1

coreutils-5.0-2

grep-2.5.1-1

pci.1069B166.0A-050A008a-1

pci.1069B166.08-0508008a-1

pci.1069B166.10-0510006d-1

pci.df1000fa-1-90X13

pci.df1080f9-1-91x4

ibm.scsi.disk.10k300-RPQR-1

ibm.scsi.disk.73lpx15-c51d-1

ibm.scsi.disk.146z10-s28g-1

ibm.scsi.disk.146lp-C50K-1

ses.0018-0018-01

cdrecord-1.9-7

pci.1069B166.10-0710000b-1

screen-3.9.10-2

expat-2.1.0-1

zlib-1.2.7-2

AIX-rpm-6.1.6.15-5

gettext-0.10.40-8

libiconv-1.14-2

apr-util-1.5.1-1

db4-4.7.25-2

bzip2-1.0.6-1

info-4.13a-2

readline-6.2-4

pcre-8.32-1

openssl-devel-1.0.1e-2

httpd-2.4.3-1

mpfr-3.1.2-1

MySQL-devel-5.1.56-1

libgcc-4.6.1-1

gcc-4.6.1-1

libstdc++-4.6.1-1

libstdc++-devel-4.6.1-1

gmp-5.1.3-1

gmp-devel-5.1.3-1

mpfr-devel-3.1.2-1

libmpc-1.0.1-2

libmpc-devel-1.0.1-2

gcc-cpp-4.6.1-1

zlib-devel-1.2.7-2

这是我用来编译的脚本:

export CONFIG_SHELL=/opt/freeware/bin/bash

export CONFIG_ENV_ARGS=/opt/freeware/bin/bash

export CC=cc

export CFLAGS="-qmaxmem=16384 -DSYSV -D_AIX -D_AIX32 -D_AIX41 -D_AIX43 -D_AIX51 -D_AIX52 -D_AIX53 -D_AIX61 -D_ALL_SOURCE -DFUNCPROTO=15 -O -I/opt/freeware/include"

export CXX=xlC

export CXXFLAGS=$CFLAGS

export CPPFLAGS='-U__STR__'

export F77=xlf

export FFLAGS="-O -I/opt/freeware/include"

export LD=ld

export LDFLAGS="-L/opt/freeware/lib -Wl,-blibpath:/opt/freeware/lib:/usr/lib:/lib:/opt/freeware/lib/mysql:/opt/freeware/lib/mysql/mysql"

export PATH=/usr/bin:/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:/usr/vac/bin:/usr/vacpp/bin:/usr/ccs/bin:/usr/dt/bin:/usr/opt/perl5/bin:/opt/freeware/bin:/opt/freeware/sbin:/usr/local/bin:/usr/lib/instl

export CFLAGS="-DSYSV -D_AIX -D_AIX32 -D_AIX41 -D_AIX43 -D_AIX51 -D_AIX52 -D_AIX53 -D_AIX61 -D_ALL_SOURCE -DFUNCPROTO=15 -O -I/opt/freeware/include"

make clean

./configure '--with-modules=mod_tls:mod_sql:mod_sql_mysql:mod_sql_passwd:mod_sftp:mod_sftp_sql' '--without-getopt' '--enable-openssl' '--with-includes=/home/poney/libmath_header:/home/poney/include_mysql/mysql/' '--with-libraries=/home/poney/libmath_lib:/opt/freeware/lib/mysql/mysql:/opt/freeware/lib/mysql/mysql/libmysqlclient.a' '--prefix=/usr/local/proftpd'

make

事情是它编译没有进一步警告. make install时我还会收到警告:

ld: 0711-224 WARNING: Duplicate symbol: .bcopy

ld: 0711-224 WARNING: Duplicate symbol: .memmove

ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.

我的配置允许FTPS SFTP和FTP,如果我尝试连接ftps,它确实有效,直到我输入密码:

openssl s_client -connect 127.0.0.1:210 -starttls ftp

CONNECTED(00000003)

depth=0 /C=AU/ST=Some-State/O=Internet Widgits Pty Ltd

verify error:num=18:self signed certificate

verify return:1

depth=0 /C=AU/ST=Some-State/O=Internet Widgits Pty Ltd

verify return:1

---

Certificate chain

0 s:/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd

i:/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd

---

Server certificate

-----BEGIN CERTIFICATE-----

MIICWDCCAcGgAwIBAg[...]8dqCxa3HS6bgg==

-----END CERTIFICATE-----

subject=/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd

issuer=/C=AU/ST=Some-State/O=Internet Widgits Pty Ltd

---

No client certificate CA names sent

---

SSL handshake has read 1264 bytes and written 341 bytes

---

New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA

Server public key is 1024 bit

Secure Renegotiation IS supported

Compression: NONE

Expansion: NONE

SSL-Session:

Protocol : TLSv1

Cipher : DHE-RSA-AES256-SHA

Session-ID: 6F520DFBC97CF172B68A99510AAFA765658324A4478D87ACB481362070A88034

Session-ID-ctx:

Master-Key: [...]

Key-Arg : None

Start Time: 1391443369

Timeout : 300 (sec)

Verify return code: 18 (self signed certificate)

---

220 ProFTPD 1.3.4d Server (ftp daemon) [127.0.0.1]

USER frank

331 Password required for frank

PASS $$$$$

之后什么都没有,它什么都不做.在proftpd方面,deamon确实提供了一些跟踪:

see pastbin

我在这里看不到任何有用的东西.

我很确定这个库有什么问题,但我真的不知道为什么它不想在最后因为编译而没有问题.

解决方法:

最后答案是:

这不是一个错误,这是一个功能

如果您尝试连接dns中已知的数据库但数据包被防火墙丢弃,那么您将陷入客户端的sql超时(大约85秒),如果您已将modthqlc设置为AUthOrder,则无法进行其他身份验证第一.

所以我的编译选项也正确,包版本也是正确的.

标签:aix,mysql,gcc,compiling,xlc

来源: https://codeday.me/bug/20190815/1662414.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值