2017-07-19 9 views
0

MySQLにイベントを作成することができるかどうかを知る必要があります。mysql - イベントを作成し、サーバーに自動的にデータinfileをロードする

これは私の現在の状況です。

  1. 私は、ローカル生体認証データベースからPHPを使用して、データベース(MS Access)を取得することができます。

  2. ローカルデータベースサーバのデータベースを更新しました。現在はMySQLです。

  3. ターゲットデータベースのオンラインデータベースサーバーをエクスポートし、まずデータベースをオンラインデータベースサーバーにインポートすることで更新できます。

私のメインの質問は、私は、このようなMySQLイベントの特長として、任意のユーザーとの対話 なく、これを管理する方法ですか?

私たちのドメイン(Webサーバー)に私のPC(ローカルサーバー)からのデータをアップロードしようとしていますが、

+0

Mysqlイベントはユーザーの介入なしではありませんか?それはCronjobの一種として機能します –

+0

あなたはサーバー上で 'mysqldump'にアクセスできますか? – mulquin

+0

しかし質問から、データベースの場所は私には完全に明確ではありません。あなたのオフィスのどこかにアクセスできますか? MySQLデータベースとPHPがそうです。ターゲットはインターネット上のどこかのデータベースです。 –

答えて

0

すでにこの男を行って 、私は私の地元へのローカルアプリケーションを構築してきましたされてやりましたそのアプリケーションは、ローカルバイオメトリックデータベースからオンラインWebサーバーに更新されたデータベースをアップロードするFTPサービスを行っています。

この作業がすべて完了したら、Cronジョブを使用して.SQLファイルをロードするPHPスクリプトを作成しました。あなたはすべて、cronの仕事は、スクリプトを制御し、他のlinuxコマンドを実行するために予定された時間のイベントであることを知っています。

私のPHPコードを共有しますので、これに遭遇した人は誰でもこれを将来使用することができます。

date_default_timezone_set('Asia/Taipei'); 
    $CurTime = date('Y-m-d H:i:s'); 
    $link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD); 

    if(!$link){ 
     die('Failed to connect to server: ' . mysqli_error()); 
    } 

    //Select database 
    $db = mysqli_select_db($link,DB_DATABASE); 

    if(!$db){ 
     //Do auto download of database in the Server automatically 
     if(file_exists('Database/'.DB_DATABASE.'.sql')){ 
      mysqli_query($link,"CREATE DATABASE ".DB_DATABASE); 
      $db = mysqli_select_db($link,DB_DATABASE); 
      $readContent = file_get_contents("Database/".DB_DATABASE.".sql"); 
      $res = mysqli_multi_query($link,$readContent) or die(mysqli_error($link)); 
      mysqli_close($link); 
     } else { 
     die("Unable to select database, Please call your system administrator. Thank you.");  
     } 
    } 

    function Reload_Database($DBLink){ 
     if(file_exists($DBLink)){ 
      //mysqli_query($link,"DROP DATABASE ".DB_DATABASE); 
      //mysqli_query($link,"CREATE DATABASE ".DB_DATABASE); 
      $link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD); 
      $db = mysqli_select_db($link,DB_DATABASE); 
      $readContent = file_get_contents($DBLink); 
      $res = mysqli_multi_query($link,$readContent) or die(mysqli_error($link)); 
      mysqli_close($link); 
      return 'Database Reloaded'; 
     } else { 
      die("Unable to reload database, Please call your system administrator. Thank you.");  
     } 
    } 

echo Reload_Database('../employee/database/'.DB_DATABASE.'.sql'); 

これは、ローカルアプリケーションから与えられたアップロードされたデータベースのデータベースをリロードする基本的なスクリプトです。

ここから、cronジョブがその役割を果たします。私のローカルアプリケーションがローカルバイオメトリックデータベースの更新されたデータベースのアップロードだけを行うサービスであることを期待してください。

関連する問題