sql >> データベース >  >> Database Tools >> phpMyAdmin

phpMyAdmin設定ストレージエラー

    コードを調べた後、私はこの関数にたどり着きました。

    /**
     * Gets all available MIME-types
     *
     * @access  public
     * @staticvar   array   mimetypes
     * @return array    array[mimetype], array[transformation]
     */
    function PMA_getAvailableMIMEtypes()
    {
        static $stack = null;
    
        if (null !== $stack) {
            return $stack;
        }
    
        $stack = array();
        $filestack = array();
    
        $handle = opendir('./libraries/plugins/transformations');
    
        if (! $handle) {
            return $stack;
        }
    
        while ($file = readdir($handle)) {
            $filestack[] = $file;
        }
    
        closedir($handle);
        sort($filestack);
    
        foreach ($filestack as $file) {
            if (preg_match('|^.*_.*_.*\.class\.php$|', $file)) {
                // File contains transformation functions.
                $parts = explode('_', str_replace('.class.php', '', $file));
                $mimetype = $parts[0] . "/" . $parts[1];
                $stack['mimetype'][$mimetype] = $mimetype;
                $stack['transformation'][] = $mimetype . ': ' . $parts[2];
                $stack['transformation_file'][] = $file;
    
            } elseif (preg_match('|^.*\.class.php$|', $file)) {
                // File is a plain mimetype, no functions.
                $base = str_replace('.class.php', '', $file);
    
                if ($base != 'global') {
                    $mimetype = str_replace('_', '/', $base);
                    $stack['mimetype'][$mimetype] = $mimetype;
                    $stack['empty_mimetype'][$mimetype] = $mimetype;
                }
            }
        }
    
        return $stack;
    }
    

    私のphpスキルは限られていますが、plugins / transformsディレクトリ内のファイルを読み取り、これらのファイル名をこの関数を参照するスクリプトに返すことがわかります。ターミナルからこのディレクトリを閲覧すると、ファインダーによって作成された._ファイルでいっぱいになっていることに気付きました。私はMacを使用して開発を行っており、wgetの代わりにfinderを使用してphpmyadminのこの最新のコピーをプルしたため、これらの._ファイルがすべて作成されました。それらについての何かがこの関数を台無しにし、基本レベルでfindコマンドを使用してそれらを削除すると、すべてが意図したとおりに機能しました。同様のことを経験している人のためのfindコマンドは次のとおりです。

    find . -type f -name '._*' -exec rm {} \;
    

    繰り返しになりますが、phpmyadminディレクトリのベースレベルで実行すると、すべてうまくいくはずです。




    1. テーブル内の文字列の一部を削除します

    2. SQL ServerManagementStudiosで作成されたデータベースがVisualStudio2010で見つかりません

    3. SQL ServerManagementStudioのオブジェクトエクスプローラーが消えた-見つからない-消えた

    4. この列に外部キーを割り当てられないのはなぜですか?