20200104のMySQLに関する記事は6件です。

MySQLで採番機能(シーケンス)を実装する方法を整理する

概要

今更ですが、MySQLで採番機能(シーケンス)が必要になったので、実装方法について自分用に整理してみました。

環境

MySQL 8.0.18

実装方法

方法1.LAST_INSERT_ID(expr) を使う

公式ドキュメントで紹介されている方法です。
MySQL :: MySQL 8.0 Reference Manual :: 12.15 Information Functions

1. 採番用のテーブルを用意し、ID=0のレコードをINSERTしておく

CREATE TABLE sequence (id INT NOT NULL) ENGINE=InnoDB;
INSERT INTO sequence VALUES (0);

2. LAST_INSERT_IDを使用し、連番を取得する

UPDATE sequence SET id=LAST_INSERT_ID(id+1);
SELECT LAST_INSERT_ID();

注意点として、

  1. rollbackすると、同一のIDが再度発行される
  2. UPDATEで排他ロックがかかる(分離レベル:REPEATABLE-READで検証)

が挙げられます。

方法2.AUTO_INCREMENTを使う

MySQL で採番テーブル」で紹介されている方法です。

1.採番用のテーブルを用意する

CREATE TABLE seq_ai (
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY
) engine = InnoDB;

2.新規レコードをINSERTし、LAST_INSERT_IDで連番を取得する

INSERT INTO seq_ai VALUES (NULL);
SELECT LAST_INSERT_ID();

3.採番テーブルにたまるレコードを削除する

DELETE FROM seq_ai WHERE id < :id; -- 2で取得した最新のレコードを残して削除

方法1の注意点1(rollback時の挙動)については、こちらの方法ではrollbackしても同じIDは発行されません(AUTO_INCREMENTのカウンタはrollbackしても戻らない)。

一方で、こちらの方法だと3のDELETE時に排他ロックが発生します(分離レベル:REPEATABLE-READで検証)。

方法3.方法1+ストレージエンジンをMyISAMにする

方法1の注意点はどちらもトランザクションに起因する問題だったので、採番用テーブルのみストレージエンジンをMyISAMにします。

CREATE TABLE sequence (id INT NOT NULL) ENGINE=MyISAM;
INSERT INTO sequence VALUES (0);

シーケンスの取得方法は方法1と同じです。

UPDATE sequence SET id=LAST_INSERT_ID(id+1);
SELECT LAST_INSERT_ID();

ストレージエンジンをMyISAMにすることで、

  • rollbackしても同じIDが発行されない
  • 排他ロックがかからない

という状態を実現できます。

参考URL

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

冬休みのmy宿題として、自宅サーバーを建ててみて感じたこと

はじめに

いやぁ、冬ですね。寒いですね。
皆さん、年明けいかがおすごしでしょうか?

どこか旅行に行かれてますか?それとも、美味しい物食べて寝正月ですか?
いいですね。

かくいう私は、冬休みの期間を活用して、3ヶ月ほど前からやりたかった自宅サーバーの開設にチャレンジしてみました。
言ってみれば、鯖正月って感じですかねw

セキュリティとか使い勝手は酷いものですが、一応データベースサーバーを作ることができました。
この記事では、サーバー構築してみた経験をポイントに分けて振り返ってみたいと思います。

作った物のザックリ概要

  • PC本体: SONYのVAIO,CPUはintel celeron
  • OS: Ubuntu18.04.3 LTS
  • その他: Apache2、MySQL5 etc.

試しに、「サーバー建ててみる」という目的で始めたので、昔使っていたノートパソコンを使ってサーバーにしていきました。

ディストリビューション選定はデスクトップ版のほうがいい!

今回はUbuntuディストリビューションを使っていったんですが、
Ubuntuにはサーバー版とデスクトップ版との2つエディションがあります。

最初は、「サーバー建てるためだから」と、その名前の通りサーバー版を安易に選んでいました。
CLIで環境設定を行うんですが、ここで困ったのがWi-fiの接続です。

めちゃめちゃ基本ですし、ファイルを編集して行うはずなんですが、
何度設定しようとしてもできませんでした、、

デスクトップ版だと環境設定が楽!

そこで、一度入れたサーバー版のOSを削除してGUIを使うことができるデスクトップ版をインストールしました。

すると、なんということでしょう!
初期設定でwi-fiの設定もできますし、日本語の設定をすれば、環境設定後も楽々作業できます。
初心者には断然、デスクトップ版がオススメです。

IPやDHCPなどのネットワーク周りの知識がついた(たぶん)

これは、もともとの目的だったんですが、基本的なネットワーク周りの知識をサーバーを建てていく過程で触れることができます。

僕は、始める前は固定IPアドレスの必要性など、簡単なところも理解できていなかったのですが、今では説明できますし、なぜDDNSなどのサービスがあるのかも理解できたかなと思っています。
本でネットワーク周りの知識はあるけど、イマイチピンときていないって方はサーバー開設で理解を深めるというのもいいのではないでしょうか?

セキュリティに関する知識がついた(きっと)

今回の成果物ではセキュリティ周りはダメダメだと思っているので、もっと丁寧に設定しないといけないなと反省しているのですが、それでもファイアーウォールの設定やsshの設定、sslなどに触れることはできました。

聞いたことあるけど良くわからんというセキュリティ関連の分野に爪先だけでも入ることができたかなと思っています。

サーバーも人が作ってるんだという実感が湧く(重要)

僕にとってはこれが結構デカイです。

正直、「自宅サーバー建ててみたら?」と勧められるまで、サーバーはAmazonやGoogleと言った大企業から賜る神の御業や贈物かなにかだと思ってましたww
(けっこうガチで)

でも、実際はそんなことはなく、サーバーも人の手で作られていますし、人が作れる物は大抵自分でも作れます。(そんなことない時もありますがw)

さらに、誰でも作れるように世界中の自分よりも頭も能力も優れている人たちがネット上に情報を発信してくれています。それらを使えば、広大で理解できないように思われるインターネット技術の端っこに触れることは誰にだってできるんだと改めて感じました。

小さいですが、こうゆう成功体験ができると、また作ってみたいという気持ちも湧いてきますし、この感覚は重要だと自画自賛してますw

本当に自信なかったですが、サーバー建ててみて良かったです!
皆さんも、チャレンジしてみてください!

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[初心者コピペ用]LaravelをAWSのEC2へデプロイ

前提

  • 2020年1月4日に確認したものです。
  • AWSのアカウント作成済
  • プロジェクトをGitHubにpush済

環境

  • macOS Catalina 10.15.2
  • Apache 2.4
  • PHP 7.1.33
  • MySQL 5.7
  • Laravel 5.8

1. EC2インスタンスの起動

  • EC2コンソールで作成(「公式チュートリアル」が分かりやすかったです)
  • 基本的に無料利用枠(下記の項目以外はデフォルト値)
設定項目 設定した内容
Amazon マシンイメージ (AMI) Amazon Linux 2でなく、Amazon Linux
インスタンスタイプ t2.micro
  • Linux2だと、手順が異なる公式ドキュメント

  • インスタンス作成の最後に、SSH接続に必要なキーペアを生成or設定

  • キーペア(pemファイル)は、~/.sshフォルダに入れておくと良い

2. EC2内で作業

2-1. SSHでEC2に接続

SSHとは. SSH(Secure Shell)とは、安全に通信を行って、ネットワークに接続された機器を遠隔操作するための通信手段(プロトコル)の1つ

※ 参照:初心者がSSHについて学ぶ(´・ω・`)

$ ssh -i [キーペア(pemファイル)を置いた場所のパス] ec2-user@[パブリックDNS or パブリックIP]
  • iオプションで、上記で生成or設定したpemファイルを指定する
  • ec2-userは、デフォルトのユーザー名。最初はこのユーザー名を使う
  • パブリックDNS or パブリックIPは、EC2コンソール画面で確認できる
  • 初回接続時のみ、yes/noを聞かれる

2-2. Apache, PHP, MySQLのインストール

  • yumのアップデートは忘れずに!(パッケージを最新にする)
  • yumはyオプションを付けることで、問い合わせ全てにYesと答えるため、yes/noがいちいち聞かれなくなります。
$ sudo yum update -y
$ sudo yum install -y httpd24 php71 php71-mbstring php71-zip php71-fpm php71-mysqlnd mysql57-server

Laravel 5.8のサーバ要件

2-3. Apacheを起動

$ sudo service httpd start

※ Linux2だと、systemctlコマンドが使える

この時点で、ブラウザでパブリック IPにアクセスすると、Apacheの画面が表示される。
EC2コンソール画面のセキュリティグループのインバウンドで、httpの80ポートを空けておくことを忘れずに
スクリーンショット 2020-01-04 18.42.21.png

# システムが再起動するたびにApacheが起動するように設定
$ sudo chkconfig httpd on

# 設定の確認
$ chkconfig --list httpd

2-4. ec2-userのファイル操作の許可を設定

参照:公式チュートリアル

Amazon Linux Apache ドキュメントルートは /var/www/html であり、デフォルトでは root によって所有されます。

そのため、ec2-userにファイル操作の権限を設定する必要がある。

# ec2-userをapacheグループに追加
$ sudo usermod -a -G apache ec2-user

# いったんログアウトして、再度ログイン
$ exit
$ ssh -i [キーペアのpemファイルを置いた場所のパス] ec2-user@[パブリックDNS or パブリックIP]

# /var/www とそのコンテンツのグループ所有権を apache グループに変更
$ sudo chown -R ec2-user:apache /var/www

# グループに、/var/wwwの書き込み許可追加
$ sudo chmod 2775 /var/www

# /var/www とサブディレクトのディレクトリ許可を変更
$ find /var/www -type d -exec sudo chmod 2775 {} \;

# /var/www とサブディレクトリのファイル許可を変更
$ find /var/www -type f -exec sudo chmod 0664 {} \;

2-5. composer自身のインストール

& curl -sS https://getcomposer.org/installer | php

# composerコマンドのパスを通す
$ sudo mv composer.phar /usr/local/bin/composer

# パス確認(/usr/local/bin/composerと表示されればOK)
$ which composer

2-6. Laravelプロジェクトをgit clone

sudo yum install git
cd /var/www
git clone [URL]

2-7. Apacheの設定変更

http.confファイルのDocumentRootの変更

Laravelでは、プロジェクト内のpublicディレクトリをドキュメントルートに指定する必要がある

$ sudo vi /etc/httpd/conf/httpd.conf

DocumentRoot “/var/www/html”の箇所をDocumentRoot “/var/www/プロジェクト名/public”に変更

http.confファイルに以下のDirectoryを追加(.htaccessの有効化)

<Directory /var/www/プロジェクト名/public>
 AllowOverride All
</Directory>

Apacheの設定変更後は、再起動を忘れずに!

$ sudo service httpd restart

2-8. パッケージのインストール

$ cd /var/www/[プロジェクトのフォルダ名]

# composer.jsonファイルがない場合
$ composer init

# vendorディレクトリが生成される
$ composer install

2-9. Laraveプロジェクトの設定

ディレクトリのパーミッション変更

Laravelでは、storage下とbootstrap/cacheディレクトリをWebサーバから書き込み可能にする必要がある

$ sudo chmod -R 777 /var/www/[プロジェクト名]/storage
$ sudo chmod -R 775 /var/www/[プロジェクト名]/bootstrap/cache

.envファイルの作成

cp .env.example .env

# .envファイルにある「APP_KEY」(アプリケーションキー)の生成
php artisan key:generate
APP_NAME=Laravel
APP_ENV=production
APP_KEY=base64:xxxxxxx(php artisan key:generateで生成される)
APP_DEBUG=false
APP_URL=http://[パブリックIP]

2-10. DBの設定、作成

MySQL側

# MySQL起動
$ sudo service mysqld start

# MySQLの初期設定
$ sudo mysql_secure_installation

# システムが再起動するたびにMySQLが起動するように設定
$ sudo chkconfig mysqld on

# データベース作成
$ mysql -u root -p
> 設定したパスワード入力
> create database [データベース名];
> show databases;
mysql_secure_installationコマンドで聞かれること
  • パスワード検証プラグインのセットアップ
  • パスワード
  • 匿名ユーザーアカウントの削除
  • rootユーザーのリモートログインの許否
  • testデータベースの削除

Laravel側

# 「DB_DATABASE」など、DB情報を設定しておく
$ sudo vi .env

DB_DATABASE=[作成したデータベース名]
DB_USERNAME=root
DB_PASSWORD=[設定したパスワード]
$ php artisan migrate
$ php artisan db:seed

参考にさせて頂いた記事

【Laravel】AWSにLaravelをインストールする
Laravel:EC2-PHP72-Apacheで環境を作成する
MySQL5.7 にて root のパスワード変更などの初期設定をする

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

LaravelをAWSのEC2へデプロイする手順

前提

  • 2020年1月4日に確認したものです。
  • AWSのアカウント作成済
  • プロジェクトをGitHubにpush済

環境

  • macOS Catalina 10.15.2
  • Apache 2.4
  • PHP 7.1.33
  • MySQL 5.7
  • Laravel 5.8

1. EC2インスタンスの起動

  • EC2コンソールで作成(「公式チュートリアル」が分かりやすかったです)
  • 基本的に無料利用枠(下記の項目以外はデフォルト値)
設定項目 設定した内容
Amazon マシンイメージ (AMI) Amazon Linux 2でなく、Amazon Linux
インスタンスタイプ t2.micro
  • Linux2だと、手順が異なる公式ドキュメント

  • インスタンス作成の最後に、SSH接続に必要なキーペアを生成or設定

  • キーペア(pemファイル)は、~/.sshフォルダに入れておくと良い

2. EC2内で作業

2-1. SSHでEC2に接続

SSHとは. SSH(Secure Shell)とは、安全に通信を行って、ネットワークに接続された機器を遠隔操作するための通信手段(プロトコル)の1つ

※ 参照:初心者がSSHについて学ぶ(´・ω・`)

$ ssh -i [キーペア(pemファイル)を置いた場所のパス] ec2-user@[パブリックDNS or パブリックIP]
  • iオプションで、上記で生成or設定したpemファイルを指定する
  • ec2-userは、デフォルトのユーザー名。最初はこのユーザー名を使う
  • パブリックDNS or パブリックIPは、EC2コンソール画面で確認できる
  • 初回接続時のみ、yes/noを聞かれる

2-2. Apache, PHP, MySQLのインストール

  • yumのアップデートは忘れずに!(パッケージを最新にする)
  • yumはyオプションを付けることで、問い合わせ全てにYesと答えるため、yes/noがいちいち聞かれなくなります。
$ sudo yum update -y
$ sudo yum install -y httpd24 php71 php71-mbstring php71-zip php71-fpm php71-mysqlnd mysql57-server

Laravel 5.8のサーバ要件

2-3. Apacheを起動

$ sudo service httpd start

※ Linux2だと、systemctlコマンドが使える

この時点で、ブラウザでパブリック IPにアクセスすると、Apacheの画面が表示される。
EC2コンソール画面のセキュリティグループのインバウンドで、httpの80ポートを空けておくことを忘れずに
スクリーンショット 2020-01-04 18.42.21.png

# システムが再起動するたびにApacheが起動するように設定
$ sudo chkconfig httpd on

# 設定の確認
$ chkconfig --list httpd

2-4. ec2-userのファイル操作の許可を設定

参照:公式チュートリアル

Amazon Linux Apache ドキュメントルートは /var/www/html であり、デフォルトでは root によって所有されます。

そのため、ec2-userにファイル操作の権限を設定する必要がある。

# ec2-userをapacheグループに追加
$ sudo usermod -a -G apache ec2-user

# いったんログアウトして、再度ログイン
$ exit
$ ssh -i [キーペアのpemファイルを置いた場所のパス] ec2-user@[パブリックDNS or パブリックIP]

# /var/www とそのコンテンツのグループ所有権を apache グループに変更
$ sudo chown -R ec2-user:apache /var/www

# グループに、/var/wwwの書き込み許可追加
$ sudo chmod 2775 /var/www

# /var/www とサブディレクトのディレクトリ許可を変更
$ find /var/www -type d -exec sudo chmod 2775 {} \;

# /var/www とサブディレクトリのファイル許可を変更
$ find /var/www -type f -exec sudo chmod 0664 {} \;

2-5. composer自身のインストール

& curl -sS https://getcomposer.org/installer | php

# composerコマンドのパスを通す
$ sudo mv composer.phar /usr/local/bin/composer

# パス確認(/usr/local/bin/composerと表示されればOK)
$ which composer

2-6. Laravelプロジェクトをgit clone

sudo yum install git
cd /var/www
git clone [URL]

2-7. Apacheの設定変更

http.confファイルのDocumentRootの変更

Laravelでは、プロジェクト内のpublicディレクトリをドキュメントルートに指定する必要がある

$ sudo vi /etc/httpd/conf/httpd.conf

DocumentRoot “/var/www/html”の箇所をDocumentRoot “/var/www/プロジェクト名/public”に変更

http.confファイルに以下のDirectoryを追加(.htaccessの有効化)

<Directory /var/www/プロジェクト名/public>
 AllowOverride All
</Directory>

Apacheの設定変更後は、再起動を忘れずに!

$ sudo service httpd restart

2-8. パッケージのインストール

$ cd /var/www/[プロジェクトのフォルダ名]

# composer.jsonファイルがない場合
$ composer init

# vendorディレクトリが生成される
$ composer install

2-9. Laraveプロジェクトの設定

ディレクトリのパーミッション変更

Laravelでは、storage下とbootstrap/cacheディレクトリをWebサーバから書き込み可能にする必要がある

$ sudo chmod -R 777 /var/www/[プロジェクト名]/storage
$ sudo chmod -R 775 /var/www/[プロジェクト名]/bootstrap/cache

.envファイルの作成

cp .env.example .env

# .envファイルにある「APP_KEY」(アプリケーションキー)の生成
php artisan key:generate
APP_NAME=Laravel
APP_ENV=production
APP_KEY=base64:xxxxxxx(php artisan key:generateで生成される)
APP_DEBUG=false
APP_URL=http://[パブリックIP]

2-10. DBの設定、作成

MySQL側

# MySQL起動
$ sudo service mysqld start

# MySQLの初期設定
$ sudo mysql_secure_installation

# システムが再起動するたびにMySQLが起動するように設定
$ sudo chkconfig mysqld on

# データベース作成
$ mysql -u root -p
> 設定したパスワード入力
> create database [データベース名];
> show databases;
mysql_secure_installationコマンドで聞かれること
  • パスワード検証プラグインのセットアップ
  • パスワード
  • 匿名ユーザーアカウントの削除
  • rootユーザーのリモートログインの許否
  • testデータベースの削除

Laravel側

# 「DB_DATABASE」など、DB情報を設定しておく
$ sudo vi .env

DB_DATABASE=[作成したデータベース名]
DB_USERNAME=root
DB_PASSWORD=[設定したパスワード]
$ php artisan migrate
$ php artisan db:seed

参考にさせて頂いた記事

【Laravel】AWSにLaravelをインストールする
Laravel:EC2-PHP72-Apacheで環境を作成する
MySQL5.7 にて root のパスワード変更などの初期設定をする

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

LaravelをAWSのEC2へデプロイしてみた

前提

  • 2020年1月4日に確認したものです。
  • AWSのアカウント作成済
  • プロジェクトをGitHubにpush済

環境

  • macOS Catalina 10.15.2
  • Apache 2.4
  • PHP 7.1.33
  • MySQL 5.7
  • Laravel 5.8

1. EC2インスタンスの起動

  • EC2コンソールで作成(「公式チュートリアル」が分かりやすかったです)
  • 基本的に無料利用枠(下記の項目以外はデフォルト値)
設定項目 設定した内容
Amazon マシンイメージ (AMI) Amazon Linux 2でなく、Amazon Linux
インスタンスタイプ t2.micro
  • Linux2だと、手順が異なる公式ドキュメント

  • インスタンス作成の最後に、SSH接続に必要なキーペアを生成or設定

  • キーペア(pemファイル)は、~/.sshフォルダに入れておくと良い

2. EC2内で作業

2-1. SSHでEC2に接続

SSHとは. SSH(Secure Shell)とは、安全に通信を行って、ネットワークに接続された機器を遠隔操作するための通信手段(プロトコル)の1つ

※ 参照:初心者がSSHについて学ぶ(´・ω・`)

$ ssh -i [キーペア(pemファイル)を置いた場所のパス] ec2-user@[パブリックDNS or パブリックIP]
  • iオプションで、上記で生成or設定したpemファイルを指定する
  • ec2-userは、デフォルトのユーザー名。最初はこのユーザー名を使う
  • パブリックDNS or パブリックIPは、EC2コンソール画面で確認できる
  • 初回接続時のみ、yes/noを聞かれる

2-2. Apache, PHP, MySQLのインストール

  • yumのアップデートは忘れずに!(パッケージを最新にする)
  • yumはyオプションを付けることで、問い合わせ全てにYesと答えるため、yes/noがいちいち聞かれなくなります。
$ sudo yum update -y
$ sudo yum install -y httpd24 php71 php71-mbstring php71-zip php71-fpm php71-mysqlnd mysql57-server

Laravel 5.8のサーバ要件

2-3. Apacheを起動

$ sudo service httpd start

※ Linux2だと、systemctlコマンドが使える

この時点で、ブラウザでパブリック IPにアクセスすると、Apacheの画面が表示される。
EC2コンソール画面のセキュリティグループのインバウンドで、httpの80ポートを空けておくことを忘れずに
スクリーンショット 2020-01-04 18.42.21.png

# システムが再起動するたびにApacheが起動するように設定
$ sudo chkconfig httpd on

# 設定の確認
$ chkconfig --list httpd

2-4. ec2-userのファイル操作の許可を設定

参照:公式チュートリアル

Amazon Linux Apache ドキュメントルートは /var/www/html であり、デフォルトでは root によって所有されます。

そのため、ec2-userにファイル操作の権限を設定する必要がある。

# ec2-userをapacheグループに追加
$ sudo usermod -a -G apache ec2-user

# いったんログアウトして、再度ログイン
$ exit
$ ssh -i [キーペアのpemファイルを置いた場所のパス] ec2-user@[パブリックDNS or パブリックIP]

# /var/www とそのコンテンツのグループ所有権を apache グループに変更
$ sudo chown -R ec2-user:apache /var/www

# グループに、/var/wwwの書き込み許可追加
$ sudo chmod 2775 /var/www

# /var/www とサブディレクトのディレクトリ許可を変更
$ find /var/www -type d -exec sudo chmod 2775 {} \;

# /var/www とサブディレクトリのファイル許可を変更
$ find /var/www -type f -exec sudo chmod 0664 {} \;

2-5. composer自身のインストール

& curl -sS https://getcomposer.org/installer | php

# composerコマンドのパスを通す
$ sudo mv composer.phar /usr/local/bin/composer

# パス確認(/usr/local/bin/composerと表示されればOK)
$ which composer

2-6. Laravelプロジェクトをgit clone

sudo yum install git
cd /var/www
git clone [URL]

2-7. Apacheの設定変更

http.confファイルのDocumentRootの変更

Laravelでは、プロジェクト内のpublicディレクトリをドキュメントルートに指定する必要がある

$ sudo vi /etc/httpd/conf/httpd.conf

DocumentRoot “/var/www/html”の箇所をDocumentRoot “/var/www/プロジェクト名/public”に変更

http.confファイルに以下のDirectoryを追加(.htaccessの有効化)

<Directory /var/www/プロジェクト名/public>
 AllowOverride All
</Directory>

Apacheの設定変更後は、再起動を忘れずに!

$ sudo service httpd restart

2-8. パッケージのインストール

$ cd /var/www/[プロジェクトのフォルダ名]

# composer.jsonファイルがない場合
$ composer init

# vendorディレクトリが生成される
$ composer install

2-9. Laraveプロジェクトの設定

ディレクトリのパーミッション変更

Laravelでは、storage下とbootstrap/cacheディレクトリをWebサーバから書き込み可能にする必要がある

$ sudo chmod -R 777 /var/www/[プロジェクト名]/storage
$ sudo chmod -R 775 /var/www/[プロジェクト名]/bootstrap/cache

.envファイルの作成

cp .env.example .env

# .envファイルにある「APP_KEY」(アプリケーションキー)の生成
php artisan key:generate
APP_NAME=Laravel
APP_ENV=production
APP_KEY=base64:xxxxxxx(php artisan key:generateで生成される)
APP_DEBUG=false
APP_URL=http://[パブリックIP]

2-10. DBの設定、作成

MySQL側

# MySQL起動
$ sudo service mysqld start

# MySQLの初期設定
$ sudo mysql_secure_installation

# システムが再起動するたびにMySQLが起動するように設定
$ sudo chkconfig mysqld on

# データベース作成
$ mysql -u root -p
> 設定したパスワード入力
> create database [データベース名];
> show databases;
mysql_secure_installationコマンドで聞かれること
  • パスワード検証プラグインのセットアップ
  • パスワード
  • 匿名ユーザーアカウントの削除
  • rootユーザーのリモートログインの許否
  • testデータベースの削除

Laravel側

# 「DB_DATABASE」など、DB情報を設定しておく
$ sudo vi .env

DB_DATABASE=[作成したデータベース名]
DB_USERNAME=root
DB_PASSWORD=[設定したパスワード]
$ php artisan migrate
$ php artisan db:seed

参考にさせて頂いた記事

【Laravel】AWSにLaravelをインストールする
Laravel:EC2-PHP72-Apacheで環境を作成する
MySQL5.7 にて root のパスワード変更などの初期設定をする

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

ドットインストール MySQL入門を始める手順 Mac【備忘録】

ドットインストール MySQL入門を始める手順 Mac【備忘録】

MySQL入門 #01 MySQLを使ってみようの始める手順 Mac

①Spotlight検索(右上の虫眼鏡マーク)より、terminalを起動

まずはログインする

②$ cd(ホームフォルダに移動)

③$ cd MyVagrant(仮想マシンをまとめたフォルダに移動)

④$ cd myCentOS(仮想マシンのフォルダに移動)

⑤$ vagrant up(仮想マシンが停止していれば、仮想マシンが起動する)←ちょっと時間かかる
※大体25〜30秒くらいかな。

⑥$ vagrant ssh(仮想マシンにログインする)←5秒ほどかかる

⑦([vagrant@localhost ~]$ となっていたら仮想マシンにログインできている証拠)

⑧Spotlight検索から、cyberduckを立ち上げる(ファイル転送ツールを立ち上げる)

⑨ブックマークを設定している為、出てきたものをダブルクリック(仮想マシンにアクセスする)

⑩/home/vagrantに移動できているか確認
※移動出来ていなければ、▲マークの左側のボタンを押して→/home/vagrantを選択

11.ここでMySQL用のフォルダを作る右クリックを押す→新規フォルダを作成→mysql_lessons

12.作ったmysql_lessonsのフォルダをダブルクリック

13.terminalに戻る

14.$ cd mysql_lessons(先ほど、作成したmysql_lessonsのフォルダにterminal上で移動する)

15.[vagrant@localhost mysql_lessons]$ となっているか確認

これで、

01 MySQLを使ってみよう

始められる所まで進みました。

補足.$ clear(←clearとすると、terminal内がキレイになる)

terminal内がごちゃごちゃしているのが嫌であれば、

こうやってキレイにすると見易くなります。

注意:設定が消えた訳ではないので、安心して下さい

ここから、MySQLの学習を始めればOKです。

補足2 学習を正常に終えたい場合

サーバーが開いていない場合

①$ exit(これで仮想マシンからログアウトできて、mbpの操作に戻る)※mbpはMacBook Proのことです

②$ vagrant suspend(これで仮想マシンを停止させることができる)←5、6秒かかります

③$ exit(これでターミナルを終了させることができる)

④終わり

今回は以上です。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む