データベースの構築といえば MySQL が有名で、どのレンタルサーバ(ホスティングサービス)を見ても実際にデータベースとして採用され圧倒的な市場シェアを誇っています。
デザイナー/クリエイターにとっても親近感があり、Adobe系ツールで搭載され運用されていることから知らず知らずのうちに恩恵を得ている人も多いというか気づいてすらいない人も多そうです。
特に Dreamweaver では直接の接続機能が搭載されており、ユーティリティを利用して直感的に利用できるようになっています。
世界で MySQL が広く利用される背景となったのはオープンソース開発ということがあったのですが、2008年に Sun、さらに2010年には Oracle にと次々と買収され、その市場価値は高くなっている反面、商用データベースのベンダーである Oracle が権利を持っている現在、継続的な利用に不安を持ち始めている状況にもなっています。
そんな状況から、MySQL からフォークした MariaDB が現在注目を浴びています。
Google や Wikipedia もMariaDB に移行したことが既に発表されています。
CentOS7 では MariaDB が標準のデータベースとなっており、互換性があるといっても使い勝手が少し変わっていて正直驚きました。
パフォーマンス自体は MAriaDB の方が高いらしいです。レンタルサーバ(ホスティングサービス)ではまだまだ使えるところも少ないようです。
ということで、今後インターネットで主流となる RDBMS である MariaDB を試験運用します。
レポジトリ追加
/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
MariaDBインストール
yum install MariaDB-server MariaDB-client
設定ファイル変更
/etc/my.cnf
DBの文字コードを UTF-8 に指定
[mysqld]に下記1行を追加
character-set-server = utf8
自動起動設定
systemctl start mariadb
systemctl enable mariadb
DB初期設定
対話式で聞かれるが(英語)全てENTERキー
mysql_secure_installation
SQL が苦手なので、GUI版管理ツールである phpMyAdmin をインストールします。
mysql用なので動かないと思ったら、設定次第で動くようです。
マルチバイト拡張モジュールとIntl拡張モジュールをインストール
yum install php php-mbstring php-intl
RDBMSドライバ(MariaDB/PDO_MYSQL) インストール
yum install php-mysqlnd
systemctl restart php-fpm
remiリポジトリ内の必要なパッケージを依存関係で有効
/etc/yum.repos.d/remi.repo
includepkgs=phpMyAdmin php-phpmyadmin-sql-parser php-phpmyadmin-motranslator php-phpseclib php-google-recaptcha php-twig-extensions php-symfony-polyfill
remi 有効にしてインストール
yum-config-manager --enable remi
yum install --enablerepo=remi phpMyAdmin
/usr/share/phpMyAdmin/sql/create_tables.sql
次の2行のコメントを外す
GRANT SELECT, INSERT, DELETE, UPDATE, ALTER ON `phpmyadmin`.* TO
'pma'@localhost;
MariaDBにログイン
mysql --user=root --password
ユーザとパスワードを設定
source /usr/share/phpMyAdmin/sql/create_tables.sql
SET PASSWORD FOR pma@localhost = PASSWORD('⦅パスワード⦆');
FLUSH PRIVILEGES;
exit
設定ファイル初期設定
/etc/phpMyAdmin/config.inc.php
$cfg['Servers'][$i]['controluser'] = 'pma'; //コメント外す
$cfg['Servers'][$i]['controlpass'] = '⦅パスワード⦆'; //コメント外す
/* Storage database and tables */の一覧のコメントを全部外す
例)$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
root でのログイン禁止(特権を使える者がなくなりDBを新規に作れない)
$cfg['Servers'][$i]['AllowRoot'] = false;
サーバ表示設定
/etc/httpd/conf.d/phpMyAdmin.conf
Alias /phpMyAdmin /usr/share/phpMyAdmin //コメント外す
Alias /phpmyadmin /usr/share/phpMyAdmin //コメント外す
他端末からのアクセスを有効
Require ip 127.0.0.1
Require ip ::1
Require ip 192.168.xxx.xxx
Require local → Require all granted
パーミッションエラーが出る場合は、Deny all を適宜変更(セキュリティに注意)
表示場所は下記。
http://ドメイン/phpmyadmin
SyntaxHighlighter.all(); SyntaxHighlighter.config.bloggerMode = true;