気ままNote

個人の技術メモ

MySQLのStrict Modeについて

開発用に使っていたDBを変えたところ、とあるクエリがINSERTできなくなる事案が発生。
どうやらMySQLsql_modeのひとつであるStrict Modeが原因のようでした。

そもそもStrict Modeを知らなかったのでそのメモ書きです。

環境

CentOS 6.4
MySQL 5.6.21

Strict Modeとは

  • 日本語にすると厳格モード
  • INSERT や UPDATE実行時に不正な値を入れないようにするためのもの
  • ちなみにINSERT IGNORE や UPDATE IGNOREで始まるようにするとエラー回避できる
  • 細かい挙動を扱うために、複数のモードを選択することができる

設定例

  • /usr/my.cnf
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES #有効
# sql_mode='' #無効
SET GLOBAL sql_mode = 'mode name';
SET SESSION sql_mode = 'mode name';

確認方法

mysql> SELECT @@GLOBAL.sql_mode;
mysql> SELECT @@SESSION.sql_mode;

下記公式ドキュメントにはさらに詳しく記載されています。

原因はわかったのでとりあえず先に進めそうです。

参考

MySQL :: MySQL 5.6 Reference Manual :: 5.1.7 Server SQL Modes

MySQL5.6にしていくつかのSQLでエラーが出るようになった | シーズクリエイターズブログ

ザ・アドテクノロジー を読んだ

積ん読消化1冊め。

エンジニアだからといって プログラミング関係の本ばかり読むわけにもいかないと思って、
今年に入ってから興味のあったアドテクを知るために読むことにした。

マス広告の歴史、ネット広告概論、商品リスト広告、データドリブン、アトリビューション等
近年のネット広告について、基本的なところをわかりやすくまとめてあった。

あとがきに有薗氏が書いているアドテクノロジーへの思いは、 星新一ショートショートがすぐに思い浮かんだ。 自分には関係ないと思っていた未来が もうすぐやってくるのかもしれない。

今後関わっていくことになる業界のことだから、この本をきっかけにして 実際の技術含めてアドテクノロジー周りをもっと調べるようにする。

ザ・アドテクノロジー データマーケティングの基礎からアトリビューションの概念まで

ザ・アドテクノロジー データマーケティングの基礎からアトリビューションの概念まで

rootと他のユーザーでコマンドプロンプトの色を分ける

方法

rootユーザーは自身の.bashrcに、
その他のユーザーは/etc/bashrc に設定を追記します。

rootユーザは赤色、他ユーザは青色になります。

  • /root/.bashrc
# color
PS1="\[\033[31m\][\u@\h \W]\\$\[\033[00m\] "
  • /etc/bashrc
# color
PS1="\[\033[36m\][\u@\h \W]\\$\[\033[00m\] "

手段を知ったら、次はいかに使い方を工夫できるか、が大事

NFSサーバ構築のメモ(EC2,AmazonLinux)

EC2にNFSサーバを構築する必要があったので、メモとして残しておきます。

サーバ側

パッケージのインストールやネットワーク許可・起動等

$ sudo su -
# yum -y install portmap
# yum -y install nfs-utils
# yum -y install nfs-utils-lib

# mkdir /mnt/share
# chmod 777 /mnt/share

# vi /etc/exports
/mnt/share    10.1.1.0/255.255.255.0(rw,sync,no_root_squash)

# vi /etc/hosts.deny
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL

# vi /etc/hosts.allow
portmap: 10.1.1.0
lockd: 10.1.1.0
rquotad: 10.1.1.0
mountd: 10.1.1.0
statd: 10.1.1.0

# chkconfig nfs on
# chkconfig --list nfs

# /etc/init.d/rpcbind start
# /etc/init.d/nfs start
# /etc/init.d/nfslock start

EC2なのでiptablesではなくSecurity Groupでそれぞれポートの接続を許可します。
今回は以下のファイルに記載されているポートを参考に許可しました。

参考ファイル

  • /etc/sysconfig/nfs
  • /etc/nfsmount.conf

許可したポート

  • TCP: 111, 892, 2049, 32803
  • UDP: 111, 892, 2049, 32769

クライアント側

$ sudo su -
# yum -y install nfs-utils

# mkdir /mnt/share
# chmod 777 /mnt/share

# vi /etc/fstab
[サーバ側IP]:/mnt/share   /mnt/share      nfs     defaults 0      0

# /etc/init.d/rpcbind start
# /etc/init.d/nfslock start
# mount /mnt/share

参考 URL

VMwareサーバのディスクをThinプロヴィジョニングに変更

実行コマンド

  • vmkfstools -i cloudstack_hosts02.vmdk -d thin cloudstack_hosts02-thin.vmdk
  • ESXiのクライアントから接続してVMから古いディスクを削除。(cloudstack_hosts02.vmdk)
  • VMの起動を試みるも、vmdkファイルの名前が合わず起動失敗。
  • cloudstack_hosts02.vmxファイルのscsiの名前を上記で作成したthin vmdkファイルの名前に変更
  • VMの起動成功

参考URL
http://otoufu.sblo.jp/article/56194141.html

便利ツール

 

  1.  Sendmail - SPFレコードチェック
  2. サブネットマスク計算(IPv4)/サブネット一覧(早見表)

  3. aguse.jp (参考:aguseは、調査したいサイトのURLや受信したメールのメールヘッダーを入力することにより、関連する情報を表示するサービスです。)

  4. 確認くん(VIA the UGTOP)

  5. SSL Server Test

  6. https://www.ssllabs.com/ssltest/analyze.html
  7. DNSViz

  8. dnscheck.jp

  9. Webアプリケーションの脆弱性の解説&体験ページ

  10.  ipv4.fetus.jp : 国/地域別IPアドレス(IPv4アドレス)割り当て一覧

  11.  codic - プログラマーのためのネーミング辞書

  12. テキスト操作系コマンド - ITメモ

  13. 日本の全エンジニアに捧ぐ!現在公開されているテスト用ダミーデータ一覧 | Find Job! Startup

  14. Css2Stylus - Convert your #CSS into #Stylus!

  15. 複数の文字コード方式に一括変換 | エンコード / デコード ツール

  16. What CSS prefixes should I use?

  17.  写真の縦横比を固定して拡大縮小値を計算するツール:JavaScriptサンプル |WEB上手

  18. Cloudcraft - Login

  19. SassMeister | The Sass Playground!

  20. https://regex101.com/

エンジニアCROSS2013に参加してきた #CROSS2013

 去年も参加して楽しかった記憶があるので、今年も参加してきました。

イベントに参加した当日はためになる話をたくさん聞かせてもらってモチベーション上がるけど、2.3日したらその感動も薄れていつもと変わらない日常送ってしまったりするので、いろいろ忘れないうちに書き残したいと思います。

普段ブログやTwitterで名前だけは知ってる人もたくさん登壇していて、間近で話を見聞きしているといつも以上にワクワクしてました。すいませんミーハーなんです。。

プレモルは、泡の柔らかさが心地よく、炭酸も強すぎず喉越しがスッキリしていながら濃くのある味がして美味しいです。ごちそうさまでした。

違う現場で働いている人たちが、技術を通じながらあの規模で集まれるのはすごいと思います。自分が聞きたい話を自由に選択できて、刺激をもらって、盛り上がる感じ、お祭りみたいで好きです。

 

以下、アナログにもノートで書きなぐったキーワード・メモになります。

---ニフティクラウド C4SA----

お昼はニフティさんの所でいただきました。その時紹介されていたC4SAがなかなかいい感じだったので試してみようと思います。今年は新しくPythonを取得したいしちょうどよかったです。でもこの手のサービスああいう機会でもないと知らなかっただろうなあ。。

 

---RDBMS × NoSQL----

SELECT文をまともに投げ始めてまだ一年経ってないですが、実際自分が使うときは理論とかはよくわからずいました。リレーショナルモデルを理解するためにも比較材料としてNoSQL使っていきたいです。オライリーのMongoDB本も手に入れたので準備はできている。Twitterで質問投げてたら さんに拾ってもらったおかげで疑問も解けました。受けるかどうかはともかくきちんとした正規化・リレーショナルモデルを組めるように情報処理試験やってみます。

 

他に重要と書き残していることは以下になります。

  • リレーショナルはツリー&履歴データが苦手。論理的なデータ構造に強い
  • DBはハードウェアの性能を最大限引き出すために設計されている。(〇〇メーカーの△△という製品は☓☓といった特徴がある。)

→ ここはコストも絡んでくる話なので深堀りしたい分野なんですが、Google先生に頼ってもいい検索結果がでてこなくて悩みます。何かしら探して一覧にまとめたいところです。

 

いつもPostgresqlにお世話になってる身としては永安さんが冒頭に紹介していたイベントにもいってみる予定です。

次回イベント行ったときはカメラ持っていくようにしよう...!