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

Ruby / Chef RecipeforVagrantを使用してMysqlデータベースをインポートする

    ファイルパスエラーで、chef soloを使用している場合は、 solo.rb内で指定されたパスを使用してみてください。 、のように:

    /tmp/chef-solo/site-cookbooks/path_to_file.sql
    

    一般的な注意として、データベースクックブック の使用を検討してください。 mysqlユーザーおよびデータベース管理タスク用。必要なクックブックの依存関係を設定したら、このようなコードをメインレシピの default.rbに配置できます。 :

    # externalize conection info in a ruby hash
    mysql_connection_info = {
      :host => "localhost",
      :username => 'root',
      :password => node['mysql']['server_root_password']
    }
    
    # drop if exists, then create a mysql database named DB_NAME
    mysql_database 'DB_NAME' do
      connection mysql_connection_info
      action [:drop, :create]
    end
    
    # query a database from a sql script on disk
    mysql_database "DB_NAME" do
      connection mysql_connection_info
      sql { ::File.open("/tmp/chef-solo/site-cookbooks/main/path/to/sql_script.sql").read }
      action :query
    end
    
    #or import from a dump file
    mysql_database "DB_NAME" do
      connection mysql_connection_info
      sql "source /tmp/chef-solo/site-cookbooks/main/path/to/sql_dump.sql;"
    end
    

    chefディレクトリ内にデータベースファイルを保存すると処理速度が大幅に低下するため、最後の1つはテストしていません。

    参照:SQLファイルをmysqlにインポート



    1. SQLデータベースから緯度と経度を使用して最寄りの場所を見つける方法は?

    2. MySQLWorkbenchは結果をBLOBとして表示します

    3. COUNT(DISTINCT)によるパーセンタイルと相関WHEREは、ビューでのみ機能します(またはDISTINCTなしで機能します)

    4. すでにコミットしたトランザクションをロールバックできますか? (データロス)