haiju's 開発メモ

開発に必要な情報を自分用にメモ

Win7(x64)のVMのCentOS7.2(x64)にMariaDBを再インストール

CentOS7.2(x64)にMariaDBのバージョンを上げて

再インストールしてCakePHP2.xのテストで使える

ようにした。

[手順]

1. MariaDBのバージョンを確認して、5.5.xだったら削除。

# root at localhost.localdomain in ~ [12:14:30]
rpm -qa | grep -i "mariadb"
mariadb-5.5.50-1.el7_2.x86_64
mariadb-server-5.5.50-1.el7_2.x86_64
mariadb-libs-5.5.50-1.el7_2.x86_64

※5.5.xなので削除を実行。

mariadb自動起動設定している場合は、予め解除。

# root at localhost.localdomain in ~ [12:14:43]

yum remove mariadb mariadb-libs
読み込んだプラグイン:fastestmirror, langpacks
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ mariadb.x86_64 1:5.5.50-1.el7_2 を 削除
--> 依存性の処理をしています: mariadb(x86-64) = 1:5.5.50-1.el7_2 のパッケージ: 1:mariadb-server-5.5.50-1.el7_2.x86_64
---> パッケージ mariadb-libs.x86_64 1:5.5.50-1.el7_2 を 削除
--> 依存性の処理をしています: libmysqlclient.so.18()(64bit) のパッケージ: perl-DBD-MySQL-4.023-5.el7.x86_64
--> 依存性の処理をしています: libmysqlclient.so.18()(64bit) のパッケージ: 2:postfix-2.10.1-6.el7.x86_64
--> 依存性の処理をしています: libmysqlclient.so.18(libmysqlclient_18)(64bit) のパッケージ: perl-DBD-MySQL-4.023-5.el7.x86_64
--> 依存性の処理をしています: libmysqlclient.so.18(libmysqlclient_18)(64bit) のパッケージ: 2:postfix-2.10.1-6.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ mariadb-server.x86_64 1:5.5.50-1.el7_2 を 削除
---> パッケージ perl-DBD-MySQL.x86_64 0:4.023-5.el7 を 削除
---> パッケージ postfix.x86_64 2:2.10.1-6.el7 を 削除
--> 依存性の処理をしています: /usr/sbin/sendmail のパッケージ: redhat-lsb-core-4.1-27.el7.centos.1.x86_64
--> 新しい変更と依存性の解決を再開しています。
--> トランザクションの確認を実行しています。
---> パッケージ redhat-lsb-core.x86_64 0:4.1-27.el7.centos.1 を 削除
--> 依存性の処理をしています: redhat-lsb-core(x86-64) = 4.1-27.el7.centos.1 のパッケージ: redhat-lsb-languages-4.1-27.el7.centos.1.x86_64
--> 依存性の処理をしています: redhat-lsb-core(x86-64) = 4.1-27.el7.centos.1 のパッケージ: redhat-lsb-cxx-4.1-27.el7.centos.1.x86_64
--> 依存性の処理をしています: redhat-lsb-core(x86-64) = 4.1-27.el7.centos.1 のパッケージ: redhat-lsb-4.1-27.el7.centos.1.x86_64
--> 依存性の処理をしています: redhat-lsb-core(x86-64) = 4.1-27.el7.centos.1 のパッケージ: redhat-lsb-printing-4.1-27.el7.centos.1.x86_64
--> 依存性の処理をしています: redhat-lsb-core(x86-64) = 4.1-27.el7.centos.1 のパッケージ: redhat-lsb-desktop-4.1-27.el7.centos.1.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ redhat-lsb.x86_64 0:4.1-27.el7.centos.1 を 削除
--> 依存性の処理をしています: lsb >= 4.0 のパッケージ: google-chrome-stable-54.0.2840.100-1.x86_64
---> パッケージ redhat-lsb-cxx.x86_64 0:4.1-27.el7.centos.1 を 削除
---> パッケージ redhat-lsb-desktop.x86_64 0:4.1-27.el7.centos.1 を 削除
---> パッケージ redhat-lsb-languages.x86_64 0:4.1-27.el7.centos.1 を 削除
---> パッケージ redhat-lsb-printing.x86_64 0:4.1-27.el7.centos.1 を 削除
--> トランザクションの確認を実行しています。
---> パッケージ google-chrome-stable.x86_64 0:54.0.2840.100-1 を 削除
--> 依存性解決を終了しました。
base/7/x86_64 | 3.6 kB 00:00:00
base/7/x86_64/group_gz | 155 kB 00:00:00
base/7/x86_64/primary_db | 5.6 MB 00:00:00
extras/7/x86_64 | 3.4 kB 00:00:00
extras/7/x86_64/primary_db | 183 kB 00:00:00
google-chrome | 951 B 00:00:00
google-chrome/primary | 2.0 kB 00:00:00
remi-safe | 2.9 kB 00:00:00
remi-safe/primary_db | 897 kB 00:00:03
updates/7/x86_64 | 3.4 kB 00:00:00
updates/7/x86_64/primary_db | 1.3 MB 00:00:00

依存性を解決しました

======================================================================================================================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
======================================================================================================================================================================================
削除中:
mariadb x86_64 1:5.5.50-1.el7_2 @updates 49 M
mariadb-libs x86_64 1:5.5.50-1.el7_2 @updates 4.4 M
依存性関連での削除をします:
google-chrome-stable x86_64 54.0.2840.100-1 @/google-chrome-stable_current_x86_64 170 M
mariadb-server x86_64 1:5.5.50-1.el7_2 @updates 56 M
perl-DBD-MySQL x86_64 4.023-5.el7 @base 323 k
postfix x86_64 2:2.10.1-6.el7 @anaconda 12 M
redhat-lsb x86_64 4.1-27.el7.centos.1 @base 0.0
redhat-lsb-core x86_64 4.1-27.el7.centos.1 @base 45 k
redhat-lsb-cxx x86_64 4.1-27.el7.centos.1 @base 0.0
redhat-lsb-desktop x86_64 4.1-27.el7.centos.1 @base 0.0
redhat-lsb-languages x86_64 4.1-27.el7.centos.1 @base 814
redhat-lsb-printing x86_64 4.1-27.el7.centos.1 @base 0.0

トランザクションの要約
======================================================================================================================================================================================
削除 2 パッケージ (+10 個の依存関係のパッケージ)

インストール容量: 291 M
上記の処理を行います。よろしいでしょうか? [y/N]y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
削除中 : 1:mariadb-server-5.5.50-1.el7_2.x86_64 1/12
警告: /var/log/mariadb/mariadb.log は /var/log/mariadb/mariadb.log.rpmsave として保存されました。
警告: /etc/my.cnf.d/server.cnf は /etc/my.cnf.d/server.cnf.rpmsave として保存されました。
削除中 : google-chrome-stable-54.0.2840.100-1.x86_64 2/12
削除中 : redhat-lsb-4.1-27.el7.centos.1.x86_64 3/12
削除中 : redhat-lsb-cxx-4.1-27.el7.centos.1.x86_64 4/12
削除中 : redhat-lsb-desktop-4.1-27.el7.centos.1.x86_64 5/12
削除中 : redhat-lsb-languages-4.1-27.el7.centos.1.x86_64 6/12
削除中 : redhat-lsb-printing-4.1-27.el7.centos.1.x86_64 7/12
削除中 : redhat-lsb-core-4.1-27.el7.centos.1.x86_64 8/12
削除中 : 2:postfix-2.10.1-6.el7.x86_64 9/12
削除中 : 1:mariadb-5.5.50-1.el7_2.x86_64 10/12
削除中 : perl-DBD-MySQL-4.023-5.el7.x86_64 11/12
削除中 : 1:mariadb-libs-5.5.50-1.el7_2.x86_64 12/12
警告: /etc/my.cnf は /etc/my.cnf.rpmsave として保存されました。
検証中 : 1:mariadb-server-5.5.50-1.el7_2.x86_64 1/12
検証中 : google-chrome-stable-54.0.2840.100-1.x86_64 2/12
検証中 : redhat-lsb-desktop-4.1-27.el7.centos.1.x86_64 3/12
検証中 : redhat-lsb-4.1-27.el7.centos.1.x86_64 4/12
検証中 : 1:mariadb-libs-5.5.50-1.el7_2.x86_64 5/12
検証中 : redhat-lsb-languages-4.1-27.el7.centos.1.x86_64 6/12
検証中 : 2:postfix-2.10.1-6.el7.x86_64 7/12
検証中 : redhat-lsb-core-4.1-27.el7.centos.1.x86_64 8/12
検証中 : perl-DBD-MySQL-4.023-5.el7.x86_64 9/12
検証中 : 1:mariadb-5.5.50-1.el7_2.x86_64 10/12
検証中 : redhat-lsb-printing-4.1-27.el7.centos.1.x86_64 11/12
検証中 : redhat-lsb-cxx-4.1-27.el7.centos.1.x86_64 12/12

削除しました:
mariadb.x86_64 1:5.5.50-1.el7_2 mariadb-libs.x86_64 1:5.5.50-1.el7_2

依存性の削除をしました:
google-chrome-stable.x86_64 0:54.0.2840.100-1 mariadb-server.x86_64 1:5.5.50-1.el7_2 perl-DBD-MySQL.x86_64 0:4.023-5.el7
postfix.x86_64 2:2.10.1-6.el7 redhat-lsb.x86_64 0:4.1-27.el7.centos.1 redhat-lsb-core.x86_64 0:4.1-27.el7.centos.1
redhat-lsb-cxx.x86_64 0:4.1-27.el7.centos.1 redhat-lsb-desktop.x86_64 0:4.1-27.el7.centos.1 redhat-lsb-languages.x86_64 0:4.1-27.el7.centos.1
redhat-lsb-printing.x86_64 0:4.1-27.el7.centos.1

完了しました!

2. 再度、検索コマンドを試して何も表示されなければ削除完了。

# root at localhost.localdomain in ~ [12:16:39]
rpm -qa | grep -i "mariadb"  

3.  新しいパッケージをインストールするため、MariaDB yum リポジトリの追加。

 ※CentOS7用のリポジトリ(MariaDB stable 10.1)を追加。

# vim /etc/yum.repos.d/MariaDB.repo
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

4.  MariaDBインストール。

 ※--enablerepo=mariadb オプション付きで MariaDBをインストール。

 # root at localhost.localdomain in ~ [12:21:28]

yum -y install --enablerepo=mariadb MariaDB-common MariaDB-devel MariaDB-shared MariaDB-compat MariaDB-server MariaDB-client
読み込んだプラグイン:fastestmirror, langpacks
mariadb | 2.9 kB 00:00:00
mariadb/primary_db FAILED % [============================================================== ] 0.1 B/s | 17 kB 05:14:34 ETA
http://yum.mariadb.org/10.1/centos7-amd64/repodata/279f31f6ee542a2530c273a4c1ce9bab9abe7f50b9f63502d61b46548a3fe008-primary.sqlite.bz2: [Errno 12] Timeout on http://yum.mariadb.org/10.1/centos7-amd64/repodata/279f31f6ee542a2530c273a4c1ce9bab9abe7f50b9f63502d61b46548a3fe008-primary.sqlite.bz2: (28, 'Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds')
他のミラーを試します。
mariadb/primary_db FAILED % [=================================================================-] 0.3 B/s | 18 kB 00:01:00 ETA
http://yum.mariadb.org/10.1/centos7-amd64/repodata/279f31f6ee542a2530c273a4c1ce9bab9abe7f50b9f63502d61b46548a3fe008-primary.sqlite.bz2: [Errno 12] Timeout on http://yum.mariadb.org/10.1/centos7-amd64/repodata/279f31f6ee542a2530c273a4c1ce9bab9abe7f50b9f63502d61b46548a3fe008-primary.sqlite.bz2: (28, 'Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds')
他のミラーを試します。
mariadb/primary_db | 18 kB 00:00:00
Loading mirror speeds from cached hostfile
* base: ftp.riken.jp
* extras: ftp.riken.jp
* remi-safe: mirror.bebout.net
* updates: ftp.riken.jp
google-chrome 3/3
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ MariaDB-client.x86_64 0:10.1.20-1.el7.centos を インストール
---> パッケージ MariaDB-common.x86_64 0:10.1.20-1.el7.centos を インストール
---> パッケージ MariaDB-compat.x86_64 0:10.1.20-1.el7.centos を インストール
---> パッケージ MariaDB-devel.x86_64 0:10.1.20-1.el7.centos を インストール
---> パッケージ MariaDB-server.x86_64 0:10.1.20-1.el7.centos を インストール
--> 依存性の処理をしています: galera のパッケージ: MariaDB-server-10.1.20-1.el7.centos.x86_64
--> 依存性の処理をしています: libjemalloc.so.1()(64bit) のパッケージ: MariaDB-server-10.1.20-1.el7.centos.x86_64
---> パッケージ MariaDB-shared.x86_64 0:10.1.20-1.el7.centos を インストール
--> トランザクションの確認を実行しています。
---> パッケージ galera.x86_64 0:25.3.19-1.rhel7.el7.centos を インストール
--> 依存性の処理をしています: libboost_program_options.so.1.53.0()(64bit) のパッケージ: galera-25.3.19-1.rhel7.el7.centos.x86_64
---> パッケージ jemalloc.x86_64 0:3.6.0-1.el7 を インストール
--> トランザクションの確認を実行しています。
---> パッケージ boost-program-options.x86_64 0:1.53.0-26.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

======================================================================================================================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
======================================================================================================================================================================================
インストール中:
MariaDB-client x86_64 10.1.20-1.el7.centos mariadb 39 M
MariaDB-common x86_64 10.1.20-1.el7.centos mariadb 43 k
MariaDB-compat x86_64 10.1.20-1.el7.centos mariadb 1.4 M
MariaDB-devel x86_64 10.1.20-1.el7.centos mariadb 6.6 M
MariaDB-server x86_64 10.1.20-1.el7.centos mariadb 100 M
MariaDB-shared x86_64 10.1.20-1.el7.centos mariadb 1.3 M
依存性関連でのインストールをします:
boost-program-options x86_64 1.53.0-26.el7 base 156 k
galera x86_64 25.3.19-1.rhel7.el7.centos mariadb 8.0 M
jemalloc x86_64 3.6.0-1.el7 mariadb 104 k

トランザクションの要約
======================================================================================================================================================================================
インストール 6 パッケージ (+3 個の依存関係のパッケージ)

総ダウンロード容量: 157 M
インストール容量: 688 M
Downloading packages:
警告: /var/cache/yum/x86_64/7/mariadb/packages/MariaDB-10.1.20-centos7-x86_64-common.rpm: ヘッダー V4 DSA/SHA1 Signature、鍵 ID 1bb943db: NOKEY ] 0.0 B/s | 0 B --:--:-- ETA
MariaDB-10.1.20-centos7-x86_64-common.rpm の公開鍵がインストールされていません
(1/9): MariaDB-10.1.20-centos7-x86_64-common.rpm | 43 kB 00:00:00
(2/9): MariaDB-10.1.20-centos7-x86_64-compat.rpm | 1.4 MB 00:00:01
(3/9): MariaDB-10.1.20-centos7-x86_64-devel.rpm | 6.6 MB 00:00:03
(4/9): MariaDB-10.1.20-centos7-x86_64-client.rpm | 39 MB 00:00:45
(5/9): boost-program-options-1.53.0-26.el7.x86_64.rpm | 156 kB 00:00:00
(6/9): MariaDB-10.1.20-centos7-x86_64-shared.rpm | 1.3 MB 00:00:03
(7/9): galera-25.3.19-1.rhel7.el7.centos.x86_64.rpm | 8.0 MB 00:00:06
(8/9): jemalloc-3.6.0-1.el7.x86_64.rpm | 104 kB 00:00:01
(9/9): MariaDB-10.1.20-centos7-x86_64-server.rpm | 100 MB 00:01:31
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計 1.6 MB/s | 157 MB 00:01:38
https://yum.mariadb.org/RPM-GPG-KEY-MariaDB から鍵を取得中です。
Importing GPG key 0x1BB943DB:
Userid : "MariaDB Package Signing Key <package-signing-key@mariadb.org>"
Fingerprint: 1993 69e5 404b d5fc 7d2f e43b cbcb 082a 1bb9 43db
From : https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : MariaDB-common-10.1.20-1.el7.centos.x86_64 1/9
インストール中 : MariaDB-client-10.1.20-1.el7.centos.x86_64 2/9
インストール中 : boost-program-options-1.53.0-26.el7.x86_64 3/9
インストール中 : galera-25.3.19-1.rhel7.el7.centos.x86_64 4/9
インストール中 : jemalloc-3.6.0-1.el7.x86_64 5/9
インストール中 : MariaDB-server-10.1.20-1.el7.centos.x86_64 6/9
インストール中 : MariaDB-shared-10.1.20-1.el7.centos.x86_64 7/9
インストール中 : MariaDB-devel-10.1.20-1.el7.centos.x86_64 8/9
インストール中 : MariaDB-compat-10.1.20-1.el7.centos.x86_64 9/9
検証中 : MariaDB-shared-10.1.20-1.el7.centos.x86_64 1/9
検証中 : MariaDB-server-10.1.20-1.el7.centos.x86_64 2/9
検証中 : jemalloc-3.6.0-1.el7.x86_64 3/9
検証中 : MariaDB-common-10.1.20-1.el7.centos.x86_64 4/9
検証中 : galera-25.3.19-1.rhel7.el7.centos.x86_64 5/9
検証中 : boost-program-options-1.53.0-26.el7.x86_64 6/9
検証中 : MariaDB-devel-10.1.20-1.el7.centos.x86_64 7/9
検証中 : MariaDB-compat-10.1.20-1.el7.centos.x86_64 8/9
検証中 : MariaDB-client-10.1.20-1.el7.centos.x86_64 9/9

インストール:
MariaDB-client.x86_64 0:10.1.20-1.el7.centos MariaDB-common.x86_64 0:10.1.20-1.el7.centos MariaDB-compat.x86_64 0:10.1.20-1.el7.centos MariaDB-devel.x86_64 0:10.1.20-1.el7.centos
MariaDB-server.x86_64 0:10.1.20-1.el7.centos MariaDB-shared.x86_64 0:10.1.20-1.el7.centos

依存性関連をインストールしました:
boost-program-options.x86_64 0:1.53.0-26.el7 galera.x86_64 0:25.3.19-1.rhel7.el7.centos jemalloc.x86_64 0:3.6.0-1.el7

完了しました!

 ※上記コマンドでインストールを完了したら、以下コマンドでインストール

 されたバージョンを検索して確認。

# rpm -qa | grep "MariaDB"

# root at localhost.localdomain in ~ [12:29:28]
rpm -qa | grep "MariaDB"
MariaDB-client-10.1.20-1.el7.centos.x86_64
MariaDB-devel-10.1.20-1.el7.centos.x86_64
MariaDB-shared-10.1.20-1.el7.centos.x86_64
MariaDB-server-10.1.20-1.el7.centos.x86_64
MariaDB-common-10.1.20-1.el7.centos.x86_64
MariaDB-compat-10.1.20-1.el7.centos.x86_64

5. MariaDBの初期設定。

 デフォルト設定ファイルは、/etc/my.cnf だが、中身は空っぽで、

 /etc/my.cnf.d/ 配下の設定ファイルをincludeするようになっている。

 ※/etc/my.cnf を確認。

# root at localhost.localdomain in ~ [12:36:27]
→ cat /etc/my.cnf
#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

※/etc/my.cnf.d/ を確認。

# root at localhost.localdomain in ~ [12:32:40]
→ ls -al /etc/my.cnf.d
合計 40
drwxr-xr-x. 2 root root 4096 1月 11 12:29 .
drwxr-xr-x. 142 root root 8192 1月 11 12:32 ..
-rw-r--r-- 1 root root 295 12月 15 04:26 client.cnf
-rw-r--r-- 1 root root 763 12月 15 04:26 enable_encryption.preset
-rw-r--r-- 1 root root 232 12月 15 04:26 mysql-clients.cnf
-rw-r--r-- 1 root root 1080 12月 15 04:26 server.cnf
-rw-r--r-- 1 root root 770 11月 17 10:36 server.cnf.rpmsave
-rw-r--r-- 1 root root 285 12月 15 04:26 tokudb.cnf

※/etc/my.cnf.d/ ディレクトリ内にあるファイルの中身も同じく、ほとんど設定

 されていないので、/usr/share/mysql/ から設定ファイルをコピー。

※ここでは、my-small.cnf を流用して、MariaDBを最小構成で設定。

# root at localhost.localdomain in ~ [12:37:20]
→ ls -al /usr/share/mysql/my-*.cnf
-rw-r--r-- 1 root root 4920 12月 15 08:51 /usr/share/mysql/my-huge.cnf
-rw-r--r-- 1 root root 20438 12月 15 08:51 /usr/share/mysql/my-innodb-heavy-4G.cnf
-rw-r--r-- 1 root root 4907 12月 15 08:51 /usr/share/mysql/my-large.cnf
-rw-r--r-- 1 root root 4920 12月 15 08:51 /usr/share/mysql/my-medium.cnf
-rw-r--r-- 1 root root 2846 12月 15 08:51 /usr/share/mysql/my-small.cnf

# root at localhost.localdomain in ~ [12:41:16]
→ cp -p /usr/share/mysql/my-small.cnf /etc/my.cnf.d/server.cnf

※文字化けしないように少なくとも [client] と [mysqld] に UTF-8 を設定。

# root at localhost.localdomain in ~ [12:47:31]
vim /etc/my.cnf.d/server.cnf

[client]以下に下記を追加
default-character-set = utf8

[mysqld]以下に下記を追加
character-set-server = utf8

[mysqldump]以下に下記を追加
default-character-set=utf8

[mysql]以下に下記を追加
default-character-set=utf8

MariaDB をインストールするとデフォルトで /var/lib/mysql が作成

 されるが、もしディレクトリが存在していなかったら作成。

※存在するので、下記の通り。

# root at localhost.localdomain in ~ [12:50:50]

→ ls -al /var/lib/mysql
合計 28712
drwxr-xr-x 6 mysql mysql 4096 1月 11 12:29 .
drwxr-xr-x. 61 root root 4096 1月 11 10:22 ..
-rw-rw---- 1 mysql mysql 16384 1月 11 09:50 aria_log.00000001
-rw-rw---- 1 mysql mysql 52 1月 11 09:50 aria_log_control
-rw-rw---- 1 mysql mysql 5242880 1月 11 09:50 ib_logfile0
-rw-rw---- 1 mysql mysql 5242880 11月 14 17:11 ib_logfile1
-rw-rw---- 1 mysql mysql 18874368 1月 11 09:50 ibdata1
drwx------ 2 mysql mysql 4096 11月 18 19:27 live_spms_cake2
-rw-r----- 1 mysql mysql 0 1月 11 12:29 localhost.localdomain.err
drwx------ 2 mysql mysql 4096 11月 14 17:11 mysql
drwx------ 2 mysql mysql 4096 11月 14 17:11 performance_schema
drwx------ 2 mysql mysql 6 11月 14 18:16 test

6. mysql_secure_installation を用いたセキュリティ設定。

 初期状態だと テスト用のデータベース、 アノニマスユーザ (匿名の

 ログインユーザ) 等、不要なものが入っているため、キレイな状態に

 しておく。

6-1) MariaDB サービス有効化、及びサービス開始。

  [MariaDB サービス登録・起動]

# root at localhost.localdomain in ~ [12:51:20]
→ systemctl enable mariadb.service

# root at localhost.localdomain in ~ [12:54:36]
→ systemctl start mariadb.service

# root at localhost.localdomain in ~ [12:55:01]
→ ps -ef | grep "mysql" | grep -v "grep"
mysql 9423 1 1 12:54 ? 00:00:00 /usr/sbin/mysqld

6-2) MariaDB セキュリティ設定

 前回の設定が残っていたため省略。

7. CakePHP 2.xのテスト環境用のユーザを再作成。

7-1) rootでログインしてユーザcake2の状態を確認。

# user at localhost.localdomain in ~ [15:18:53]

mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 5
Server version: 10.1.20-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> SELECT user,host FROM mysql.user;
+-------+-----------+
| user | host       |
+-------+-----------+
| cake2 | %        | 
| root | 127.0.0.1 |
| root | ::1          |
| root | localhost |
+-------+-----------+
4 rows in set (0.00 sec)

7-2) ユーザcake2がlocalhostを参照してないので削除。

MariaDB [(none)]> DROP USER cake2;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> SELECT user,host FROM mysql.user;
+------+-----------+
| user | host   |
+------+-----------+
| root | 127.0.0.1 |
| root | ::1    |
| root | localhost |
+------+-----------+
3 rows in set (0.00 sec)

7-3) 改めて新規ユーザcake2の追加。

(ex)新規ユーザの追加
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO username@localhost IDENTIFIED BY "PASSWORD" WITH GRANT OPTION;

※上記例を参考に追加。

MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO cake2@localhost IDENTIFIED BY "cake2" WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> SELECT user,host FROM mysql.user;
+-------+-----------+
| user | host   |
+-------+-----------+
| root | 127.0.0.1 |
| root | ::1    |
| cake2 | localhost |
| root | localhost |
+-------+-----------+
4 rows in set (0.00 sec)

7-4) 作成したユーザでログインし直す。

MariaDB [(none)]> quit
Bye

# user at localhost.localdomain in ~ [15:32:46]
mysql -u cake2 -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 6
Server version: 10.1.20-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;

 [参考サイト]

server.etutsplus.com

okdtsk.hateblo.jp

www.vultr.com

tikuflower.blogspot.jp

Windowsで編集したソースファイルに含まれた改行コード(^M)をVimで削除する方法

プロジェクトのソースコードはgit管理されているが、

開発プラットフォームは必ずしもLinuxが想定されている

とは限らないため、Windowsプラットフォームで編集

されたソースファイルをLinuxVim等で編集しようとする

と、文末の改行コードが「^M」と表示されてしまう。

この改行コードを削除してしまう方法についてメモ。

[手順]

1. LinuxVimで対象のソースファイルを開く。

(ex) vim test.php 

2.  Vimのコマンドモードで以下を入力。

 :%s/^M//g

 ※「^M」はCtrl+v+m で入力できる。

3. 1のソースファイルを開き直して確認し、表示されなければOK。

[参考サイト]

qiita.com

www.koikikukan.com

ApacheがNginxに変わったらLNMPじゃなくてLEMPというらしい

Linuxタブレット化しているVAIO Duo11のHostのManjaroか

systemd-nspawnのVMFedora 25 Serverで運用するなら

WebサーバーはApacheよりNginxを試してみたいなーと、

いろいろ調べていたら、A(pache) -> N(ginx)くらいの認識

だったけど、実際、LEMP Stackになると知った。

Nじゃないんだー?Eって何?と思ったので自分用に調べて

メモしてみた。

Nginx の読み方はEngine-XだからLEMPらしい(ΦωΦ)!!!

[参考サイト]

lemp.io

firebearstudio.com

www.linode.com

www.2daygeek.com

m-jorgensen.dk

www.2daygeek.com

www.unixmen.com

www.linuxbabe.com

www.tecmint.com

websetnet.com

xmodulo.com

www.techbrown.com

www.osboxes.org

Win7(x64)のVMのCentOS7.2(x64)にMariaDBを再インストール【準備編】

CakePHP 2.4.xでFixtureを作成する時にMariaDB5.5.xを使うとエラー

になったので長らく放置していたけど、そろそろバージョンを

上げて、確認してみようと思ったので、自分用メモ。

[参考サイト]

server.etutsplus.com

okdtsk.hateblo.jp

www.howtoforge.com

www.atlantic.net

www.digitalocean.com

vexxhost.com

www.tecmint.com

www.cyberciti.biz

How To Install The LAMP Stack On CentOS 7 – Liberian Geek

landoflinux.com

Install LAMP Server (Apache, MariaDB, PHP) On CentOS/RHEL/Scientific Linux 7 | Unixmen

devops.profitbricks.com

www.ostechnix.com


Bitbucketにコードをバックアップする場合

gitもhgもsshでバックアップする場合は、一旦、bitbucket.orgにログインして

対象のローカルリポジトリと同じ名前のリポジトリをリモートで作成後、作業

する必要がある。

Nim の GUIライブラリ nimxをインストールしてサンプルコードを動かしてみる(3)

この記事はNim Advent Calendar 2016 の25日目の記事です。

こちらの環境はManjaro Fluxbox 15.12のNim開発環境を

0.15.2 -> 0.15.3 にアップデートして再検証を行います。

[手順]

1. ローカルの開発環境のバージョンを上げる。

 ローカルにインストールしたNimディレクトリに移動し

 以下を実行。

% cd Nim

% git pull

% ./koch boot -d:release

2. バージョンを確認。

% nim
Nim Compiler Version 0.15.3 (2016-12-27) [Linux: amd64]
Copyright (c) 2006-2016 by Andreas Rumpf

3. nimxインストール。

% nimble install nimx
Downloading https://github.com/yglukhov/nimx using git
Verifying dependencies for nimx v0.1
Info: Dependency on sdl2 (any version) already satisfied
Verifying dependencies for sdl2 v1.1
Info: Dependency on opengl (>= 1.1) already satisfied
Verifying dependencies for opengl v1.1.0
Info: Dependency on x11 (any version) already satisfied
Verifying dependencies for x11 v1.0
Info: Dependency on nimsl (>= 0.2 & < 0.3) already satisfied
Verifying dependencies for nimsl v0.2
Installing jnim (any version)
Downloading https://github.com/vegansk/jnim using git
Verifying dependencies for jnim v0.2.5
Installing nimfp (>= 0.1.0)
Downloading https://github.com/vegansk/nimfp using git
Verifying dependencies for nimfp v0.3.5
Installing nimboost (>= 0.3.2)
Downloading https://github.com/vegansk/nimboost using git
Verifying dependencies for nimboost v0.3.4
Installing nimboost v0.3.4
Success: nimboost installed successfully.
Installing classy (>= 0.0.1)
Downloading https://github.com/nigredo-tori/classy using git
Verifying dependencies for classy v0.0.1
Installing classy v0.0.1
Success: classy installed successfully.
Installing nimfp v0.3.5
Success: nimfp installed successfully.
Installing jnim v0.2.5
Success: jnim installed successfully.
Installing nake (any version)
Downloading https://github.com/fowlmouth/nake using git
Verifying dependencies for nake v1.8
Installing nake v1.8
Building nake/nake using c backend
Success: nake installed successfully.
Installing closure_compiler (>= 0.2 & < 0.3)
Downloading https://github.com/yglukhov/closure_compiler.git using git
Verifying dependencies for closure_compiler v0.2
Installing closure_compiler v0.2
Building closure_compiler/closure_compiler using c backend
Success: closure_compiler installed successfully.
Installing plists (any version)
Downloading https://github.com/yglukhov/plists using git
Verifying dependencies for plists v0.1.0
Installing plists v0.1.0
Success: plists installed successfully.
Installing variant (>= 0.2 & < 0.3)
Downloading https://github.com/yglukhov/variant.git using git
Verifying dependencies for variant v0.2.1
Installing variant v0.2.1
Success: variant installed successfully.
Installing jester (any version)
Downloading https://github.com/dom96/jester using git
Verifying dependencies for jester v0.1.1
Installing jester v0.1.1
Success: jester installed successfully.
Installing https://github.com/yglukhov/ttf (>= 0.2.3 & < 0.3)
Downloading https://github.com/yglukhov/ttf using git
Verifying dependencies for ttf v0.2.3
Installing nimBMP (any version)
Downloading https://github.com/jangko/nimBMP using git
Verifying dependencies for nimBMP v0.1.2
Installing nimBMP v0.1.2
Success: nimBMP installed successfully.
Installing ttf v0.2.3
Success: ttf installed successfully.
Installing https://github.com/yglukhov/async_http_request (any version)
Downloading https://github.com/yglukhov/async_http_request using git
Verifying dependencies for async_http_request v0.1.0
Installing jsbind (any version)
Downloading https://github.com/yglukhov/jsbind using git
Verifying dependencies for jsbind v0.1
Installing jsbind v0.1
Success: jsbind installed successfully.
Installing async_http_request v0.1.0
Success: async_http_request installed successfully.
Installing jsbind (any version)
Downloading https://github.com/yglukhov/jsbind using git
Verifying dependencies for jsbind v0.1
Installing jsbind v0.1
Prompt: jsbind-0.1 already exists. Overwrite? [y/N]
Answer: y
Success: jsbind installed successfully.
Installing nimx v0.1
Success: nimx installed successfully.

4. Hello, world!をWindowに表示するサンプルコードを書く。

# File: main.nim
import nimx.window
import nimx.text_field
import nimx.system_logger # Required because of Nim bug (#4433)
 
proc startApp() =
      # First create a window. Window is the root of view hierarchy.
     var wnd = newWindow(newRect(40, 40, 800, 600))
 
      # Create a static text field and add it to view hierarchy
      let label = newLabel(newRect(20, 20, 150, 20))
      label.text = "Hello, world!"
      wnd.addSubview(label)
 
# Run the app
runApplication:
        startApp()

5. ビルドして動作確認。

% nim c -r --noMain --threads:on main.nim
Hint: used config file '/home/haiju/Nim/config/nim.cfg' [Conf]
Hint: system [Processing]
Hint: main [Processing]
Hint: window [Processing]
Hint: abstract_window [Processing]
Hint: view [Processing]
Hint: typetraits [Processing]
Hint: tables [Processing]
Hint: hashes [Processing]
Hint: strutils [Processing]
Hint: parseutils [Processing]
Hint: math [Processing]
Hint: algorithm [Processing]
Hint: etcpriv [Processing]
Hint: sequtils [Processing]
Hint: types [Processing]
Hint: context [Processing]
Hint: opengl [Processing]
Hint: macros [Processing]
Hint: x [Processing]
Hint: xlib [Processing]
Hint: xutil [Processing]
Hint: keysym [Processing]
Hint: dynlib [Processing]
Hint: system_logger [Processing]
Hint: logging [Processing]
Hint: times [Processing]
Hint: os [Processing]
Hint: posix [Processing]
Hint: matrixes [Processing]
Hint: font [Processing]
Hint: unicode [Processing]
Hint: streams [Processing]
Hint: resource [Processing]
Hint: json [Processing]
Hint: lexbase [Processing]
Hint: async_http_request [Processing]
Hint: asyncdispatch [Processing]
Hint: oids [Processing]
Hint: endians [Processing]
Hint: heapqueue [Processing]
Hint: nativesockets [Processing]
Hint: net [Processing]
Hint: sets [Processing]
Hint: deques [Processing]
Hint: selectors [Processing]
Hint: epoll [Processing]
Hint: httpclient [Processing]
Hint: uri [Processing]
Hint: strtabs [Processing]
Hint: base64 [Processing]
Hint: mimetypes [Processing]
Hint: random [Processing]
Hint: httpcore [Processing]
Hint: asyncnet [Processing]
Hint: threadpool [Processing]
Hint: cpuinfo [Processing]
Hint: linux [Processing]
Hint: cpuload [Processing]
Hint: pathutils [Processing]
Hint: variant [Processing]
Hint: sdl2 [Processing]
Hint: unsigned [Processing]
Hint: timer [Processing]
Hint: mini_profiler [Processing]
Hint: sdl_perform_on_main_thread [Processing]
Hint: font_data [Processing]
Hint: stb_ttf_glyph_provider [Processing]
Hint: rect_packer [Processing]
Hint: ttf [Processing]
Hint: write_image_impl [Processing]
Hint: edtaa3func [Processing]
Hint: simple_table [Processing]
Hint: portable_gl [Processing]
Hint: image [Processing]
Hint: resource_cache [Processing]
Hint: oswalkdir [Processing]
Hint: load_image_impl [Processing]
Hint: worker_queue [Processing]
Hint: nimsl [Processing]
Hint: glsl_codegen [Processing]
Hint: composition [Processing]
Hint: helper_macros [Processing]
Hint: text_drawing [Processing]
Hint: animation [Processing]
Hint: animation_runner [Processing]
Hint: property_visitor [Processing]
Hint: class_registry [Processing]
Hint: serializers [Processing]
Hint: notification_center [Processing]
Hint: sdl_window [Processing]
Hint: event [Processing]
Hint: keyboard [Processing]
Hint: app [Processing]
Hint: window_event_handling [Processing]
Hint: view_event_handling [Processing]
Hint: view_event_handling_new [Processing]
Hint: linkage_details [Processing]
Hint: screen [Processing]
Hint: sdl_vk_map [Processing]
Hint: text_field [Processing]
Hint: control [Processing]
Hint: unistring [Processing]
Hint: table_view_cell [Processing]
Hint: pasteboard [Processing]
Hint: abstract_pasteboard [Processing]
Hint: key_commands [Processing]
Hint: formatted_text [Processing]
Hint: lower_bound [Processing]
Hint: scroll_view [Processing]
Hint: clip_view [Processing]
Hint: scroll_bar [Processing]
Hint: slider [Processing]
CC: main
CC: stdlib_system
CC: stdlib_sharedlist
CC: stdlib_locks
CC: nimx_window
CC: nimx_abstract_window
CC: nimx_view
CC: stdlib_typetraits
CC: stdlib_tables
CC: stdlib_sequtils
CC: stdlib_hashes
CC: stdlib_math
CC: stdlib_strutils
CC: stdlib_etcpriv
CC: stdlib_parseutils
CC: stdlib_algorithm
CC: nimx_types
CC: nimx_context
CC: opengl_opengl
CC: stdlib_macros
CC: x11_x
CC: x11_xlib
CC: x11_xutil
CC: x11_keysym
CC: stdlib_dynlib
CC: nimx_system_logger
CC: stdlib_logging
CC: stdlib_times
CC: stdlib_os
CC: stdlib_posix
CC: nimx_matrixes
CC: nimx_font
CC: stdlib_unicode
CC: stdlib_streams
CC: nimx_resource
CC: stdlib_json
CC: stdlib_lexbase
CC: async_http_request_async_http_request
CC: stdlib_asyncdispatch
CC: stdlib_oids
CC: stdlib_endians
CC: stdlib_heapqueue
CC: stdlib_nativesockets
CC: stdlib_net
CC: stdlib_sets
CC: stdlib_deques
CC: stdlib_selectors
CC: stdlib_epoll
CC: stdlib_httpclient
CC: stdlib_uri
CC: stdlib_strtabs
CC: stdlib_base64
CC: stdlib_mimetypes
CC: stdlib_random
CC: stdlib_httpcore
CC: stdlib_asyncnet
CC: stdlib_threadpool
CC: stdlib_cpuinfo
CC: stdlib_linux
CC: stdlib_cpuload
CC: nimx_pathutils
CC: variant_variant
CC: sdl2_sdl2
CC: stdlib_unsigned
CC: nimx_timer
CC: nimx_mini_profiler
CC: nimx_sdl_perform_on_main_thread
CC: nimx_font_data
CC: nimx_stb_ttf_glyph_provider
CC: nimx_rect_packer
CC: ttf_ttf
CC: nimx_write_image_impl
CC: ttf_edtaa3func
CC: nimx_simple_table
CC: nimx_portable_gl
CC: nimx_image
CC: nimx_resource_cache
CC: stdlib_oswalkdir
CC: nimx_load_image_impl
CC: nimx_worker_queue
CC: nimsl_nimsl
CC: nimsl_glsl_codegen
CC: nimx_composition
CC: nimx_helper_macros
CC: nimx_text_drawing
CC: nimx_animation
CC: nimx_animation_runner
CC: nimx_property_visitor
CC: nimx_class_registry
CC: nimx_serializers
CC: nimx_notification_center
CC: nimx_sdl_window
CC: nimx_event
CC: nimx_keyboard
CC: nimx_app
CC: nimx_window_event_handling
CC: nimx_view_event_handling
CC: nimx_view_event_handling_new
CC: nimx_linkage_details
CC: nimx_screen
CC: nimx_sdl_vk_map
CC: nimx_text_field
CC: nimx_control
CC: nimx_unistring
CC: nimx_table_view_cell
CC: nimx_pasteboard
CC: nimx_abstract_pasteboard
CC: nimx_key_commands
CC: nimx_formatted_text
CC: nimx_lower_bound
CC: nimx_scroll_view
CC: nimx_clip_view
CC: nimx_scroll_bar
CC: nimx_slider
Hint: [Link]
Hint: operation successful (82751 lines compiled; 7.564 sec total; 194.234MiB; Debug Build) [SuccessX]
Hint: /home/haiju/workspace/test-nimx/main [Exec]

6. 表示ができた!

f:id:haiju:20161227081504j:plain

[参考サイト]

How I Start.

github.com

CrystalのパッケージマネージャShardsの使い方とWebフレームワークのKemalを試してみるテスト

この記事はCrystal Advent Calendar 2016 の23日目の記事です。

CrystalのコードはRubyに似ているので、階乗とかフィボナッチ数

のプログラムを書いたりしたことはあったけど、パッケージマネージャ

のShardsを使ったアプリ開発はやったことなかったな。

と思って、その使い方の練習とフルスタックじゃないWebフレームワーク

を試してみたいなということで、Crystalの軽量フレームワークといえば

Kemalじゃね?ってことで、Hello World!を出力する簡単なコードを

書いて実行してみることにする。

※自分の環境

systemにanyenv + crenvで0.20.0をインストール。

[手順]

1. プロジェクトを作成しルートディレクトリへ移動。

% crystal init app example
create example/.gitignore
create example/LICENSE
create example/README.md
create example/.travis.yml
create example/shard.yml
create example/src/example.cr
create example/src/example/version.cr
create example/spec/spec_helper.cr
create example/spec/example_spec.cr
Initialized empty Git repository in /home/haiju/workspace/example/.git/

% cd example

2. ルートディレクトリ直下のshard.ymlを修正してKemalを

 設定。

% vim shard.yml
 
■kemalをインストールできるように修正。
 
name: example
version: 0.1.0
 
authors:
    - haiju <mail-address>
 
    targets:
       example:
           main: src/example.cr

    dependencies: --- 追加
        kemal: --- 追加
            github: kemalcr/kemal --- 追加
            branch: master --- 追加

 

crystal: 0.20.0 --- defaultは0.19.4だったがsystemの最新を指定してみる

license: MIT

3. Shardsを使って依存パッケージや依存ライブラリをインストール。

% shards install
Updating https://github.com/kemalcr/kemal.git
Updating https://github.com/luislavena/radix.git
Updating https://github.com/jeromegn/kilt.git
Updating https://github.com/RX14/multipart.cr.git
Installing kemal (master)
Installing radix (0.3.5)
Installing kilt (0.3.3)
Installing multipart (0.1.1)

4. 実際にコードを書いてみる。

 というより、むしろ、Kemalのサイトにあるサンプルコードを

 写経してみる。

% vim src/example.cr

require "kemal"

get "/" do

    "Hello, World!"

end

Kemal run

5. 4のコードをビルド。

% crystal build --release src/example.cr

何かエラーが発生している?Kemalがうまく読み込めてないらしい。

Error in src/example.cr:3: while requiring "kemal": can't find file 'kemal' relative to '/home/haiju/workspace/example/src'

require "kemal"

6. crystal env を確認してみる。

% crystal env
CRYSTAL_CACHE_DIR="/home/haiju/.cache/crystal"
CRYSTAL_PATH="/home/haiju/.anyenv/envs/crenv/versions/0.20.0/src:libs"
CRYSTAL_VERSION="0.20.0"

これから先の調べ方がよくわからないので作業中断。

もう少し調べて補足するつもりだけど、他の気になる少し古めのフレームワーク

も全部、相対パスだと読み込めなくて同じエラーだった。

ということは根本的に調べ方がまずいのかもしれない。

もう少し公式ドキュメント周りから攻めて行ってみよう。

という訳で初心者がゴソゴソしてみた現場からは以上になります。

[参考サイト]

github.com

kemalcr.com

github.com

Requiring files · GitBook

github.com

github.com

isucon5q-crystal を公開するまでのメモ · GitHub