我一直在努力让运行Debian-7-Wheezy的OpenVPN服务器整天通过mySQL进行身份验证。我在运行WHM和cPanel的另一台服务器上托管了mySQL。我将OpenVPN服务器的IP添加到白名单以进行数据库连接,检查了我的所有凭据并仔细检查了配置文件。当我跑:/etc/openvpn/script/test_connect_db.sh test 1234
时,我收到了这个错误:
/etc/openvpn/script/test_connect_db.sh: line 6: mysql: command not found
身份验证失败。
位于/etc/openvpn/script/test_connect_db.sh
的文件看起来完全如下:
#!/bin/bash
. /etc/openvpn/script/config.sh
##Test Authentication
username=$1
password=$2
user_id=$(mysql -h$HOST -P$PORT -u$USER -p$PASS $DB -sN -e "select user_id from user where user_id = '$username' AND user_pass = '$password' AND user_enable=1 AND user_start_date != user_end_date AND TO_DAYS(now()) >= TO_DAYS(user_start_date) AND (TO_DAYS(now()) <= TO_DAYS(user_end_date) OR user_end_date='0000-00-00')")
##Check user
[ "$user_id" != '' ] && [ "$user_id" = "$username" ] && echo "user : $username" && echo 'authentication ok.' && exit 0 || echo 'authentication failed.'; exit 1
知道什么是错的吗?
答案 0 :(得分:0)
听起来你的事件远远不足以尝试开始使用mysql连接。
您指定的错误表明它甚至找不到mysql客户端。
你能成功地从脚本外的命令行运行“mysql”吗?
如果是这样,表明你的$ PATH变量未在脚本范围内正确设置。
您没有说出config.sh正在做什么。也许那就是写PATH变量?
无论哪种方式,如果你可以从命令行运行mysql然后运行
which mysql
这应该为您提供客户端二进制文件的完全限定路径,您可以在脚本中使用它。