国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ php教程 php手冊(cè) Linux php mysql データベース バックアップの実裝コード

Linux php mysql データベース バックアップの実裝コード

Jun 13, 2016 pm 12:24 PM
linux mysql php コード しかし 現(xiàn)れる バックアップ 成し遂げる データベース 走る 質(zhì)問

しかし、問題があります。
まず、php を?qū)g行しているユーザーは、nobody などの Apche ユーザーであり、通常、/usr/local/mysql/data ディレクトリにアクセスする権限がありません。
第 2 に、たとえアクセス許可があったとしてもでは、/usr/local/mysql/data ディレクトリ內(nèi)のファイルをコピーするにはどうすればよいでしょうか? mysql の実行中はアクセスできないため、ユーザー誰も mysql サービスを停止する権限を持ちませんが、これは不可能です。
考えれば考えるほどおかしい、まずはPHPでデータベースを操作できないか、ということでphpMyadminとDiscuz!を調(diào)べてみました。コードは、笑、Discuz をコピーしました!このコードは、データベースをバックアップする次のメソッドを形成します。 (Discuz の開発者様、ありがとうございます!)

データベースのバックアップには、データベースの構(gòu)造のみをバックアップする方法と、構(gòu)造とすべてのデータをバックアップする方法があります。もちろん、2 番目の方法は良い方法ですが、考えられるニーズを考慮してこの方法をとっただけです。


/****** データベース構(gòu)造のバックアップ ******/

/*
関數(shù)名: table2sql()
関數(shù): テーブル構(gòu)造を SQL に変換
関數(shù)パラメータ: $table: 抽出するテーブル名
戻り値: 抽出結(jié)果を返す、SQL コレクション
関數(shù)作成者: heiyeluren
*/

function table2sql($table)
{
global $db;
$tabledump = "DROP TABLE IF EXISTS $table;n";
$createtable = $db->query("SHOW CREATE TABLE $table"); create = $db->fetch_row($createtable);
$tabledump .= $create[1].";nn";

return $tabledump; >
/****** データベース構(gòu)造とすべてのデータをバックアップします ******/
/*
関數(shù)名: data2sql()
関數(shù)関數(shù): テーブル構(gòu)造とデータを SQL に変換
関數(shù)パラメータ :$table:抽出するテーブル名
戻り値: 抽出結(jié)果を返す、SQL コレクション
関數(shù)作成者: heiyeluren
*/
function data2sql($table)
{
global $ db;
$tabledump = "$table が存在する場(chǎng)合はテーブルを削除します。";
$createtable = $db->query("SHOW CREATE TABLE $table"); >fetch_row($createtable);
$tabledump .= $create[1].";nn";

$rows = $db->query("SELECT * FROM $table") ;
$numfields = $db->num_fields($rows);
$numrows = $db->num_rows($rows);
while ($row = $db->fetch_row( $rows))
{
$comma = "";
$tabledump .= "INSERT INTO $table VALUES(";
for($i = 0; $i < ; $numfields; $i )
{
$tabledump .= $comma."'".mysql_escape_string($row[$i])."'";
$comma = "," >}
$tabledump .= ");n";
}

return $tabledump;


/****** 特定の実裝操作 ******/
コードを書き出したところで、特定のプログラムでバックアップを?qū)g裝する方法を見てみましょう。


/* データベースのバックアップ*/
// 注: データベース操作では phplib の DB クラスを使用します

// 保存するデータ テーブル、プレフィックス、保存場(chǎng)所
$tables = array('us_sort', 'us_download', 'us_article', 'us_guestbook'); // 保存するデータテーブルを定義します。
$prefix = 'us_'; // 保存される .sql ファイルのプレフィックス
$saveto = 'server' // ローカルまたはサーバー上の保存場(chǎng)所、デフォルトはサーバーです
$back_mode = 'all'; ; // 保存方法、データベース構(gòu)造をすべてバックアップするか、のみ保存するか
$admin = 'heiyeluren' //管理者名
$admin_email = 'heiyeluren@163.com'; email

// データ保存用のファイル名を定義
$local_filename = $prefix.date('Ymd_His').'.sql"';
if (!$filename) { $filename = $db_backup_path . date('Ymd_Check_code(4) . ".sql" }
$filename = $prefix.date(Ymd_His_).".sql"; // サーバー上に保存 ファイル名
// 最後の create_check_code() 関數(shù)に注目してください。これはランダムなコードを生成する関數(shù)です。詳細(xì)は、
// http:/ を參照してください。 /www.jb51.net/article/17423.htm

//データベース構(gòu)造とデータ?jī)?nèi)容を取得します
foreach($tables as $table)
{
if ($back_mode = = 'all') { $sqldump .= data2sql($table ); }
if ($back_mode == 'table') { $sqldump .= table2sql($table) }
}

// データの內(nèi)容が空でない場(chǎng)合は保存を開始します
if(trim($sqldump))
{
// 開始情報(bào)を書き込みます
$sqldump =
"# -- ---------------------------------------------------- ----n".
"# データ テーブル バックアップ n".
"#n".
"# サーバー: $db->Hostn".
"# データベース: $db ->Databasen".
"# バックアップ番號(hào): " . create_sess_id() ."n". // ここにセッション ID を生成する関數(shù)があります
"# バックアップ時(shí)間: ".time_to_date('',6) )."n". // 現(xiàn)在時(shí)刻を取得する関數(shù)です
"#n".
"# 管理者: $admin ($admin_email)n" // 管理者のユーザー名とメール アドレス
"# $copyrightn".
"# -- ----------------------------------- -------------- ----nnn".
$sqldump;

// ローカルに保存
if($saveto == "local" )
{
ob_end_clean();
header('Content-Encoding: none');
header('Content-Type: '.(strpos($HTTP_SERVER_VARS['HTTP_USER_AGENT']) MSIE') ? 'application/octetstream' : 'application/octet -stream'));
header('Content-Disposition: '.(strpos($HTTP_SERVER_VARS['HTTP_USER_AGENT'], 'MSIE') ? 'インライン; ' : 'attachment; ').'filename="' .$local_filename);
header('Content-Length: '.strlen($sqldump));
header('Pragma: no-cache' );
header('Expires: 0');
echo $sqldump;
}
// ローカルエンドに保存

// サーバーに保存$saveto == "サーバー")
{
if($filename != "")
{
@$fp = fopen($filename, "w "); $fp)
{
@flock($ fp, 3);
if(@!fwrite($fp, $sqldump))
{
@fclose($fp); ??>exit_msg("データ ファイルをサーバーに保存できません。ディレクトリ屬性を確認(rèn)してください。書き込み権限がありますか? ");
}
else
{
exit_msg("データはサーバー$filenameに正常にバックアップされました。");
}
}
else
{
exit_msg("指定したディレクトリ ". $filename ." を開けません。ディレクトリが存在するか、対応する権限があることを確認(rèn)してください。"); }
}
else
{
exit_msg("バックアップ ファイル名が入力されていません。戻って変更してください。");
}
}
// 保存サーバーへ End
}
else
{
exit_msg("データテーブルにコンテンツがありません")
}

/* バックアップデータベースの終了*/



ははは、基本的にはそれだけです。次に、問題の 1 つは、データをデータベースに復(fù)元する方法です。これは複雑ではないと思いますが、両方のスレーブを満足させることができるのが最善です。クライアントとスレーブサーバーのデータ回復(fù)機(jī)能。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場(chǎng)合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國(guó)語(yǔ)版

SublimeText3 中國(guó)語(yǔ)版

中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

vscode settings.jsonの場(chǎng)所 vscode settings.jsonの場(chǎng)所 Aug 01, 2025 am 06:12 AM

settings.jsonファイルは、ユーザーレベルまたはワークスペースレベルのパスにあり、VSCODE設(shè)定のカスタマイズに使用されます。 1。ユーザーレベルのパス:WindowsはC:\ users \\ appdata \ roaming \ code \ user \ settings.json、macos is/users //settings.json、linux is /home/.config/code/user/settings.json; 2。Workspace-Level Path:.vscode/settings Project Root Directoryの設(shè)定

Readonlyプロパティを備えたPHPに不変のオブジェクトを構(gòu)築します Readonlyプロパティを備えたPHPに不変のオブジェクトを構(gòu)築します Jul 30, 2025 am 05:40 AM

readonlypropertiesinphp8.2canonlybeassignedonedonedontheconstructoraturatiddeclaration andcannotBemodifiedifiedifiedifiedifiedifiedifiedifiadtivedabilityattthelanguagelele.2.

CSSダークモードのトグル例 CSSダークモードのトグル例 Jul 30, 2025 am 05:28 AM

まず、JavaScriptを使用して、ユーザーシステムの設(shè)定とローカルに保存されたテーマ設(shè)定を取得し、ページテーマを初期化します。 1. HTML構(gòu)造には、トピックの切り替えをトリガーするボタンが含まれています。 2。CSSの使用:rootは明るいテーマ変數(shù)を定義し、.dark-modeクラスは暗いテーマ変數(shù)を定義し、これらの変數(shù)をvar()を介して適用します。 3. JavaScript検出は、カラーのスchemeを好み、LocalStorageを読み取り、最初のテーマを決定します。 4.ボタンをクリックするときにHTML要素のダークモードクラスを切り替え、現(xiàn)在の狀態(tài)をLocalStorageに保存します。 5.すべての色の変更には、ユーザーを強(qiáng)化するために0.3秒の移行アニメーションが伴います

CronとAnacronでLinuxのタスクをスケジュールする方法 CronとAnacronでLinuxのタスクをスケジュールする方法 Aug 01, 2025 am 06:11 AM

cronisusedusedusedusedusedusedulingonalways-ossystems、whileanacronuresuressuressursunsystystemstature n't continuouslylypowered、suthaslaptops;

Javaパフォーマンスの最適化とプロファイリング手法 Javaパフォーマンスの最適化とプロファイリング手法 Jul 31, 2025 am 03:58 AM

パフォーマンス分析ツールを使用してボトルネックを見つけ、開発とテスト段階でVisualVMまたはJProfilerを使用し、生産環(huán)境で非同期財(cái)産を優(yōu)先します。 2。オブジェクトの作成を削減し、オブジェクトを再利用し、StringBuilderを使用して文字列のスプライシングを置き換え、適切なGC戦略を選択します。 3.コレクションの使用を最適化し、シーンに応じて初期容量を選択し、プリセットします。 4.同時(shí)性を最適化し、同時(shí)コレクションを使用し、ロックの粒度を低減し、スレッドプールを合理的に設(shè)定します。 5. JVMパラメーターを調(diào)整し、合理的なヒープサイズと低遅延のゴミコレクターを設(shè)定し、GCログを有効にします。 6.コードレベルでの反射を避け、ラッパークラスを基本タイプに置き換え、初期化を遅延させ、最終と靜的を使用します。 7。JMHと組み合わせた連続性能テストと監(jiān)視

Linux対Windowsの主な長(zhǎng)所と短所は何ですか? Linux対Windowsの主な長(zhǎng)所と短所は何ですか? Aug 03, 2025 am 02:56 AM

Linuxは古いハードウェアに適しており、セキュリティが高く、カスタマイズ可能ですが、ソフトウェアの互換性が弱いです。 Windowsソフトウェアはリッチで使いやすいですが、リソースの利用率が高くなっています。 1。パフォーマンスの観點(diǎn)から、Linuxは軽量で効率的で、古いデバイスに適しています。 Windowsには高いハードウェア要件があります。 2。ソフトウェアの観點(diǎn)から、Windowsにはより広い互換性、特にプロフェッショナルなツールやゲームがあります。 Linuxは、ツールを使用してソフトウェアを?qū)g行する必要があります。 3。セキュリティの観點(diǎn)から、Linux Permission Managementはより厳しく、更新は便利です。 Windowsは保護(hù)されていますが、まだ攻撃に対して脆弱です。 4。使用が難しいという點(diǎn)では、Linux學(xué)習(xí)曲線は急です。 Windows操作は直感的です。要件に従って選択します。パフォーマンスとセキュリティを備えたLinuxを選択し、互換性と使いやすさのWindowsを選択します。

端末を使用してLinuxにソフトウェアをインストールする方法は? 端末を使用してLinuxにソフトウェアをインストールする方法は? Aug 02, 2025 pm 12:58 PM

Linuxにソフトウェアをインストールする主な方法は3つあります。1。apt、dnf、またはpacmanなどのパッケージマネージャーを使用し、Sudoaptinintallcurlなどのソースを更新した後にインストールコマンドを?qū)g行します。 2。.DEBまたは.RPMファイルの場(chǎng)合、DPKGまたはRPMコマンドを使用してインストールし、必要に応じて依存関係を修復(fù)します。 3. SnapまたはFlatpakを使用して、バージョンの更新を追求しているユーザーに適したSudosnapInstallソフトウェア名など、プラットフォームにアプリケーションをインストールします。より良い互換性とパフォーマンスのために、システム獨(dú)自のパッケージマネージャーを使用することをお?jiǎng)幛幛筏蓼埂?/p>

データスクレイピングとWebオートメーションにPHPを使用します データスクレイピングとWebオートメーションにPHPを使用します Aug 01, 2025 am 07:45 AM

useguzzleforrobustttprequestswithheadersandtimeouts.2.parsehtmleffitywithsymfonydomddomedrawlerusingssseLectors.3.handlejavascript-heavysitesbyintegratingpuppeteerviaphpexec()torenderpages.4.respectrobots.txt、rotedelays.txt、adddelays.txt、adddelays.txt、

See all articles