仕事

2017年11月 5日

【備忘録】WindowsのMySQL(zip版)における初期セットアップについて

先週、今週にかけてデータベースエンジニアとして活動していた。
俺はネットワークエンジニアになりたくて

この業界に入ったんだが?


でも上の命令には逆らえないからね。
ノーと言えない日本人。それが俺。



今回は言葉の通り、MySQLについての話。


なんでこんな話をしてるかというと、今の現場で上から
『今後VMで用意しておくと検証が楽だから、作っといて』
と言われたからだ。


環境を用意するだけならmsi版の方が操作が楽なのだが、zip版だと
・レジストリ弄らないで済む
・前提となるファイル(.NET Frameworkとか)を気安くインストールできない環境の場合
・横浜駅前の工事はいつになったら終わるのか
こんな時に便利なので、覚えておいて損はない。
客先常駐で勝手にソフトをインストールしたりするとPCチェックで引っかかって
「何遊んどるんじゃゴラァ」
とヤクザ(偉い人)に凄まれかねないので注意しようね。いやマジで。


※実際にやって困ったところも合わせて記載しているので、参考程度に。
 MySQLのバージョンは5.7.20を対象としている。



まず服を脱ぎます。まずzip版をダウンロードします。
MySQLの公式サイトからzip版を落としてくる。
32bitとか64bitとか聞かれるので選ぶ。
自分のOSが32bitか64bitが分からくなったお茶目さんは、デスクトップ上から
[Win]+[Pause]でバージョン確認できるので、それを試してね。

※バージョンの確認

0001


※MySQL公式サイトからのダウンロード

0000

途中で「Sign Up」とか言われてもNo thanksでOK。


zipを解凍して、事前準備を実施する。
まず親フォルダ(binフォルダやdocsフォルダが入っているところ)の名前を
[mysql-5.7.20-winx64]から[mysql]に変え、mysqlフォルダをCドライブ直下に置く。
でも場所はどこでも良いよ。パス書きやすいところに置きたいだけだから。

0002


Webで情報を漁る限り、かつて[my-default.ini]ファイルがあったらしいのだが
今は入っていない。なので作成する。

#####ここから下の内容を書く#####
[client]
port=3306
[mysqld]
port=3306
# dirs
basedir="C:/mysql"
datadir="C:/mysql/data"
tmpdir = "C:/mysql/temp"
autocommit=0
# logging
log_output=TABLE,FILE
log_error_verbosity=3
log_error="C:/mysql/logs/mysqld_error.log"
general_log=1
general_log_file="C:/mysql/logs/general_query_all.log"
log-slow-admin-statements=1
log-queries-not-using-indexes=1
slow_query_log=1
long_query_time=1
slow_query_log_file="C:/mysql/logs/slow_query.log"
log_syslog=0
log_timestamps=SYSTEM
character_set_server = utf8
[mysql]
default_character_set=utf8
default-time-zone="+9:00"
#####ここまで#####

パスはバックスラッシュじゃなくてスラッシュにすること。
ポートの指定とかはデフォルト値なので書かなくても問題ない気もするが、
念のため書いている。
合わせてそれぞれの用途に使うフォルダ(data/temp/logs)を用意する。
作った[my-default.ini]ファイルは[mysql]フォルダ直下に置く。

0003



さっそくコマンドプロンプトを起動させて、以下を打ち込む。

cd C:\mysql\bin

mysqld --defaults-file="C:\mysql\my-default.ini" --standalone --console
ここで分かってくれたと思うが、パスを用意するときに
mysqlのバージョンまで書いてあると何かと不便だから②でフォルダ名を変更したということ。

さあSQL Serverが立ち上がるぞ!
と思いきやこける。

0004

この
[Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist]
というのは、テーブルの初期化をやっていないからこけたということ。
なので、一回初期化する。

mysqld --initialize

そしてこける。

0005

どうもさっきの[mysqld --defaults-file= ~]実施時に
dataフォルダ内にファイルが生成され、それが邪魔してるみたい。

0006

なので、これら生成されたファイルを一度削除し、再度

mysqld --initialize

を実施。

0007

上手くいったね。
それじゃ最初に戻って以下のコマンドを打ち込もう。

mysqld --defaults-file="C:\mysql\my-default.ini" --standalone --console
0013


なんかここで止まったんだが?
ふざけてんの?



Webで調べると、どうもWebから「http://localhost」でアクセスチェックできることを
確認したいみたい。
ちなみにこの時点でもう一つコマプロ立ち上げてSQLログインしようとしても
弾かれます。

0009

あとDockerってなんだ?
しらねーよ。

俺は!
SQLを!!
使いたいだけなんだ!!!



ムンクの如く魂の雄叫びを心に刻みながら冷静に読み解くと、
どうもこの箇所は「--disable-partition-engine-check」でスキップできるようだ。
なので[Ctrl]+[C]で抜けて、打ち直し。

mysqld --defaults-file="C:\mysql\my-default.ini" --standalone --console --disable-partition-engine-check
0010

(゚∀゚)キタコレ!!


しかしClient側はaccess denyとかで入れないので、
サーバ側でスキップグラントオプションを指定する必要がある。

mysqld --defaults-file="C:\mysql\my-default.ini" --standalone --console --disable-partition-engine-check --skip-grant-tables

そうすれば入れるので、速やかにパスワードを設定してあげよう。



さて、これでSQLが使えるようになったわけだが
これだとSQL Serverを立ち上げてSQL Clientを立ち上げる工程が
非常に面倒くさい。
なのでバッチファイルを用意して、自動でログイン直前までできるようにする。

・mysqlフォルダ内にcalls.batを用意する。

#####中身(calls.bat)######

@echo off
start "SQL Server" /min C:\mysql\bat\serv.bat
timeout /T 2
start "SQL Client" C:\mysql\bat\client.bat

#####ここまで######


・mysqlフォルダ内に[bat]フォルダを用意して、
 [serv.bat]と[client.bat]を用意する。

#####中身(serv.bat)######

@echo off
cd c:\mysql\bin
mysqld --defaults-file="C:\mysql\my-default.ini" --console --standalone --disable-partition-engine-check
pause

#####ここまで######

#####中身(client.bat)######

@echo off
cmd /k cd c:\mysql\bin

#####ここまで######


これで、calls.batを叩くだけでmysqlコマンド直前まで一発でいける。
以上、おしまい。

早くネットワークの仕事に戻りたいなあ。

2016年8月11日

現場作業ついて

今やってる仕事はCisco Nexus9K/ASR/ASAなどなどの他に

Juniper EX/SRX/MXあたりを触っている。

Juniper(というかJUNOS)はCiscoと色々違う。特にコンフィグ。
主にdisplay setのコンフィグを投入し、想定した結果が出るように調整するのだが、
JUNOSは頭が悪い。
特に投入したコンフィグはshowコマンドの下部にセットされる点が嫌だ。
これだとフィルタやポリシー要件ではREJECTやDENY句の後についてしまうことがあり、
insert文で適宜調整してやる必要がある(あとはNATとか)。
EIGRPやHSRPは使用できない。これはCiscoのお話。
だからJUNOSではOSPFやVRRPを使用する。

この仕事(ネットワーク関係)をやりたくてIT業界に入ったのは事実。
しかしプロパーと顧客のコミュニケーションが上手くいかないと
泣きを見るのは設定変更をする俺である。

例えば、今回の案件では複数の環境間で通信を可能にさせることが目的であった。
前提としてプロパーが顧客側と合意したヒアリングシートを元に
コンフィグを作成するのだが、
「複数の環境間」というからには「複数」分のヒアリングシートが必要である。
この案件ではFWを挟んでいるため、
双方向のフィルタの設定をするかしないか確認しなければならないからだ。
それを忘れているためプロパーに確認し、必要分のヒアリングシートを手に入れた。
しかし、次にヒアリングシートに記載されている内容に不備が大量に発生している。
一例を挙げると
①複数の対向環境を一つのシートに無理矢理まとめられている。
 ⇒設定しても通信できない(VRFを使用しているためルーティングが通らない)。
②L3スイッチのstatic設定のNextHopをFWに指定しているのに
 そのFWのネットワークインポート要件にstaticの宛先が入ってない。
 ⇒設定しても通信できない(IPアドレスの不存在)。
③static設定の宛先とFWのインポート要件のIPアドレスが一致しない。
 ⇒設定しても通信できない(IPアドレスの不一致)。

これらすべてを解消したのがレビュー開始20分前くらい。
急いでコンフィグを作成してレビューを実施したものの、
戻ってきたら先輩の同僚から
「コンフィグが間違ってたぞ。気を付けろ」
と怒られる始末。
確かに間違えたのは俺の責任だけどさ。
腑に落ちないぜ、パイロットのリュウ

という感じで残業、残業、雨、残業な毎日を過ごしていた。
今日からは夏期休暇をフル活用して遊びに行く!
まずは手始めにラーメンを食べに行こう!!(平日に食べてる)
そしてたくさん寝よう!!(土曜日にやってる)

・・・何かしよう!!!!!!!!

2016年7月24日

大阪出張について

ポケモンGOとかどうでも良い。

俺の!

俺の!!
俺の話を聞けぇ~!!!!!!


先週大阪出張をしてきた。
火曜日に取り纏めから
「白瀬君、大阪行く?」
と尋ねられ、条件反射で「Yes」と応えたのがすべての始まり。
急いで宿を取ろうとして、めぼしい場所がどこも埋まっている現実に直面する。
同時に新幹線の予約や、自社への出張申請書、
さらにそれ以外に自分がやらなければならない案件2つのコンフィグ作成に追われ
火曜日、水曜日共に9時~23時という勤務時間帯。
なんとか全ての用意を終え、木曜日の当日は直接大阪へ向かうのではなく、
一度現場出勤した。
出勤前に横浜駅で当日から使用可能な新幹線チケットを購入し、
8時に現場到着、そのまま11時まで引継ぎとコンフィグ確認に没頭。
11時に現場を出て新横浜から新大阪までのぞみでレッツゴー。

新大阪から大阪、梅田を経由して蛍池でホテルにチェックイン。
この時点で15時。
ここから大阪現場へ16時に到着、作業開始。
作業は主にクラウド用スイッチの結線であり、
あっという間に終わると予想していたのだが想像以上に時間がかかり、
終わったのは23時。
急いで現場を退館し、終電でビジホに帰った(着いたのは24時)。
シャワーを浴びて近くのローソンで買ったご飯を食べながら
資料作成し、就寝。

翌日は9時30分より少し前にチェックアウトし、新大阪まで向かう。
ここで美味しそうなお土産を物色する。
結局決めたのがこの二つ。
・中之島ラスク
・お好み焼きせんべえ
直近プライベートで会う同僚と家族にでもあげようかと思う。

11時ののぞみに乗って新横浜まで行き、そのまま自宅へ直行(14時到着)。
16時には就寝し、そのまま12時間くらい寝てた。

この一週間で俺は思った。
「この仕事、心が折れる」

2015年12月26日

転職について

今はサーバ系のSE(笑)として日々奮闘しているが、
俺の給料が低すぎるので転職を決意した。
「給料低い?嘘つけたくさん貰ってるだろ」
という人もいるかもしれないが、
プロパーや上位会社の連中はたくさん貰っているのは事実。
でも俺はプロパーでも上位会社でもないから低い。
今年の源泉徴収票を見れば乾いた笑いが出てくるからね。
なおかつ支払金額は額面だから手取りはもっと低い。
給料が低い理由を具体的に言うと、
①月210時間を超えないと残業代は発生しない(裁量労働制)。
  ⇒210時間は固定。19営業日でも210時間で計算される。
②賞与は存在しない。
③資格手当も存在しない。

この3つが足枷になっている。
つまり、新しい会社に求める内容は上記3点の解消が絶対条件。
なおかつネットワーク系のSE職であれば最高。

これらを軸に1ヶ月ほど転職活動を実施し、
8社受けて第3志望の会社へ入社を決めた。
第1志望は二次面接で落とされた。
第2志望は来年1月まで面接が長引くと聞き、頓挫。
よって第3志望の会社で来年4月からお世話になる。

もちろん給料は上がった。
ベースで100万強、残業代平均レベルで150万。
先々月くらいの死ぬほど忙しい時が12ヶ月続くなら200万くらい増える(賞与込)。
資格手当も存在しているので安心だね。
そんなウキウキの年末。
上位会社とプロパー会社との軋轢に俺の転職事情が重なって
プロパー上位層からの覚えが間接的に悪くなったことを除けば
今年はITIL、基本情報、LPIC2、CCNP Switchまで取れたし、概ね満足している。

それではまた来年、良いお年を。

2015年8月 7日

仕事(給料)とSwitchについて

先月、新しい案件に配属されて忙しい毎日を送っている。
現在夏季休暇として1週間休みをもらったはずなのに、
「忙しいから出てこい」の一言で5日に減らされてしまった。
こんばんは白瀬です。

仕事についていろいろ言いたいのだが、一応守秘義務的なものもあるので
断片的に話そうかと思う。

まず、現在やっているのは大手メガバンのシステム設計である。
このうち、俺が担当しているのは仮想化部分の設計・構築である。
俺は設計をやったことが無いのでひたすら勉強している。
17時半くらいが定時だけど、3時間前後の残業をすることが多い。
それだけ仕事の絶対量が多い。マジで過多だろ。

当たり前だが俺が所属している会社から直で入れるわけないので、
所属会社を含めてメガバンまで会社を4つほど挟んでいる。
このうちメガバン寄りの協力会社として所属する会社は、
誰もが知っている某巨大企業だったりする。

「そんなことはどうでも良いわ。新しい案件の方が厳しいんだろ?
 給料上がったんだろ?教えろよへっへっへ」

そう思っている夢見がちな雄臭い乙女どもに告ぐ。
メガバンから俺に支払う給料のうち、間4社の手数料が差っ引かれる。
所属会社では出来高を採用していないため、
仮に俺が働いている部署から払われる金が40万だろうと80万だろうと
俺に入るお金は固定である。
つまりどういうことかというと。
給料は上がらないのだ。

こんなに難しい仕事やってるのに!!!
給料上がらないなんてやってられるか!!!!!!!
そんなこんなで、いまは上位会社の社員から
「白瀬君、うちの会社に入らない?」
と誘われている。
俺は優秀だからね(キリッ
前の職場でも誘われてたからね(ドヤッ

もちろん給料が上がるので、遠くないうちに転職するだろうね。

現在、平日の往復電車内でCCNP Switchの勉強をしている。
CCNAとの違いは、全体的に少し内容が深くなったのと
EtherChannelとか新しい分野がちょっと増えるくらいか。
今月中に資格取りたいねぇ。
その後Routerを取るつもりだったが、まだ教科書が発売されていないので
先にOracle Masterの勉強を始めようかと思う。
やっぱり忙しいな。死にたくなるね。マジ情緒不安定。

その他のカテゴリー