- 投稿日:2019-10-02T14:54:46+09:00
主要RDBMSの比較
ちょっと気になったのでまとめてみた。(SQLServerはちょっと内容薄め..ww)
主な特徴
- Oracle 高額なライセンスフィーだが高機能。RACは独自機能。
- SQLServer Microsoftのお膝元。
- MYSQL シンプルかつ軽量。高速にSQL文を処理することで定評。
- Postgre 拡張性重視。小さいサービスなどに使われることが多い。
プロセス管理
マルチプロセス:クライアントからの接続毎にプロセスを起動する。特定のプロセスに問題があっても影響範囲が少ない。
マルチスレッド:単一のプロセスで動き、クライアントからの接続毎にスレッドが作成。(スレッドの方がオーバーヘッド少ないと言われる。)
- Oracle マルチプロセス。必須プロセスと接続毎に起動するサーバープロセスで構成される。インスタンスとは独立してクライアントから接続を受けるリスナープロセスも存在。
- SQLServer マルチスレッド。
- MYSQL マルチスレッド。
- Postgre マルチプロセス。postmasterという管理者プロセスがあり、これが落ちるとおしまい。
メモリ管理
- Oracle プロセス共有のメモリとコネクション単位のメモリがあり、パラメーターで指定可能。
- SQLServer ローカルメモリのみ。インスタンスで最大と最小のメモリ数を指定するシンプルなやりかた。
- MYSQL 全体管理のグローバルバッファ、スレッド毎のバッファ、ログバッファに分割。グローバルバッファはテーブルやインデックスを管理。多数の接続があると競合を防ぐ目的で分割することもある。
- Postgre プロセス共有のメモリとSQL文実行のメモリ領域に分かれる。
ストレージ
通常、RDBMSはテーブル等情報を保存するデータファイル領域と差分データを保存するストレージを持つ。ストレージはクラッシュ時のリカバリに使われる。
- Oracle ストレージ管理用インスタンスを使うことができる。DBはそれが管理するディスクグループにファイルを保存。データファイルは初期サイズ等設定可能。ストレージはパスの指定が可能。
- SQLServer シンプルな構成で、少数ファイルから成り立つ。DB単位でデータファイルを作成。TXログは動的サイズかつ単一のファイル(他のRDBMSは固定の複数ファイルを循環利用する)
- MYSQL 複数のストレージエンジンを利用可。ストレージは任意のデータディレクトリに保存。トランザクションログとして、バイナリログとInnoDBがあり、前者はレプリケーション用のイベント、後者はクラッシュ時のロールフォーワードで使われる。
- Postgre ファイルシステムの階層構造をそのままDBに利用。単一のデータベースクラスタ上に保存する。レコードが更新前のデータはそのまま保持され、バキューム処理で領域の開放がなされる(MySQL/Oracleでは更新時には更新前データはロールバック・セグメントに移動される)
- 投稿日:2019-10-02T12:07:01+09:00
Railsアプリ〜デプロイへの道〜その②Ruby・MySQLインストール編【ConoHa VPS・CentOS・Capistrano3・Nginx・Unicorn】
Railsアプリケーションをデプロイした時の手順をまとめた記事の第2弾です。
今回はRubyおよびMySQLのインストール・設定の手順をまとめました。
前回同様こちらの記事がベースとなっています。
https://qiita.com/ryo2132/items/f62690f0b16ec11270fe〈前回記事〉
Railsアプリ〜デプロイへの道〜その①リモートサーバーへのSSH接続編開発環境
・Mac OS
・Rails 5.2.3
・Ruby 2.5.1
・ConoHa VPS
・CentOS 7.6
・Capistrano3
・Nginx
・UnicornRubyのインストール
ConoHa VPSにRubyをインストールしていきます。
1.Gitインストール
まずGitをインストールします。
$ sudo yum -y install git $ git --version # version名出力されればOK2.rbenvインストール
続いてrbenvをインストール。
rbenvはRubyのバージョン管理ツールです。$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenvruby-burildインストール
こちらもRubyをインストールするために必要になります。
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build3.rbenv設定
rbenvコマンドを使えるようにするためにbash_profileに以下の内容を追加します。
# PATHにrbenvコマンドを追加 $ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile # rbenvの初期化 $ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile # bashの再読込 $ source ~/.bash_profile # rbenvのバージョン確認 バージョンが出ればOK $ rbenv -vこれでRubyインストールの準備は完了です。
いよいよRubyをインストールします。4.Rubyインストール
ローカルで使用中のRubyバージョンを確認
サーバーにインストールする前に、開発で使用したRubyのバージョンを確認します。ローカル
$ ruby -vローカルと同じバージョンのRubyをインストール
サーバー
$ rbenv install 2.5.1 # globalで使用するrubyの設定 $ rbenv global 2.5.1 # rbenvの再起動? $ rbenv rehash # rubyのバージョン確認 $ ruby -v5.bundleインストール
Gemの管理ツールであるbundlerをインストールします。
bundlerのバージョンを開発したRailsアプリのGemfile.lockのものと合わせる必要があります。
バージョンが合っていないとデプロイ時にエラーが発生します。
参考:https://qiita.com/MotohiroSiobara/items/c0d343a160cffc2902efRailsアプリのGemfile.lockを確認
BUNDLED WITH 2.0.1サーバー
同じバージョンのbundlerをインストール。$ gem install bundle -v 2.0.16.関連パッケージインストール
必要なパッケージを諸々インストール
これらがないとデプロイ時にエラー起こします。<参考>
https://teratail.com/questions/13430
https://qiita.com/jaxx2104/items/2277cec77850f2d83c7aサーバー
#gcc-c++インストール $ sudo yum install gcc-c++ #node.jsインストール $ sudo yum install nodejs npm --enablerepo=epel #yarnインストール $ sudo npm install -g yarnMySQL
1.事前準備:MariaDBの削除
CentOS7系では標準でMariaDB(MySQL互換のDB)がインストールされている場合があるので、MySQLと競合しないようMariaDBを削除します。
参考:https://qiita.com/miqpim/items/5c519a9979d9b269d47e
サーバー
$ rpm -qa | grep maria # mariaDBが存在するか確認 $ sudo yum remove mariadb-libs # 本体削除 $ sudo rm -rf /var/lib/mysql # データ削除rmコマンドのオプションについてはこちらをご覧ください。
参考:https://eng-entrance.com/linux_command_rm2.MySQLのリポジトリを登録
Mysql公式のYumリポジトリをインストールします。
最新版はMysql公式で確認できます。サーバー
〈参考〉
https://qiita.com/rutko/items/56a33d1ecd70c0480202
https://qiita.com/nooboolean/items/7efc5c35b2e95637d8c1CentOSのバージョンの確認
$ cat /etc/redhat-releaseリポジトリのインストール
yumコマンドのlocalinstallオプションを使うことでリモートにあるrpmファイルをインストールすることができます。
rpmコマンドを使ってのインストールも可能ですが、依存関係とかを考慮したインストールまではしてくれないので、yumでインストールしましょう。
URLはリモートにあるrpmファイルをインストールするためのもので、公式サイトのリポジトリを、http://dev.mysql.com/get/
の後に付け加えて完成です。(お使いのOSに合わせたものを選んでください)詳しくはこちらの記事をご覧ください。
https://qiita.com/nooboolean/items/7efc5c35b2e95637d8c1$ sudo yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpmリポジトリの確認
/etc/yum.repos.d配下に、mysql-community-source.repoとmysql-community.repoというリポジトリが作成されてるはずです。
$ cd /etc/yum.repos.d/ $ ls mysql-community-source.repo mysql-community.repoこのリポジトリが作成されて入れば、リポジトリの追加の確認は完了
インストールできたか確認
$ yum repolist all | grep mysql mysql-connectors-community/x86_64 MySQL Connectors Community 有効: mysql-connectors-community-source MySQL Connectors Community - So 無効 mysql-tools-community/x86_64 MySQL Tools Community 有効: mysql-tools-community-source MySQL Tools Community - Source 無効 mysql55-community/x86_64 MySQL 5.5 Community Server 無効 mysql55-community-source MySQL 5.5 Community Server - So 無効 mysql56-community/x86_64 MySQL 5.6 Community Server 無効 <-ここ注目 mysql56-community-source MySQL 5.6 Community Server - So 無効 mysql57-community/x86_64 MySQL 5.7 Community Server 有効: <-ここ注目 mysql57-community-source MySQL 5.7 Community Server - So 無効(環境によっては有効がenabled、無効がdisabledと表示される) 上記の例では、5.7が有効、5.6が無効になっています。 このままインストールすると、有効になっている5.7がインストールされてしまうので、5.6をインストールするには有効無効の切り替えをします。 この切り替えをするためにはyumの設定変更用のyum-utilsパッケージが必要なので、インストールされていない場合はインストールします。
$ yum list installed | grep yum-utils #yum-utilsがインストールされているか確認 $ yum -y install yum-utils #入ってなければyum-utilsをインストールする $ yum-config-manager --disable mysql57-community #5.7を無効に設定 $ yum-config-manager --enable mysql56-community #5.6を有効に設定設定ができているか再度確認。
$ yum repolist all | grep mysql mysql-connectors-community/x86_64 MySQL Connectors Community 有効: mysql-connectors-community-source MySQL Connectors Community - Sou 無効 mysql-tools-community/x86_64 MySQL Tools Community 有効: mysql-tools-community-source MySQL Tools Community - Source 無効 mysql55-community/x86_64 MySQL 5.5 Community Server 無効 mysql55-community-source MySQL 5.5 Community Server - Sou 無効 mysql56-community/x86_64 MySQL 5.6 Community Server 有効: mysql56-community-source MySQL 5.6 Community Server - Sou 無効 mysql57-community/x86_64 MySQL 5.7 Community Server 無効 mysql57-community-source MySQL 5.7 Community Server - Sou 無効5.6が有効になっていればOK。
#バージョン確認 $ yum info mysql-community-server # インストール $ sudo yum install mysql-community-server mysql-develmysql-develは必要です。
ないとデプロイ時にエラーが出ます。
参考:https://teratail.com/questions/181707# 確認。バージョン出ればOK $ mysqld --versionMysqlの起動/自動起動設定
起動
$ sudo systemctl start mysqld.service #起動自動起動設定
$ sudo systemctl enable mysqld.service #自動起動 ON $ systemctl disble mysqld #自動起動 OFF自動起動になっているか確認
$ systemctl is-enabled mysqld mysqld.service is not a native service, redirecting to /sbin/chkconfig. Executing /sbin/chkconfig mysqld --level=5 enabledenabledになっていれば自動起動 ONに設定されています。
基本操作
$ sudo systemctl start mysqld.service #起動 $ systemctl stop mysqld #停止 $ systemctl status mysqld #ステータス確認 $ systemctl restart mysqld #再起動ちなみに、mysqldのdはデーモン (daemon)のdらしいです。
デーモンについてはこちらの記事をご覧ください。
https://wa3.i-3-i.info/word11000.html簡単に言うと「いつでも動けるようにスタンバイしてる常駐プログラム」だそうです。
3.パスワード、セキュリティ設定
続いてMySQLの設定をしていきます。
今回の山場です。
参考:https://weblabo.oscasierra.net/mysql-57-init-setup/ログインするために、まず自動生成された初期パスワードを確認します。
$ sudo cat /var/log/mysqld.log | grep password 2017-12-31T11:31:07.946947Z 1 [Note] A temporary password is generated for root@localhost: .7ogGO4yokDh # 「.7ogGO4yokDh」の部分が初期パスワードです確認できたらmysql_secure_installationで初期設定を行います。 以下対話形式で進むので適宜コマンド入力してください。
$ mysql_secure_installation Securing the MySQL server deployment. Enter password for user root: # ログファイルから取得した初期パスワードを入力します The existing password for the user account root has expired. Please set a new password. New password: # root ユーザの新規パスワードを入力します Re-enter new password: # 確認用にもう一度入力します The 'validate_password' plugin is installed on the server. The subsequent steps will run with the existing configuration of the plugin. Using existing password for root. Estimated strength of the password: 100 Change the password for root ? ((Press y|Y for Yes, any other key for No) : y By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? (Press y|Y for Yes, any other key for No) : y # 匿名ユーザーアカウントを削除 Success. Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y # ローカルホスト以外からアクセス可能な root アカウントを削除 Success. By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y # test データベースの削除 - Dropping test database... Success. - Removing privileges on test database... Success. Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y Success. All done!4.日本語化
日本語を扱うために文字コードを設定します。
日本語の文字コードはutf8に設定すると思いますが、utf8mb4は絵文字に対応した文字コードなので、僕はutf8ではなくutf8mb4で設定しています。現状、問題なく使えています。
〈参考〉
https://qiita.com/okamu_/items/5eb81688849fbe351350
https://qiita.com/jkr_2255/items/74fc79e764378b59355a$ sudo vi /etc/my.cnf #ファイル内の末尾に以下を追記 [mysqld] character-set-server=utf8mb4 [client] default-character-set=utf8mb4 #再起動 $ sudo systemctl restart mysqld.service #文字コード確認 $ mysql -u root -p $ show variables like "chara%";utf8mb4になってたらOK!
5.Time-zone設定
〈参考〉
https://dev.mysql.com/doc/refman/8.0/en/time-zone-support.html
https://agohack.com/mysql-change-timezone/現在のタイムゾーンを確認
$ show variables like '%time_zone%'; system_time_zone : UTC time_zone : SYSTEMタイムゾーンデータの確認
$ select * from mysql.time_zone;空の場合は、データをインポートする。
タイムゾーンのインポート
$ /usr/bin/mysql_tzinfo_to_sql /usr/share/zoneinfo > ~/timezone.sql # passwordを聞かれるのでmysqlのパスワードを入力 $ mysql -u root -p -Dmysql < ~/timezone.sql設定の追加
$ sudo vi /etc/my.cnf # 末尾に以下を追加 [mysqld] default-time-zone = 'Asia/Tokyo'再起動
$ sudo systemctl restart mysqld.service確認
mysql > show variables like '%time_zone%'; # 以下表示が出ればOK +------------------+------------+ | Variable_name | Value | +------------------+------------+ | system_time_zone | JST | | time_zone | Asia/Tokyo | +------------------+------------+ 2 rows in set (0.00 sec)MySQLの自動起動設定
サーバーの再起動の際にも、mysqlが自動的に起動するよう設定します。chkconfig mysqld onまとめ
以上、Railsアプリ〜デプロイへの道〜その②Ruby・MySQLインストール編でした。
次回はいよいよCapistrano3・Nginx・Unicornの設定です。(予定)
- 投稿日:2019-10-02T00:22:16+09:00
【初心者でも簡単!!】WordPressをダウンロード及びインストールする方法
1.事前知識
事前知識として、上記リンクの内容が必要です。
2.WordPressとは
WordPress
とは、オープンソースのブログソフトウェアである。- 言語は
PHP
で開発されており、データベース管理システムとしてMySQL
を利用している。- 単なるブログではなく
コンテンツ管理システム
としても利用されている。3.事前準備
MySQLコマンド# 1.rootユーザーでログイン $ mysql -uroot # 2.データベースの作成 mysql> create database wordpress default character set utf8; # 3.ユーザー作成&権限付与 mysql> GRANT ALL PRIVILEGES ON wordpress.* TO wordpress_user@localhost IDENTIFIED BY 'password'; # 4.権限の反映 mysql> FLUSH PRIVILEGES; # 5.データベース一覧表示 mysql> show databases; # 6.mysqlを選択 mysql> USE mysql; # 7.登録されているユーザを確認 mysql> SELECT user, host FROM user; # 8.データベース終了 mysql> exit;
Oracle VM VirtulaBox
を起動し、仮想マシン
を起動する。コマンドライン
を起動する。- 上記の
コマンド
を入力する。- 画像のように表示されれば成功です。
4.WordPressのダウンロード
Wordpressのダウンロードコマンド# 1.フォルダの移動 $ cd /var/www/html # 2.wordpress-4.4.2-ja.zipをダウンロード $ wget https://ja.wordpress.org/wordpress-4.4.2-ja.zip # 3.wordpress-4.4.2-ja.zipの展開 $ unzip wordpress-4.4.2-ja.zip # 4.wordpress-4.4.2-ja.zipの削除 $ rm wordpress-4.4.2-ja.zip
- 上記のコマンドを
コマンドライン
に入力。5.WordPressのインストール
URL例: http://localhost/wordpress/
- ブラウザを開き、
https://サーバのホスト名、又はIPアドレス/wordpress/
にアクセスする。(上記のURL参照)さあ、始めましょう!
をクリックする。データベース名
、ユーザー名
、パスワード
、データベースのホスト名
、テーブル接頭辞
を入力し、送信
をクリックする。
項目 内容 データベース名 wordpress ユーザー名 wordpress_user パスワード password データベースのホスト名 localhost テーブル接頭辞 wp_
4.サイトのタイトル
、ユーザー名
、パスワード
、メールアドレス
、 を入力し、検索エンジンでの表示
にチェックをつけ、WordPressをインストール
をクリックする。
※違う画面に推移した方は6.構成ファイルのセットアップ
へ
5.ログイン
をクリックする。
6.ユーザー名
とパスワード
を入力し、ログイン状態を保存する
にチェックをつけ、ログイン
をクリックする。
7.ダッシュボード
が表示されれば成功です。
6.構成ファイルのセットアップ(インストール出来なかった人)
- 赤枠の中身を
コピー
する。アプリケーション
からテキストエディター
を起動する。- コピーした内容を
貼り付け
し、保存
をクリックする。html
ディレクトリをクリックする。wordpress
ディレクトリをクリックする。- ファイル名を
wp-config.php
にし、保存
をクリックする。- ブラウザに戻り、
インストール実行
をクリックする。- 画像のようにWordPressの
インストール画面
が表示されれば成功です。8.まとめ
WordPressとは
WordPress
とは、オープンソースのブログソフトウェアである。- 言語は
PHP
で開発されており、データベース管理システムとしてMySQL
を利用している。- 単なるブログではなく
コンテンツ管理システム
としても利用されている。事前準備
Apacheのインストールコマンド# 1.rootユーザーでログイン $ mysql -uroot # 2.データベースの作成 mysql> create database wordpress default character set utf8; # 3.ユーザー作成&権限付与 mysql> GRANT ALL PRIVILEGES ON wordpress.* TO wordpress_user@localhost IDENTIFIED BY 'password'; # 4.権限の反映 mysql> FLUSH PRIVILEGES; # 5.データベース一覧表示 mysql> show databases; # 6.mysqlを選択 mysql> USE mysql; # 7.登録されているユーザを確認 mysql> SELECT user, host FROM user; # 8.データベース終了 mysql> exit;
Oracle VM VirtulaBox
を起動し、仮想マシン
を起動する。コマンドライン
を起動する。- 上記の
コマンド
を入力する。WordPressのダウンロード
Wordpressのダウンロードコマンド# 1.フォルダの移動 $ cd /var/www/html # 2.wordpress-4.4.2-ja.zipをダウンロード $ wget https://ja.wordpress.org/wordpress-4.4.2-ja.zip # 3.wordpress-4.4.2-ja.zipの展開 $ unzip wordpress-4.4.2-ja.zip # 4.wordpress-4.4.2-ja.zipの削除 $ rm wordpress-4.4.2-ja.zip
- 上記のコマンドを
コマンドライン
に入力。WordPressのインストール
URL例: http://localhost/wordpress/
- ブラウザを開き、
https://サーバのホスト名、又はIPアドレス/wordpress/
にアクセスする。(上記のURL参照)さあ、始めましょう!
をクリックする。データベース名
、ユーザー名
、パスワード
、データベースのホスト名
、テーブル接頭辞
を入力し、送信
をクリックする。
項目 内容 データベース名 wordpress ユーザー名 wordpress_user パスワード password データベースのホスト名 localhost テーブル接頭辞 wp_
サイトのタイトル
、ユーザー名
、パスワード
、メールアドレス
、 を入力し、検索エンジンでの表示
にチェックをつけ、WordPressをインストール
をクリックする。 ※違う画面に推移した方は6.構成ファイルのセットアップ
へログイン
をクリックする。ユーザー名
とパスワード
を入力し、ログイン状態を保存する
にチェックをつけ、ログイン
をクリックする。ダッシュボード
が表示されれば成功です。構成ファイルのセットアップ(インストール出来なかった人)
- 赤枠の中身を
コピー
する。アプリケーション
からテキストエディター
を起動する。- コピーした内容を
貼り付け
し、保存
をクリックする。html
ディレクトリをクリックする。wordpress
ディレクトリをクリックする。- ファイル名を
wp-config.php
にし、保存
をクリックする。- ブラウザに戻り、
インストール実行
をクリックする。- WordPressの
インストール画面
が表示されれば成功です。9.その他
WordPress起動時に画面が真っ白になってしまった方はこちら↓
WordPressのサイトが真っ白で表示されない場合の対処方法【初心者向け】10.関連