20210111のMySQLに関する記事は4件です。

[My SQL] macOSでログイン、ログアウトする方法

環境

MySQLがインストールされたPC
MySQLのバージョンは 5.7

MySQLにログインする方法

MySQLを起動する

ターミナルで以下を実行します。

$ brew services start mysql@5.7

起動に成功すると以下のようになります。
すでに起動していた場合は再起動(restart)されます。

Successfully started `mysql@5.7` (label: homebrew.mxcl.mysql@5.7)

ログインする

ターミナルで以下を実行し、rootユーザーとしてログインします。

$ mysql --user=root --password

コマンド実行後 Enter password: と表示されるので設定したパスワードを入力します。
ログインに成功すると mysql> と表示されます。

ログアウトとMySQLの停止をする

ターミナルで以下を実行し、ログアウトします。

$ exit;

Bye と表示されたらログアウト成功です。
次にターミナルで以下を実行し、MySQLを停止します。

$ brew services stop mysql@5.7

Successfully stopped msyql@5.7 と表示されたらMySQLの停止は成功です。

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

Cloud9(Amazon Linux)でmysqlのバージョンアップ(5.5から5,7)

MySQLを停止する

sudo service mysqld stop

MySQLをアンインストールする

5.5系のMySQLをアンインストールする場合は以下のよう「55」になります。
sudo yum -y remove mysql-config mysql55-server mysql55-libs mysql55

MySQLをインストールする

5.7系をインストールする場合、「57」を指定します。
sudo yum -y install mysql57-server mysql57

再度バージョンを確認する

ちゃんとインストールされたかバージョンを確認します。
mysql --version

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

【ruby on rails + Mysql】herokuからAWSに切り替える際のデータ移行手順メモ

内容

ruby on railsで作成したアプリケーションの本番環境をherokuからAWSに移行する際のデータ移行について備忘録として書き残す。

実際には本番稼働後にサーバー環境を移すというのはリスクと手間ばかりかかって悪手だとは思うのですが、個人開発なのでお許しを・・。

環境

・ruby 2.7.1
・Rails 6.0.3.2
・mysql 5.7

以下のような形でAWSインフラを構築していることを想定

スクリーンショット 2021-01-11 10.27.31.png

heroku側:clearDB(Mysql)からデータのエクスポート

※本番環境の場合は、タイムラグによるデータ欠落等を防ぐため、一時的にサーバーを停止する等の措置が必要かと。詳しくはチームの方針に従ってください。ここではタイトル通りデータ移行の手順についてのみ記載します。

データベースURL取得

$heroku config --app アプリ名 | grep DATABASE_URL
CLEARDB_DATABASE_URL:     mysql://<USER_NAME>:<PASSWORD>@< HOST >/<DB_NAME>?reconnect=true

データのエクスポート

データのエクスポートをします。おそらくしばらく時間がかかるため気長に待ちましょう。

カレントディレクトリにdump.sqlが出力されていれば成功です。

mysqldump -uUSER_NAME -pPASSWORD -h HOST -r dump.sql --single-transaction DB_NAME --skip-column-statistics

オプションの内容を軽く説明しておくと、

--single-transaction・・・ダンプ処理をトランザクションで囲む。データの整合性を保つのに有効。MyISAMテーブルが含まれるDBでは別オプションが必要らしい。

--skip-column-statistics・・・mysqldump 8以降でそれ以前 (5.7とか) のMySQLサーバに対してダンプをする際に起こるエラーを回避。詳しくは筆者もよくわからない。。

以下記事参考
https://blog.pinkumohikan.com/entry/mysqldump-disable-column-statistics

mysqldumpのよく使うオプションを書いてくれている記事もあったため、リンクを貼っておきます。

よく使うmysqldumpのオプションと使用例
https://qiita.com/ryounagaoka/items/7be0479a36c97618907f

AWS側:EC2へsqlを転送

前提
・ssh接続ができている
・クライアントのssh/configは以下の場合

Host myapp
        HostName        IPAddress
        Port            22
        IdentityFile    ~/.ssh/myapp_rsa
        User            hoge

以下コマンドを叩く

scp 転送元ファイル myapp:/転送先ディレクトリ

転送できない場合以下サイト等を参照
http://gallardolp570.hatenablog.com/entry/2014/11/17/205325

AWS側:RDSにsqlをインポート

事前に接続先のエンドポイント、ユーザー名、パスワードを確認しておく。

mysql -h エンドポイント -u ユーザー名 -p DB名> dump.sql

進捗状況を確認したい場合はパイプで繋ぎpvコマンドをつけると良き
https://qiita.com/hiroq/items/efd8c3580c9c9457c869

反映されていればインポート成功です。お疲れ様でした。
見よう見まねの部分も多いため、何か誤り等あればご指摘いただけますと幸いです。

参考サイト

http://kayakuguri.github.io/blog/2015/09/10/mysql-postgres-import-export/

https://photo-tea.com/p/aws-ec2-to-rds-csv/

http://gallardolp570.hatenablog.com/entry/2014/11/17/205325

https://www.it-swarm-ja.tech/ja/mysql/mysqldump%E3%82%A8%E3%83%A9%E3%83%BC1045%E6%AD%A3%E3%81%97%E3%81%84%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E3%81%AA%E3%81%A9%E3%81%AB%E3%82%82%E3%81%8B%E3%81%8B%E3%82%8F%E3%82%89%E3%81%9A%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%81%8C%E6%8B%92%E5%90%A6%E3%81%95%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F/1043190719/

https://qiita.com/hiroq/items/efd8c3580c9c9457c869

https://blog.pinkumohikan.com/entry/mysqldump-disable-column-statistics

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

Railsデプロイ with Docker

参考サイト

Docker超入門 :きよとのプログラミング大学

参照

Rails環境構築 with Docker
こちらでDockerを使用したRailsの環境構築までを行っております。

Docker 用語とコマンド
Dockerについての用語やコマンドについてはこちらをご覧ください

環境

Mac OS
docker-compose 1.27.4
heroku/7.47.7
Mysql 8.0
ruby 2.7
rails 6.1.0

heroku実装

herokuログイン

terminal.
rails_on_docker % heroku login
heroku: Press any key to open up the browser to login or q to exit:  //Enterキーでログイン
rails_on_docker % heroku container:login

herokuアプリ作成

terminal.
rails_on_docker % heroku create <rails-koumori>  // < >内は任意の名前を指定

データベース追加・設定

データベースの追加

terminal.
rails_on_docker % heroku addons:create cleardb:ignite -a rails-koumori 

本番環境の接続先情報を環境変数に修正

database.yml
production:
  <<: *default
  database: <%= ENV['APP_DATABASE_DATABASE'] %>
  username: <%= ENV['APP_DATABASE_USERNAME'] %>
  password: <%= ENV['APP_DATABASE_PASSWORD'] %>
  host: <%= ENV['APP_DATABASE_HOST'] %>

接続先情報を環境変数に設定

terminal.
rails_on_docker % heroku config -a rails-koumori
CLEARDB_DATABASE_URL: mysql://ユーザー名:パスワード@ホスト名/データベース名?reconnect=true

rails_on_docker % heroku config:add APP_DATABASE='データベス名'-a rails-koumori
rails_on_docker % heroku config:add APP_USERNAME='ユーザー名' -a rails-koumori
rails_on_docker % heroku config:add APP_PASSWORD='パスワード' -a rails-koumori
rails_on_docker % heroku config:add APP_HOST='ホスト名' -a rails-koumori

rails_on_docker % heroku config -a rails-koumori  //登録の確認

本番環境用の記述

空のファイル作成

terminal.
rails_on_docker % touch start.sh  
start.sh
#!/bin/sh

# 本番環境
if [ "${RAILS_ENV}" ="production" ]
then
    bundle exec rails assets:precompile
fi

bundle exec rails s -p ${PORT:-3000} -b 0.0.0.0

Dockerfileの追記

Dockerfile
# ベースイメージの指定
FROM ruby:2.7

#追記
ENV RAILS_ENV=production  
.
.
.
.

#dockerにコピー
COPY start.sh /start.sh  
#実行権限を付与
RUN shmod 744 /start.sh  
#起動時に実行
CMD ["sh","/start.sh"]   

本番環境に適用

terminal.
rails_on_docker % heroku config:add RAILS_SERVE_STATIC_FILES="true" -a r
ails-koumori  //本番環境にassets:precompileを適用

rails view画面実装

コントローラー作成

terminal.
rails_on_docker % docker-compose exec web bundle exec rails g controller users 

トップページにusers/indexを指定

routes.rb
Rails.application.routes.draw do
  get '/',to: "users#index"
end

コントローラーの記述

users.controller.rb
class UsersController < ApplicationController
  def index
  end
end

index.html.erbファイルを作成し記述

src>app>views>users>index.html.erb
<h1>Hello world!</h1>

Dockerコンテナのプッシュとherokuへのリリース

Dockerイメージをビルドしコンテナにプッシュ

terminal.
rails_on_docker % heroku container:push web -a rails-koumori

herokuにコンテナをリリース

terminal.
rails_on_docker % heroku container:release web -a rials-koumori

herokuを起動しブラウザで確認

terminal.
rails_on_docker % heroku open -a rails-koumori

スクリーンショット 2021-01-10 18.13.47.png

まとめ

前回のRails構築から、今回でデプロイまで完了できました。

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