unrealMan’s blog

IT関連の奮闘記を備忘録がてら記載していきます!

MySQLのタイムゾーンの設定について

MySQLタイムゾーンの種類

システムタイムゾーン

ホストマシンのタイムゾーンです。
サーバ起動時にホストマシンのタイムゾーンを特定して、system_time_zone システム変数に設定されます。

サーバタイムゾーン

MySQLサーバの現在のタイムゾーンです。
time_zone システム変数に設定され、現在動作しているタイムゾーンを示します。time_zone の初期値は 'SYSTEM' となっており、サーバーのタイムゾーンがシステムタイムゾーンと同じであることを示します。

タイムゾーンの確認方法

SHOW VARIABLES LIKE '%time_zone%';

SHOW VARIABLES は、MySQL システム変数の値を表示するので、MySQLの設定値を確認するときに使います。今回は、time_zoneを確認したいので、LIKE構文で指定しています。

以下のように表示されました。
ホストマシンの設定(system_time_zone)がUTC時刻で、MySQLサーバの現在の設定(time_zone)がデフォルトの'SYSTEM'でUTC時刻となっています。

Variable_name Value
system_time_zone UTC
time_zone SYSTEM
SELECT now();
now()
2019-11-26 02:58:47

コマンド実行時が日本時間(+9:00)の11:58:47だったので、UTC時刻が表示されています。

セッション変数とグローバル変数

セッション変数

⇒現在の接続のみに影響します。

設定方法

 SET (SESSION) [変数名] = [値];

グローバル変数

⇒全接続に影響する設定です。

設定方法

 SET GLOBAL [変数名] = [値];
※ただし、サーバ自体を再起動してしまうとSET文での設定内容は失われるため、永続的な変更であれば設定ファイルを変更する必要があります。

実際にセッションを変えて確認してみます。

SET SESSION time_zone = "Asia/Tokyo";
SHOW VARIABLES LIKE '%time_zone%';
Variable_name Value
system_time_zone UTC
time_zone Asia/Tokyo
select now();
now()
2019-11-26 12:06:12

コマンド実行時が日本時間(+9:00)の12:06:12だったので、日本時刻が表示されています。

ちなみにこのタイミングでグローバル変数を確認すると、設定が変わっていないため、全接続の設定(グローバル)には影響を与えておらず、現在の接続(セッション)のみに影響を与えていることが分かります。

SHOW GLOBAL VARIABLES LIKE '%time_zone%';
Variable_name Value
system_time_zone UTC
time_zone SYSTEM


新たな接続(セッション)で確認すると、先ほどはセッションの設定だったためにUTC時刻に戻っていることが分かります。

select now();
now()
2019-11-26 03:07:38


以上です。

AWSとは?

AWSとは?

Amazon Web Serviceの略称であり、
インターネット通販で有名なAmazon.comが提供しているクラウドサービスです。
簡単にいうと、サーバーやネットワークをいつでもどこでもインターネット経由で借りることができます。
165を超えるさまざまなサービスが用意されており、それらを組み合わせることで、
ありとあらゆるアプリやインフラ環境を実現できます。

従量制なので必要な分だけ払い、不足している時にいつでも追加で必要な分だけ借りられます。

また、世界21リージョン(地域)の66アベイラビリティゾーン(施設)で、データセンターが稼働しているため、
グローバル展開にも向いています。
日本だと東京と大阪の2箇所にリージョンがあります。

どんなサービスがあるのか?(代表例)

Amazon EC2(Amazon Elastic Compute Cloud)

サーバー、OS、ソフトウェアなどをレンタルできるサービス
性能が可変で様々なスペックのものがある。

Amazon S3(Amazon Simple Storage Service)

ファイルの保管所。障害やエラーに強い。

Amazon VPC

仮想ネットワークを提供。

Amazon RDS

Aurora、PostgreSQLMySQLMariaDBOracleSQLServerといったDBをクラウドで利用可能。

Amazon Route53

DNS機能の提供。

Elastic IPアドレス

静的グローバルIPアドレスを提供


などなど...
まだまだたくさんあります。

何ができるのか?/どんな採用事例があるのか?

・EC2とRDSを組み合わせてのブログサイト運用
・EC2複数台をELB(ロードバランサ)で負荷分散しつつ、RDSやS3を組み合わせたECサイト
・その他
業務サーバ、分析・集計システム、災害等のバックアップ、ゲームサイト
などなど...

【コピペでOK】shで簡単に登録ディレクトリに移動

よく使うディレクトリを設定しておいて、簡単にディレクトリ移動する方法です。
コマンド登録しておけば、ワンコマンドで指定のディレクトリに移動できます。

①以下のshスクリプトを任意のディレクトリに配置

Windowsの場合は、Gitbashなどのターミナルで使用してください。
※ファイル名は任意です、使いやすいファイル名に変更してください。
 (表記のファイル名はcdコマンドにちなんでいます。)

cds.sh

#!/bin/bash

#パス設定
path=(
"/c/Users/unrealman/project/mnt/nfs/app1"
"/c/Users/unrealman/project/mnt/nfs/app2"
"/c/Users/unrealman/project/mnt/nfs/app3"
"/c/Users/unrealman/project/mnt/nfs/app3/log"
#登録したいディレクトリを設定
)

#選択肢の表示
i=0
for value in ${path[@]}; do
echo "${i}:${value}";
let i++
done

#入力値の待ち受け
read -p "Hit number: " num

#入力値に応じてディレクトリ移動
cd ${path[${num}]}

②コマンド登録(.bash_profileファイルを編集)

 .bash_profileに以下の行を追加してください。
※.bash_profileがなければ作成してください。
※~/custom/cds.shの部分のパスは①で配置したディレクトリを指定してください。
 今回は、ホームディレクトリ(~)の中にcustomディレクトリをきって配置しました。

$ vi ~/.bash_profile

alias cds='source ~/custom/cds.sh';

【ポイント】
"sh"や"bash"ではなく、"source"で読み込んでいる点がポイントです。
"sh"や"bash"だと、新たな子プロセスを生成して実行するので、
shスクリプト内のcdコマンドで移動するのは子プロセスであり、
shスクリプトの実行が完了すると元に戻ってしまいます。
対して"source"の場合は現在のプロセスで実行するため、
shスクリプト実行後のディレクトリが保持されるというわけです。

③.bash_profileの変更を反映

※.bash_profileはログイン時に読み込まれるため、本操作は次回以降のログインの際は不要です。

$ source ~/.bash_profile

④動作確認

登録したディレクトリが表示され、左の番号を入力してEnterで移動していればOKです。

unrealman@XXX-12345 MINGW64 ~
$ cds
0:/c/Users/unrealman/project/mnt/nfs/app1
1:/c/Users/unrealman/project/mnt/nfs/app2
2:/c/Users/unrealman/project/mnt/nfs/app3
3:/c/Users/unrealman/project/mnt/nfs/app3/log
Hit number: 3

unrealman@XXX-12345 MINGW64 ~/project/mnt/nfs/app3/log
$

以上です。

【簡単】初めてのメモリ増設【デスクトップ】

【簡単】初めてのメモリ増設【デスクトップ】

今回は、メモリ(16GB×2)が届いたのでデスクトップPC「GALLERIA」のメモリを増設していきます。(はじめてです)

1.PC紹介

f:id:unrealman:20191124220710j:plain

⇒画像:GALLERIA

f:id:unrealman:20191124224027j:plain

⇒画像:Crucial CT2K16G4DFD832A (DDR4 PC4-25600 16GBx2)

 

 

2.メモリ増設

まずは、デスクトップPCのケースを開けていきます。

f:id:unrealman:20191124222539j:plain

⇒画像:GALLERIA(背面)


①背面右側の上下のネジを外していきます。(赤丸箇所)

※下部の電源は外しておきます

 

f:id:unrealman:20191124222801j:plain

⇒画像:GALLERIA(左側面) ←が背面、→が前面です。

 

②正面から向かって左側面のカバーを外します。

外し方は、画像向かって左に1cm程度ずらし、手前に軽く引くと外れます。

 

③次に、メモリの位置を確認します。

f:id:unrealman:20191124223405j:plain

⇒画像:GALLERIA(左側面内部の上段)

赤枠箇所がメモリの差し込み場所です。

手前のコードが作業のじゃまとなるため、一旦外します。

f:id:unrealman:20191124223726j:plain

⇒画像:GALLERIA(左側面内部の上段)

コードを取り外すと、メモリの差し込み口が見えました。

④メモリを差し込む前に、赤枠のツメ(メモリ固定用のロック)を上にずらします。

 

f:id:unrealman:20191124224439j:plain

⇒画像:GALLERIA(左側面内部の上段)

⑤既存の2枚のメモリに今回追加した2枚で計4枚のメモリを差し込みました。

※必ず、カチッと音がするまで力強く奥まで差し込んでください。

 ツメも勝手にロックされるかと思います。

 

あとは、ケースを戻して動作確認するだけです。

 

電源ON!

f:id:unrealman:20191124225014j:plain

⇒画像:GALLERIA(前面)

f:id:unrealman:20191124225120j:plain

⇒画像:GALLERIA(左側面)

 

動きました。

と思ったら問題発生。。。 ⚠️

  

Windowsが立ち上がってこず、CPUが一定間隔で止まったり動いたり、、、

再度分解して、メモリ箇所を確認します。

f:id:unrealman:20191124225722j:plain

一番右のメモリがはまりきっておらず、スロットのツメが上がってました。。。

再度差し込みなおし、電源ON!

f:id:unrealman:20191124230010j:plain

動きました。

Windowsも起動したので、メモリが認識されているか確認します。

f:id:unrealman:20191124230227j:plain

⇒画像:コントロールパネル(システム)

今回、既存(8GB×2)+新規(16GB×2)で48GBになります。

無事認識されています。良かったです。

【初投稿】自己紹介

■自己紹介

 SE歴4年で、バリバリIT技術の波でもがき奮闘中の者です。

主にバックエンド側のPGとインフラ周りを携わってきました。

経験は、

アプリ :JavaPHP

インフラ:仮想サーバ/NW構築(K5)、DB構築(PostgreSQL)、shスクリプト

その他 :Docker、OracleMySQL、PowerCenter、Git、SVN、UnrealEngine4、html、css、js

etc...

となります。

※初心者レベルのものもありますが、とりあえず経験したものとなります。

現在は、PHPメインで

AWS+Docker+PHPのLaravelフレームワークで、サービスを作成しようとしています。

 

一つの技術に囚われず、幅広い分野でもがきながら見識を広げていきたいです。

これからの経験で役に立ったことを備忘録がてらアップしていこうと思います。

どこかで目についた皆さまのお役に立てたならうれしいです。