RSS

LOAD DATA INFILE での注意点

MySQL の LOAD DATA INFILE コマンドで CSV ファイルをインポートする場合の注意点ですが、

  • テーブルの文字コードとCSVファイルの文字コードが合っているか?
  • CSVファイルの行の終端がLFか?(WindowsではデフォルトでCRLFになるので注意)
  • 特殊な文字があるとうまくいかない可能性がある。例えば、絵文字 など。
  • 文字コードを実行前に指定しておく。
  • 区切り文字や囲み文字の指定が必要か?

です。

使用例

mysql> SET character_set_database=UTF8;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> load data local infile '/home/user/temp/TABLE1.csv' 
into table TABLE1 fields terminated by ',';
Query OK, 104 rows affected, 10 warnings (0.07 sec)

FIELDS の指定例

FIELDS
    TERMINATED BY ','
    OPTIONALLY ENCLOSED BY '"'
    ESCAPED BY ''
 
コメントする

投稿者: : 2016/11/22 投稿先 MySQL

 

sudo でパスワードを省略するには

sudo visudo を実行して sudoers に NOPASSWD 句を追加する。下にサンプルを示す。

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) NOPASSWD: ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d
 
コメントする

投稿者: : 2016/10/25 投稿先 Linux

 

Ubuntu: apt でインストールできるパッケージ

次のコマンドを実行すると、apt でインストールできるパッケージの候補を表示できる。$1 はパッケージ名の一部である。

apt-cache search $1

(例) apt-cache search mysql

インストールされたパッケージの一覧は

dpkg -l

で表示できる。使われていないパッケージは

apt autoremove

で削除できる。

 

 

 

 
コメントする

投稿者: : 2016/10/24 投稿先 Linux

 

Perl: インストールされている Perl モジュール一覧を表示する。

つぎのスクリプトを実行すると、そのマシンにインストールされている Perl モジュール一覧を表示する。

find `perl -e ‘print “@INC”‘` -name ‘*.pm’ -print

 

 

 
コメントする

投稿者: : 2016/10/21 投稿先 Perl

 

Windows から画像をまとめて Linux へ転送したとき、紛れ込んだ Thumbs.db を削除するには

Windows では画像ファイルの置いてあるフォルダに隠しファイル thumbs.db というサムネイルのキャッシュを保存するファイルが作られる。

このフォルダごと Linux へ FTP 転送などを行うと、この隠しファイルが紛れ込んでしまう。次の ruby スクリプトは Linux に転送された Windows の画像フォルダを再帰的に検索して Windows の隠しファイルを削除する。

#  ディレクトリに含まれるすべての Desktop.ini, Thumbs.db を削除

def deleteKs(path)
  if FileTest.directory?(path) then  # ディレクトリかどうかを判別
    Dir.foreach(path) do |file|
      next if file == '.' or file == '..'  # 上位ディレクトリと自身を対象から外す
      deleteKs(path.sub(/\/+$/,"") + "/" + file)
    end
  else
    name = File.basename(path)
    if name == 'Desktop.ini' or name == 'Thumbs.db' then
      puts "deleting .. " + path
      File.delete(path)
    end
  end
end

# main
if ARGV.size > 0 then
  if FileTest.exists?(ARGV[0]) then
    deleteKs(ARGV[0])
    puts 'Done.'
  else
    puts ARGV[0] + ' does not exists.'
  end
else
  puts 'Usage: deleteKasu dir'
end
 
コメントする

投稿者: : 2016/10/20 投稿先 Linux, Ruby

 

CPU の温度を確認するには (Linux)

夏場など冷房のない部屋にサーバを置いておくと、内部の温度が上がり熱暴走したり故障の原因になる。CPU の温度に問題ないかを表示するには次のコマンドを実行する。

cat /sys/class/thermal/thermal_zone0/temp

(CentOS 6 で確認)

 
コメントする

投稿者: : 2016/10/20 投稿先 Linux

 

環境変数 PATH の内容を見やすく表示する

次の Perl スクリプトは、環境変数 PATH の内容を見やすく表示する。

#!/usr/bin/perl

$_ = $ENV{"PATH"};
@paths = split /:/;

foreach (@paths) {
  print "$_\n";
}

実行例

/usr/local/bin
/bin
/usr/bin
/usr/local/sbin
/usr/sbin
/sbin
 
コメントする

投稿者: : 2016/10/20 投稿先 Linux, Perl