木曜日, 9月 12, 2019

テキストファイルの文字コード、改行コードを変換

カレントディレクトリ以下のファイルの文字コードをシフトJISからUTF-8に、改行コードをCR+LFからLFに変換する。
また、ファイル内の文字列Windows-31JまたはShift_JISをUTF-8に置換する。

$ find . -type f -print0 | xargs -0 perl -MEncode -i.bak -pe 'Encode::from_to($_,"cp932","utf-8"); s/\r\n/\n/g; s/(Windows-31J|Shift_JIS)/UTF-8/g;'
$ find . -name "*.bak" -print0 | xargs -0 rm -f

水曜日, 1月 16, 2019

SQL Serverで実行されたクエリを取得する

例えば、実行時刻が2019/01/16 16:10:00以降でクエリが「hogehoge」を含むものを取得する場合

SELECT st.text, last_execution_time
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st
WHERE last_execution_time >= '2019/01/16 16:10:00' AND st.text like '%hogehoge%'
ORDER BY last_execution_time

Azure Database for MySQL にバーチャルネットワークからだけ接続可能にする

 Microsoft AzureのMySQLのPaaSであるAzure Database for MySQLには、特定のIPアドレスからのみ接続できるようにする設定のほか、特定のバーチャルネットワークからのみ接続できるようにする設定も可能。

(1) バーチャルネットワークの「サービスエンドポイント」を「Microsoft.Sql」で追加する。

(2) Azure Database for MySQLの「接続のセキュリティ」で「既存の仮想ネットワークを追加」する。
なお、この設定ができるのは、「価格レベル」がBasic以外でなければならない。

 これらの設定の後、当該バーチャルネットワーク内の仮想マシンからMySQLに接続できるようになる。
 接続の際のログイン名とサーバ名は、Azure Database for MySQLの「プロパティ」で確認できる。

MySQLに接続する際は、

$ mysql -u ログイン名 -p -h サーバ名 --ssl

のようにSSLで接続するオプションを指定する。