sql >> データベース >  >> RDS >> Mysql

グローバル構成ファイルを作成するにはどうすればよいですか?

    誰もが自分の好みを持っています。私は自分のDB設定をwebrootの外の.iniに保存してから、0600 chmod値を指定して、所有者以外の誰もがそれを読み取れないようにすることを好みます。

    .iniの例は次のようになります:

    [database]
    driver = mysql
    host = localhost
    ;port = 3306
    schema = yourdbname
    username = dbusername
    password = some_pass
    

    次に、php関数 parse_ini_fileを使用できます。 次に、コンストラクターでそれを読み取り、配列に解析します。

    public function __construct($file = 'dbsettings.ini')
    {
        // @todo: change this path to be consistent with outside your webroot
        $file = '../' . $file;
    
        if (!$settings = parse_ini_file($file, TRUE)) throw new exception('Unable to open ' . $file . '.');
    
        $dns = $settings['database']['driver'] .
        ':host=' . $settings['database']['host'] .
        ((!empty($settings['database']['port'])) ? (';port=' . $settings['database']['port']) : '') .
        ';dbname=' . $settings['database']['schema'];
    
        // if not PDO, this part needs to be changed parent::__construct($dns, $settings['database']['username'], $settings['database']['password']);
    }
    

    そしてビオラ、あなたはあなたのデータベース接続をセットアップするための簡単で安全な方法を持っています。このクラスはPDOエクステンダークラスから取得されたため、PDOを使用していない場合はその行を変更する必要がありますが、ご覧のとおり、$settingsでユーザー名などを取得できます。 配列。

    あらゆる種類のデータベース情報をCONSTANTに保存することは絶対に避けたいと思います。 またはGLOBAL 型変数。このように、$settings そのクラス関数でのみ使用可能であり、他には何も使用できません。これにより、セキュリティレイヤーが追加されます。



    1. MySQLmy.cnfパフォーマンスチューニングの推奨事項

    2. 高可用性のためにMySQL用のPerconaサーバーをデプロイする方法

    3. エラー:SQLSTATE [HY000] [2002]ターゲットマシンがアクティブに拒否したため、接続できませんでした

    4. ExcelスプレッドシートまたはCVSからMySQLにデータをインポートする