CGIスクリプトでmysqlを使用した自動ログイン

CGIスクリプトでmysqlを使用した自動ログイン

クエリを実行するCGIスクリプトを作成しました。 MySQL 認証の場合は、次のように .my.cnf ファイルに資格情報を提供して自動ログインを有効にします。bashMySQL

# the following section will be read by *all* client programs
[client]
user=dbuser
password=password

CGIプログラムはApacheユーザーとして実行されるため、Apacheのホームディレクトリに.my.cnfを配置しました。

  # grep apache /etc/passwd
  apache:x:48:48:Apache:/var/www:/sbin/nologin

 # ls -l /var/www/.my.cnf
 -rw------- 1 apache apache 97 Apr 23 12:36 /var/www/.my.cnf

しかし、mysqlクエリが実行されていないため、これはうまくいかないようです。実際には、CGIスクリプトのmysqlクエリがその場所から読み取れるように.my.cnfをどこに置くべきか混乱しています。

スクリプトのコードスニペットは次のとおりです。

#!/bin/bash

echo "Content-type: text/html"
echo ""

echo "<html>"
echo "<body>"

mysql -h 192.168.2.140 -D mysql -e "select User from mysql;"

echo "</body>"
echo "</html>"

ベストアンサー1

--defaults-extra-filemysqlのパラメータを使用して、使用したいcnfファイルを指定できます。

mysql --defaults-extra-file=/var/www/.my.cnf -h 192.168.2.140 -D mysql -e "select User from mysql;"

おすすめ記事