20210427のMacに関する記事は5件です。

Laravelを使ってみよう

PHPのフレームワークであるLaravelの環境設定について記載します 利用環境 OS:Mac(M1) 始める前に まず、Laravelは通常のアプリケーションのようにダウンロードボタンからダウンロードするのではなく、ターミナルからコマンドを打って実行します。そのコマンドを打つために必要になるのが、composerというプログラムを利用します。そのため、まずはcomposerのインストールから始めます。 homebrewの導入 導入 homebrewの導入 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" エラーが出なければOK 確認 homebrewの確認 brew -v バージョンが正しく表示されればOK composerの導入 導入 composerの導入 brew install composer エラーが出なければOK 確認 composerの確認 composer -V バージョンが正しく表示されればOK ※「V」は大文字じゃないとダメ Laravelの導入 導入 Laravelの導入 composer global require "laravel/installer=~1.1" 環境変数PATHの設定 このままでは入ってはいてもコマンドが有効になっていないため、下記を実行して有効にする echo "export PATH=~/.composer/vendor/bin:$PATH" >> ~/.bash_profile source ~/.bash_profile Laravelを使ってみる プロジェクトの作成 プロジェクトを作成したいディレクトリまで移動してから下記を実行 composer create-project laravel/laravel プロジェクト名 --prefer-dist アプリケーションの実行 設定したプロジェクト名のディレクトリに移動してから下記を実行 php artisan serve 表示されたURLにリクエストして、Laravelのページが表示されればOK
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Composerによるプロジェクトの作成(Laravelでウェブアプリを作ろう①)

PHPのフレームワークであるLaravelの環境設定について記載します 利用環境 MacOS Big Sur MacBookAir(13-inch, Mid2013) 始める前に まず、Laravelは通常のアプリケーションのようにダウンロードボタンからダウンロードするのではなく、ターミナルからコマンドを打って実行します。そのコマンドを打つために必要になるのが、composerというプログラムを利用します。そのため、まずはcomposerのインストールから始めます。 homebrewの導入 導入 homebrewの導入 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" エラーが出なければOK 確認 homebrewの確認 brew -v バージョンが正しく表示されればOK composerの導入 導入 composerの導入 brew install composer エラーが出なければOK 確認 composerの確認 composer -V バージョンが正しく表示されればOK ※「V」は大文字じゃないとダメ Laravelの導入 導入 Laravelの導入 composer global require "laravel/installer=~1.1" 環境変数PATHの設定 このままでは入ってはいてもコマンドが有効になっていないため、下記を実行して有効にする echo "export PATH=~/.composer/vendor/bin:$PATH" >> ~/.bash_profile source ~/.bash_profile Laravelを使ってみる プロジェクトの作成 プロジェクトを作成したいディレクトリまで移動してから下記を実行 composer create-project laravel/laravel プロジェクト名 --prefer-dist アプリケーションの実行 設定したプロジェクト名のディレクトリに移動してから下記を実行 php artisan serve 表示されたURLにリクエストして、Laravelのページが表示されればOK
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[macOS] Big Sur 11.3 にアップデート後に現れた「選択項目から作成したフォルダ」に対処した話

■ 本記事の概要 本記事はBig Sur 11.3 にアップデートした際に、突如としてデスクトップに現れた「選択項目から作成したフォルダ」に対処した時の健忘録になります。 実際に行うかどうかは、最後まで読んだ上で、各人で判断していただければと思います。 ■ 発生日・バージョン変更etc 発生日:2021年4月27日 PC:MacBook OS:macOS Big Sur バージョン変更:11.2.3 → 11.3 ■ 問題発見の経緯 Big Sur 11.3 にアップデートが完了した後、デスクトップに見知らぬフォルダが現れました。 (問題のフォルダの中身は↓のようになってました。) ■ 同梱されていたlpdf 構成フォルダと同じディレクトリにある「場所が変更された項目とは?.lpdf」の中身はコピーライトの問題もあるので掲載はできませんが、アップグレード中に一部のファイルを新しい場所に移動できなかったとの内容が記載されていました。 その対象のファイルは"構成"フォルダ内にあるので、自分のファイルとそれを比較して、可能であれば統合するようにとのことでした。 今回の私のケースでは group.system_default がその対象ファイルだったようなので中身を確認してみました。 ■ group.system_defaul group.system_defaulファイルはテキストデータのようだったので、テキストエディットでファイルを開きました。以下の画像は同ファイルの冒頭部分の内容になります。 (テキストデータなので、VSCodeで開くこともできました) ■ 対象の自分のファイルを捜索 "構成"フォルダが"private"→"etc"→"group.system_defalut"となっていたのと、先程のVSCodeに表示されたディレクトリ階層から、対象となった自分のファイルを探しました。 (以下は私が見つけた場所への移動になります) ターミナル $ cd <%# "~ % " に移動 %> $ cd /private/etc <%# "etc % " に移動 %> $ ls <%# 表示された一覧に"grop"があるかを確認 %> ■ 自分のファイルと group.system_default を比較 先程の"etc"ディレクトリで、cat group で自分のファイルの中身をターミナル上に出力します。 ターミナル $ cat group 自分のgroupファイルの中身 ## # Group Database # # Note that this file is consulted directly only when the system is running # in single-user mode. At other times this information is provided by # Open Directory. # # See the opendirectoryd(8) man page for additional information about # Open Directory. ## nobody:*:-2: nogroup:*:-1: <%# ... 省略 ... %> _coreml:*:280:_coreml com.apple.access_ftp:*:395: <%# ... 省略 ... %> group.system_default と比較すると、自分のファイルは"_coreml::280:_coreml"の次に"com.apple.access_ftp::395:"が来ていたのですが、group.system_default の方は group.system_default ## # Group Database # # Note that this file is consulted directly only when the system is running # in single-user mode. At other times this information is provided by # Open Directory. # # See the opendirectoryd(8) man page for additional information about # Open Directory. ## nobody:*:-2: nogroup:*:-1: <%# ... 省略 ... %> _coreml:*:280:_coreml _trustd:*:282:_trustd   <%# 自分のファイルに無い記述 %> com.apple.access_ftp:*:395: <%# ... 省略 ... %> となっており、今回の私のケースでは"_trustd:*:282:_trustd"を統合するかどうかのようです。 (これ以降は実際に私がどのように統合したかの記述になります) ■ 統合までに行ったこと まずは編集するファイルのディレクトリへ移動します。 ターミナル $ cd <%# "~ % " に移動 %> $ cd /private/etc <%# "etc % " に移動 %> $ ls <%# 表示された一覧に"grop"があるかを確認 %> viを使ってファイル編集画面を開きます。 group $ sudo vi group $ "password入力" <%# password は mac ログインと同じもの %> <%# "sudo"を加えているのは %> <%# "group"ファイルは"readonly"のため %> <%# "vi group"だと編集できても、保存も終了ができず %> <%# ":q!キー"で抜け出す形になります。 %> (↓開いた状態)  ・ "i" キーを入力して、入力モードにします。 (↓入力モード状態の画像。"-- INSERT --"の表示がされてます)  ・ "_trustd:*:282:_trustd"を280と395の間に入力します。  ・ "esc" キーを押して入力モードから出ます。 ("-- INSERT --"の表記が消えます)  ・ ":wq" を入力してenterキーを押します。 <%# 上記で変更内容を保存できた上でターミナル画面に戻ります %> ■ 最後に 上記までが今回私が行った対処になります。 本記事の対処は私個人が統合するという判断を下しての行動なので、同じように統合するかは各々で判断をお願いします。 統合した私自身も「コレって本当に必要?」「大丈夫かな?」と思いながら統合しました。統合したことで今まで出来ていたことが出来なくなったり、特有と思われるエラーが起きた際は、また報告を上げたいと思います。 最後まで読んでいただき、ありがとうございました! ■ 参考にしたサイト
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Mac VirtualBox上のWindows 10 ProをUbuntu 20.04に移動してヘッドレス起動+RDP

Mac OSX VirtualBox上のWindows 10がなんだか邪魔になってきた 長年Windowsで開発をしてきたにも関わらず、メインの仕事がWindows EXEからiOSアプリに変わってきたこともあり、最近はもっぱらMacを使っております。 Windowsが必要なシーンもあるにはあるのですが、時間とともに減少の一途を辿っております。 そんなこともあり、すっかり日陰の存在なってしまったWindows 10をMacの外に追い出したい!と思い、今回Ubuntuサーバのほうに移動させ、必要な時にRDPで接続して利用することといたしました。 私の所有しているWindowsのライセンスはWindows XPからWindows 7を経て、バージョンアップで引き継がれてきたもので、今主流となっている64bitではなく32bitです。 移動元・移動先マシン 移動元 Mac Book Pro 13-inch, 2018, Four Thunderbolt 3 Ports CPU Core i7 2.7GHz クアッドコア メモリ 16GB 2133MHz LPDDR3 ストレージ 1TB SSD OS Mac OSX 10.15 Catalina 移動先 BOXNUC6CAYH インテル® NUC キット NUC6CAYH CPU Celeron® J3455 1.50 GHz クアッドコア メモリ 8GB 1600MHz DDR3L ストレージ 1TB SSD OS Ubuntu 20.04.2 LTS ディスク容量は同じですが、CPUがかなり遅いですね。 元々Linuxサーバ用途で購入したので、まぁ良い方ではないかと思います。 動作速度は大幅に落ちると思いますが、使用頻度がさがっていく一方のWindows 10なのでまぁいいでしょう。 UbuntuにVirtualBoxをインストール UbuntuにVirtualBoxをインストールします。 色々とググってみたところ、以下のサイトに親切な説明がありましたので、参考にさせていただきました。ありがとうございます。 Ubuntu 20.04にVirtualBox 6.1をインストールする方法 - Tutorial Crawler rootユーザにsuして、コマンドを以下の順番で打ちました。 $ apt update && apt upgrade $ wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add - $ wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add - $ add-apt-repository "deb http://download.virtualbox.org/virtualbox/debian focal contrib" $ apt update $ apt install virtualbox-6.1 aptリポジトリの構成でVirtualBoxがインストールできるようにして、インストールするという流れです。 無事にインストールができたら動作状況を確認します。 $ systemctl status vboxdrv ● vboxdrv.service - VirtualBox Linux kernel module Loaded: loaded (/usr/lib/virtualbox/vboxdrv.sh; enabled; vendor preset: enabled) Active: active (exited) since Thu 2021-04-22 17:38:07 JST; 15min ago Tasks: 0 (limit: 9268) Memory: 0B CGroup: /system.slice/vboxdrv.service Apr 22 17:38:07 home systemd[1]: Starting VirtualBox Linux kernel module... Apr 22 17:38:07 home vboxdrv.sh[3051450]: vboxdrv.sh: Starting VirtualBox services. Apr 22 17:38:07 home vboxdrv.sh[3051483]: VirtualBox services started. Apr 22 17:38:07 home systemd[1]: Started VirtualBox Linux kernel module. 無事にインストールされ動作しているようです。 VirtualBoxのバージョンを確認します。 $ VBoxManage --version 6.1.20r143896 バージョンは6.1.20でした。 この時点でのMac版VirtualBoxのバージョンが6.1.18だったので、Linux版のほうが進んでいるんですね。 Extension Packをインストールしておきましょう。 $ wget https://download.virtualbox.org/virtualbox/6.1.20/Oracle_VM_VirtualBox_Extension_Pack-6.1.20.vbox-extpack $ VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-6.1.20.vbox-extpack ゲストマシンを動作させるユーザをVirtualBoxのグループに追加します。 $ usermod -aG vboxusers Linuxユーザ名 これでUbuntu側のインストール作業は完了です。 Mac OSX VirtualMachine上のWindowsでの作業 MacのVirtualBoxでの作業に入ります。 Mac OSX VirtualBox上のWindowsのネットワーク設定はNATになっていることを前提に話を進めます。 最近のMac Book ProはEtherポートが付いていないので、ご家庭でのご使用でもEtherではなくオンボードのwifiをご利用されている方が圧倒的に多いと思いますが、VirtualBoxはいつのまにか、wifiアダプタへのBridge設定がうまく動かなくなってしまっています。そういうこともあるので、NAT前提で話をさせていただきます。 実は私のLinuxサーバもwifiでネットに接続されているので、移行先もNATのままで話を進めます。 まずはWindows 10を起動してRDP接続を有効にします。やり方はググれば出てきます。 ちなみにWindows 10 HomeはデフォルトではRDPを使えません。使うために特別なソフトウェアをインストールするみたいですが、私はやったことがありません。 続いてMacのターミナルで以下のコマンドを打ってください。 $ VBoxManage controlvm "VM名またはVM-UUID" natpf1 "rdp,tcp,,33389,,3389" これは"Windows 10"というゲストOSの3389ポートへのプロキシとして、ホストOSの33389番を利用しますよ、という意味です。 この段階でMac OSX用のMicrosift Remote Desktopでローカルホストの33389番に接続を試してみてください。 ‎「Microsoft Remote Desktop」をMac App Storeで Windowsのリモートデスクトップが表示されればOKです。 Windowsをシャットダウンしてください。 Windows 10をエクスポートする いよいよWindows 10をエクスポートします。 エクスポートする前に一つだけ確認してください。 それはVirtualBoxの3Dアクセラレーションをオフにすることです。 これをやり忘れると、ウインドウシステムの無いマシンにインポートされ、ヘッドレス起動をされたWindows 10にRDPで接続しても画面が真っ黒になってしまいます。 3DアクセラレーションをオフにしたらWindows 10をエクスポートします。 仮想アプライアンスのエクスポート というメニューを選んでエクスポートしてください。 最初に出てきた画面はだいたいこうなると思うのですが、そのままのオプション選択でOKです。 そのまま続きボタンを押していけばエクスポートが始まります。 時間がかかるのでのんびり待ちましょう。 UbuntuでWindows 10をインポート UbuntuにWindows 10を移動させます。 まずは先程エクスポートしたovaファイルをUbuntuにコピーしてください。 コピーが完了したら、VirtualBoxでWIndows 10を動作させるユーザとしてSSHやtelnet等でログインしてください。 先程rootの作業でusermodしたあのユーザです。 $ VBoxManage import エクスポートファイルのパス --dry-run で表示される値を一通りチェックしてください。 よろしければ、 $ VBoxManage import エクスポートファイルのパス としてインポートしてください。 これも時間がかかりますので、のんびりお待ち下さい。 Windows 10を起動してRDP接続 無事にインポートが済んだらWindows 10のVM起動してみましょう。 $ VBoxManage startvm "VM名またはVM-UUID" --type headless これでMac OSのMicorsoft Remote Desktopから UbuntuサーバのIPアドレス:33389 で接続ができると思います。 Micorsoft Remote DesktopのDisplayのColor quality設定はHigh(32-bit)からMedium(16-bit)に変更することをお勧めします。 無事に接続ができたら、このままLinuxサーバのターミナルからGuest Additionを当ててやってください。 $ VBoxManage guestcontrol "VM名またはVM-UUID" updateguestadditions --source /usr/share/virtualbox/VBoxGuestAdditions.iso --verbose Guest Additionが無事に当たったら、RDPの画面からシャットダウンを選んでください。 VMパラメータの変更 Mac Book Pro 13-inchとBOXNUC6CAYHのパフォーマンスの差、さらにRDP接続もあって動作がかなり遅いです。 少々遅いのは覚悟していましたが、それでも少しは早くしたいです。 CPU数変更 $ VBoxManage modifyvm "VM名またはVM-UUID" --cpus 2 CPU数を2つにしました。Mac Book Pro上では1つで十分に速かったのですが、BOXNUC6CAYHでは遅いので2つにしました。 グラフィックスドライバ変更 $ VBoxManage modifyvm "VM名またはVM-UUID" --graphicscontroller vboxvga Mac上ではVBoxSVGAを使っていたのですが、LinuxではVBoxVGAに変更しました。VBoxVGAのほうが良いということがググって出てきましたので、個人的感想としては変化は感じられませんでした。 H/Wアクセラレータoff $ VBoxManage modifyvm "VM名またはVM-UUID" --hwvirtex off $ VBoxManage modifyvm "VM名またはVM-UUID" --vtxvpid off これもネット上での情報でH/Wアクセラレータもオフにしたほうが速くなる、とあったので設定してみました。 若干速くなった気もしますが、気のせいかもしれません。 ドラッグ&ドロップとクリップボードの無効化 $ VBoxManage modifyvm "VM名またはVM-UUID" --clipboard-mode disabled $ VBoxManage modifyvm "VM名またはVM-UUID" --draganddrop disabled RDP接続なので、VirtualBoxを介したドラッグ&ドロップやクリップボードは使いません。 メモリ 32-bit Windowsは実メモリを3.5GBまでしか認識できません。 従いまして、RAMサイズはMacで使用していた時の3584MBままにしています。 Windows Updateの問題 Windows Updateの中にはシステム更新を完了させるために、OSのリブートをするものがあります。 VirtualBoxはOSが勝手にシャットダウンをしたものはエラーが発生したとみなして、Windows Updateの更新が失敗してしまいます。 解決策として、そのようなタイプのWindows Updateはユーザが必ず再起動やシャットダウンを行えば良いのですが、こちらはWindows側の設定で自動再起動を止めないとなりません。 Windows 10 Proの場合はローカルグループポリシーエディターで設定を行います。 「ここに入力して検索」入力ボックスに"gpedit.msc"と打てば出てきます。 ローカルグループポリシーエディターで「ローカルコンピューターポリシー」→「管理用テンプレート」→「Windowsコンポーネント」→「Windows Update」を開いてください。 その中の以下の2つを編集にしてください。 「自動更新を構成する」 で、有効ラジオボタンをチェックし、自動更新の構成は「自動ダウンロードしインストールを通知」を選択 「スケジュールされた自動更新のインストールで、ログオンしているユーザーがいる場合には自動的に再起動しない」 で、有効ラジオボタンをチェックする おそらくこれで、ユーザがログインしていない時にWindowsが勝手に再起動するのは防止できると思います。 最後に そんなに使わなくなったWindows 10ですが、90GB以上の領域をMacのSSDから奪っていました。これが自分がいつも使うマシンのSSDから消えたのが、ほんの僅かですが心地よいです。 Ubuntuサーバに移したWindows 10のVMはVBoxManageのexportコマンドを使って、月に1度のバックアップをとるようにしました。現在のWindowsの使用状況でしたら、それで十分な気がします。 バックアップが取られたら、通知する仕組みをつくって、USB HDDにエクスポートファイルをコピーするようにしています。 月1度の作業なので、そんなに苦痛にはならないと思っております。 分かりづらい点や、間違っている部分などがありましたら、コメントでお寄せくださいませ。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

MySQLをインストール(Mac編)

記事を作成した背景 プログラミングを独学されている方や、コーチングの際、簡単なWebアプリケーションを作ってみたい! という時に、やはりDBを使えた方ができる範囲は広くなります。 その際、必要最低限のことだけをまとめた記事が無かったので、 簡単なWebアプリケーション作成に際し、必要最低限の内容をまとめてみました。 概要 MacにMySQLをインストール手順を紹介します。 いろんな言語・フレームワークでWebアプリケーションを作成する際、 データベース(以下、「DB」)を使用する場面が多いと思います。 本記事では完全初心者の型がWebアプリケーションを作成する際に最低限必要なMySQLのインストール方法を記事にしました。 ターミナルの起動の仕方からお伝えするので、完全初心者の方もご安心下さい。 1. ターミナル起動編 まずはMySQLのインストールのためにターミナルを起動します。 ターミナルの起動方法は「Command + Space」を押し、Spotlight検索を呼び出します。 そこで「ターミナル」と入力し、 「Enter」キーでターミナルが起動します。 いかにもエンジニア!っぽい画面が立ち上がってテンション上がってきましたね! また、Spotlight検索はアプリケーション立ち上げのショートカットとして便利なのでぜひ活用して下さい! それでは続いてここにコマンドを入力して、更にエンジニアっぽいことをしていきましょう! 1. MySQLインストール編 先程立ち上げたターミナルにコマンドを入力し、MySQLをインストールします。 # MySQLインストールコマンド brew install mysql 2. MySQL起動編 インストール完了まで少し時間がかかりますが、無事完了したらインストールしたMySQLを起動します。 このコマンドは、PC立ち上げ時等、MySQLにアクセスする際は毎回実行する必要があるのでぜひ覚えておいて下さい。 # MySQL起動コマンド mysql.server start 以下のように表示されたら起動成功です! ちなみに、MySQL停止コマンドは以下になります。 # MySQL停止コマンド mysql.server stop 3. MySQLログイン編 MySQLの起動が完了したら、MySQLにログインしてSQLを実行できる状態にします。 # MySQLログインコマンド mysql -u root 無事ログインできたら、ターミナルの行頭に以下のように「mysql」という文字が表示されていると思います。 合わせて簡単にコマンドの説明もしておきます。 「mysql」コマンドに続く「-u」はユーザ名を指定してMySQLへログインするオプションになります。 続く「root」はMySQLインストール時に最初から用意されているユーザです。 ただ、「root」ユーザはとても強力な権限を持っているので、 普段からこのrootユーザでログインして作業をするのは、 大事な設定を間違えて上書きしてしまったり等ヒューマンエラーが発生する可能性が出てきてしまいます。 そこで、通常は、作業用に最低限の権限を付与したユーザを作成し、そちらでログインをして作業する形になります。 MySQLをインストールした直後は「root」ユーザしか用意されていないため、 ここから必要なDBを作成し、そのDBを操作する権限のみを付与したユーザを作成します。 4. 簡単な用語紹介 ここから新しくDB、テーブル等を作成していく上で、必要最低限の5つの用語を簡単にご紹介しておきます。 これ以降、下記5つの単語が記事内に出てくるので、わからなくなったら適宜ご参照下さい。 ※触りの説明だけなので、詳しく知りたい方はGoogle先生へ! ●データベース テーブルの集合体を表します。 Excelで例えると、これがExcelファイル自体になります。 ●テーブル レコードの集合体を表します。 実際にデータを格納するもので、 Excelで例えると「シート」になります。 「シート」の中に実際の値を格納していきますよおね。 ●レコード テーブルの中身を表す言葉で、イメージとしては「行」になります。 ●カラム テーブルの中身を表す言葉で、イメージとしては「列」になります。 ●フィールド テーブルの中身を表す言葉で、レコード(行)とカラム(列)が重なった場所になります。 Excelで例えると「セル」ということになります。 5. DB作成 それではMySQLのインストール、起動、5つの用語を覚えたところで、実際にDBを作成していきます。 まずは作業するためのExcelファイルを作成する、というイメージですね! 下記コマンドで「testdb」という名前のDBを作成します。 -- 構文: CREATE DATABASE `{DB名}` DEFAULT CHARACTER SET {文字コード}; CREATE DATABASE `testdb` DEFAULT CHARACTER SET UTF8; 6. ユーザ作成 DBの作成が完了したので、ここでrootユーザの出番は終了します。 ここからは新しく「testdb」を操作する権限だけを持ったユーザに切り替えていきます。 ユーザ作成は下記コマンドになります。 -- 構文: CREATE USER '{ユーザ名}' IDENTIFIED BY '{パスワード}'; CREATE USER 'user01'@'localhost' IDENTIFIED BY 'testpassword'; ユーザ名部分が少しわかりにくいかもしれませんが、 「user01」がログイン時に使用するユーザ名で、「testpassword」部分がパスワードになります。 それでは先程作成したユーザに「testdb」を操作する権限を与えていきます。 -- 構文: GRANT {付与権限名} ON `{対象DB名}`.* TO '{権限付与ユーザ名}'; GRANT ALL ON `testdb`.* TO 'user01'@'localhost'; 付与権限名に「ALL」を指定しているので、 今回は「testdb」に対する全ての権限を「user01」に与える形になります。 それでは無事ユーザの作成と権限付与が完了したので、 現在ログイン中のrootユーザからログアウトし、新しく作成したuser01でログインを行います。 ログアウトコマンドはこちらになります。 exit ログアウトが完了したら、user01でログインします。 mysql -u user01 -p 上記コマンドを入力するとパスワードを聞かれるので、先程ユーザ作成時に指定したパスワードを入力します。 testpassword これで無事user01にログインができました。一安心ですね。 7. テーブル作成 それではDB及びユーザの作成・切り替えが完了したので、テーブルを作っていきます。 ※イメージとしては、Excelファイル自体の作成はできたので、今からその中にシートを作っていく、という流れになります。 まずは今から操作するDBを指定してあげる必要があります。 use `testdb` これで以降実行するクエリはtestdbを対象としたものになります。 他のDBを操作したい場合は、再度「use」文を使用すれば切り替えられます。 では、テーブルを作成していきます。 ※先程までと違い長い構文なので、 一度テキストエディタに記述し、それをターミナルにコピペする方法がやりやすいと思います。 CREATE TABLE `books`( `id` INT PRIMARY KEY AUTO_INCREMENT, `title` VARCHAR(255) NOT NULL, `author` VARCHAR(64) NOT NULL, `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ); 長い構文ですが、1つずつ簡単に説明していきます。 まず今回作成するテーブル名は「books」になります。 本の情報を格納するテーブルを想定して作成しました。 続いて「id」〜「updated_at」行まで、これらがカラム(列)になります。 なのでExcelで例えると、1行目に見出しを作成するイメージになります。 見出しは作成できましたが、その中に実際に入れるデータはどんな形式なのかをあらかじめ指定してあげる必要があります。 それがINTやVARCHARとなります。 こちらはプログラミング言語の変数と同じイメージで大丈夫です。 型の種類や詳細が知りたい方は公式ドキュメントをご参照下さい。 それでは今回指定したカラムについて1行ずつ見ていきます。 ●idカラム `id` INT PRIMARY KEY AUTO_INCREMENT 主キー(PRIMARY KEY)になります。 MySQLのテーブルは、レコードごとに必ず一意(ユニーク)になる値を格納してあげる必要があります。 Excelでいうと画面左側に連番で続いてる数字ですね! なのでINTの型の指定のあと、「PRIMARY KEY」を記述しています。 さらに続けて「AUTO_INCREMENT」と記述しているのは、 このテーブルにデータを格納した際、自動的に連番で一意(ユニーク)な数字を採番してくれる設定になります。 Excelのシート画面では、予め画面左側に数字が連番で採番されていますが、 「AUTO_INCREMENT」の場合、1行新しく書き足していく度に勝手に数字が採番されていく、というイメージになります。 ●titleカラム `title` VARCHAR(255) NOT NULL 本のタイトルを保存するために用意しました。 当然数字ではなく文字列になるので、「VARCHAR」を指定しています。 その後ろの(255)というのは、格納する文字列のサイズを予め指定しています。 ●authorカラム `author` VARCHAR(64) NOT NULL, 本の著者を保存するために用意しました。 titleに比べそこまで長い名前の方はいないであろう、ということでサイズは(64)を指定します。 ●created_atカラム `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, MySQLのテーブルにもたせておく慣例のカラムです。 そのレコードの作成日時を格納します。 「DEFAULT CURRENT_TIMESTAMP」というのは、レコード作成時に自動的に現在日時が保存される設定になります。 これでプログラム側でいちいち現在日時を取得して挿入しなくても良いので、とても便利ですね! ●updated_atカラム `updated_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE created_at同様、MySQLのテーブルにもたせておく慣例のカラムです。 そのレコードの最終更新日時を格納します。 「DEFAULT CURRENT_TIMESTAMP」まではcreated_atカラムと同様ですが、 続いて「ON UPDATE CURRENT_TIMESTAMP」という文が続いています。 これはレコード更新時に自動的に現在日時が上書きされる設定になります。 こちらもプログラム側でいちいち制御しなくて良いので、とても便利ですね! 今回は5個のカラムを持つテーブルを作成しましたが、 これが10個になろうが2個だろうが構文に変わりは無いのでご安心下さい。 以上でテーブルの作成は完了しました! まとめ これで一旦、DBを作成し、中にテーブルを作成するところまで学びました。 おめでとうございます! この後は、プログラム側でORMを使用して実際にテーブルにデータを出し入れする流れになります。 本記事は学習用の簡易Webアプリケーションを作成する際のDB接続の最初の一歩のための記事になります。 本当はもっと細かいお話が色々ありますが、学習時に大事なモチベーションを保ったままでいただきたいので、 極力ややこしい話は割愛しておりますのでご了承下さい。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む