MySQL 外部ファイルからSQLを実行し結果をファイル出力
MySQLに接続する前と後の2通りのやり方を記載。
MySQLに接続する前の場合
予め準備したSQLファイルのあるフォルダに移動した上で、「<」でSQLファイルを指定
cd C:\Users\user_name\Desktop\sql// 作成したSQLのフォルダに移動
mysql -u user_name -p db_name < select.sql // 「< 」の後にsqlファイルを指定
mysql -u user_name -p db_name < select.sql > result.txt
// ↑「>」で実行結果をファイル出力することも可能
MySQLに接続しながらの場合
予め準備したファイルのあるフォルダに移動した上で、MySQLログイン時にリダイレクト先のみ指定し、「\.」または「source」でSQLファイルを指定
cd C:\Users\user_name\Desktop\sql
// 作成したSQLのフォルダに移動
mysql -u user_name -p db_name > result.sql // 「>」で出力先を指定しておくMySQL[db_name] > source insert.sql // source ファイル名でsqlファイルを指定
MySQL[db_name] > \. delete.sql // .\ ファイル名でも指定可
MySQL[db_name] > .\ select.sql
MySQL[db_name] > \q // 接続を切るまで出力するから漏れなく記録できるねいいね
盆明けにブログみたら書きかけの記事が普通に公開されてて地味に恥ずかしかった…!
CakePHP3 DB設定
DBの接続設定について書いていきます。
confing/app.php の Datasources の変更
'Datasources' => [
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => 'localhost',
/**
* CakePHP will use the default DB port based on the driver selected
* MySQL on MAMP uses port 8889, MAMP users will want to uncomment
* the following line and set the port accordingly
*/
//'port' => 'non_standard_port_number',
'username' => 'user_name',
'password' => 'password',
'database' => 'db_name',
'encoding' => 'utf8',
'timezone' => 'Asia/Tokyo',
'flags' => [],
'cacheMetadata' => true,
'log' => false,
:
config/bootstrap.php にもtimezoneの記述があるので変更します
/*
* Set server timezone to UTC. You can change it to another timezone of your
* choice but using UTC makes time calculations / conversions easier.
*/
date_default_timezone_set('Asia/Tokyo');
localhostにアクセスしてDatabaseの部分を確認します。
ちゃんと接続できているようです!
CakePHP 3.4.12 を入れる
CakePHPを入れます。
左上のCookbookかメニューのDocumentetionのBookからインストール手順を確認。
なんか…ものすごく詳細かつ丁寧に書かれていますよね…。
わざわざ私が書き起こす必要なんてあるの?と何度も思いました。
でも自分のために書きます…。
Composerを使うみたいですね。
私の環境はWindowsなので、DownloadからComposer-Setup.exeをDLします。
DLできたら、XAMPPのhtdocs配下にCakePHPを入れてみます。
composerのPATHが通した上で下記を実行。
composer self-update && composer create-project --prefer-dist cakephp/app 【任意のapp名】
キャプチャとるの忘れていたんですが、上記を実行後、パーミッションについて聞かれるのでYとこたえておきました。
色々できています。
よくわかってない私はこのまま localhost:port/cakephp/practice_prj に直接アクセスして動作確認してしまったのですが、どうやらcakePHPにサーバーの機能があるみたいで下記のようなコマンドで立ち上げてアクセスするのが正しいみたいです。
CakePHPのPATHを通した上で、下記を実行します。
cake server
するとURLが出ますね。(上だと http://localhost:8765 )
ここにアクセスするとCakePHPが動いていることが確認できます。
ほんまに動いてる…。あっという間じゃった…。
画面右下にあるケーキマークを押すと赤いバーが出てきていろんな情報が見れます。
デバッグに便利。
次はDB接続のための設定を書き換えていきましょう。
CakePHPを入れる準備(phpのIntl拡張を有効にする)
前の記事で準備したXAMPP環境にCakePHPを入れたいと思います。
と、その前に。
メニューのDocumentationのBookまたは左上のCook Bookからインストールの手順を確認。ここで気になる記述が。
XAMPP / WAMP のいずれでも、mcrypt 拡張も mbstring 拡張も初期インストール状態で 動きます。
XAMPP では intl 拡張は同梱されていますが、 php.ini の
extension=php_intl.dll
という行をコメントアウトして XAMPP コントロールパネルからサーバーの再起動を行う必要はあります。
拡張がちゃんと有効になっているか、確認が必要みたいですね。
phpinfoを確認したところ、mcrypt,mbstringは有効になっていましたが、intlは上記の引用の通り無効になっていたのでphp.iniを変更します。
extension=php_intl.dll
先頭のセミコロンを外してコメントアウトを解除し、Apacheを再起動、再度phpinfoを確認。でました。
というわけでやっとCakePHPを入れる準備が整いました。
WindowsにXMPPを入れる
ローカルに開発環境を構築する際、今まではApache,PHP,PostgreSQLなどをそれぞれ単体でDLし、設定するということをしていたのですが、MySQLの環境を構築しようと調べていたらXAMPPという便利なものを知りました。
MySQLじゃなくてMariaDBですがほぼ一緒なので試しに入れてみたところ、サイトからDL→終了。はっや。
起動したらこんな画面が出てきます。
それぞれのActionsのボタンを押して起動/停止や設定の変更などが行えます。
PIDやportとかもすぐわかるし、設定ファイルもConfig押すだけで開いてくれるから便利。。。
Apacheを起動してアクセスしてみます。繋がった。
右上にあるPHPinfoや、phpMyAdminのリンクを押すとちゃんと情報見れるし操作もできました。(phpAdminはもちろんDBをXAMPPで起動させてからです。)
次はcakePHPを入れてみます。
指定した容量のファイルがほしい。
とある案件の検証でディスク容量を圧迫しなきゃいけない項目があって
どんなやねんと思いながら調べたらそんなコマンドがありました。
dd if=/dev/zero of=ファイル名 bs=ブロックサイズ count=ブロック数
参考:
http://www.server-memo.net/server/tips/test-data.html
例えば2TBのファイルを作りたいときは
dd if=/dev/zero of=2tera bs=1G count=2048
で、2teraという名前のファイルができちゃいます。
実際に検証の時は2TBのファイルを作って検証しました。
ファイルの作成が完了するまですごい時間がかかりました。。