IMPOV::In My Point Of View

仕事、SEO、ウェブマーケティング、時事問題、健康、生き方などなど、書きたいことを勝手に書き倒しているブログです。とどのつまり「便所の落書き」

MySQLとphpMyAdmin(初心者がさくらのVPSを立ち上げるまで - その7)

MySQLのインストール

MySQLのインストールも、基本的に参考サイト通りに行えばトラブルはない。
#16 MySQLの設定をしよう | さくらのVPS入門 - プログラミングならドットインストール
MySQLの設定 | 初心者でもわかる!さくらVPS | Sakura VPS 設定マニュアル

ただ、あとからMovableType(Open Source 5.2x)をインストールしようとすると、デフォルトのままの設定ではインストールが上手くいかないので、このタイミングで設定をしてしまう。

また、レポジトリも最初に追加したレポジトリを参照して最新のバージョンのものをインストールしてみる。

インストール

最新のバージョンは、remi にあるのだが、折角追加してあるのでforgeの方もオプションに加えて最新版を調べさせインストールしてみる。

yum -y install --enablerepo=remi,rpmforge mysql-server

設定ファイルの編集

設定ファイルをバックアップし、編集する。

cp /etc/my.cnf /etc/my.cnf.org
vim /etc/my.cnf

細かい設定は使用目的などに合わせて調整するとよいが、文字コードで4バイト文字が使えるようにすることと長いプレフィクスを使えるように、参考サイトの情報に加えて以下の項目を設定しておくと良い。*1

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
innodb_large_prefix

[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

上記とDatabaseのチューニングも含めて、今回は以下のように設定してみた。

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
user=mysql
character-set-server=utf8mb4
skip-character-set-client-handshake
max_connections=150
thread_cache_size=50
query_cache_size=32M
default-storage-engine=innodb
collation-server=utf8mb4_general_ci

;InnoDB
innodb_file_per_table=1
innodb_buffer_pool_size=1000M
innodb_additional_mem_pool_size=20M
innodb_log_file_size=250M
innodb_log_buffer_size=8M
innodb_flush_log_at_trx_commit=1
innodb_lock_wait_timeout=50
innodb_large_prefix
;MyISAM
key_buffer=512M
table_open_cache=512

# thread parameter
sort_buffer_size=2M
read_buffer_size=256K
join_buffer_size=256K
read_rnd_buffer_size=1M
max_allowed_packet=2M
;MyISAM
myisam_sort_buffer_size=8M


[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid


[client]
default-character-set=utf8mb4


[mysql]
default-character-set=utf8mb4


続いて、対話型のセキュリティ設定と起動および自動起動の設定は、参考2サイトの通りに行う。

mysql_secure_installation

/etc/rc.d/init.d/mysqld start

chkconfig mysqld on

phpMyAdminのインストール

yumを使ってインストール

yum -y install --enablerepo=remi,rpmforge phpMyAdmin

設定ファイルのバックアップをして編集

cp /etc/httpd/conf.d/phpMyAdmin.conf /etc/httpd/conf.d/phpMyAdmin.conf.org

vim /etc/httpd/conf.d/phpMyAdmin.conf

エイリアスの設定方法がポイントになるのだが、これについては、VirtualHostを設定するときに後から修正する。

  #Order Deny,Allow
  #Deny from All
  #Allow from 127.0.0.1
  #Allow from ::1
  #この4行をコメントアウト

  Order Allow,Deny
  Allow from all
  #この2行を追加

  Alias /phpMyAdmin /usr/share/phpMyAdmin
  #VirtualHostを設定するときにいじるので、とりあえずそのままにしておく。

管理機能のDBを作成する

MySQLにログインしphpMyAdmin用のDBを設定する。

mysql -u root -p
Enter password: ←MySQLのrootユーザーパスワード

mysql> source /usr/share/phpMyAdmin/examples/create_tables.sql

mysql> show databases;

phpmyadmin というDB ができていれば成功だ。

そのまま続けて、pmaというアカウントを作り権限設定を行う。

mysql> GRANT ALL PRIVILEGES ON phpmyadmin.* TO pma@localhost IDENTIFIED BY 'パスワード';

mysql> FLUSH PRIVILEGES;

mysql> exit

設定ファイルのバックアップと編集

設定ファイルのサンプルソースを使用するので、もともとの設定ファイルをバックアップしてからサンプルソースに差し替える。

#サンプルソースのコピー
cp /usr/share/phpMyAdmin/config.sample.inc.php /etc/phpMyAdmin/

#オリジナルのバックアップ
cp /etc/phpMyAdmin/config.inc.php /etc/phpMyAdmin/config.inc.php.org

#ディレクトリに移動してサンプルソースに差替え
cd /etc/phpMyAdmin/
mv config.sample.inc.php config.inc.php

#Homeディレクトリに戻って、設定ファイルを編集のために開く
cd
vim /etc/phpMyAdmin/config.inc.php

編集箇所は以下の通り。

$cfg['blowfish_secret'] = 'パスフレーズ';(Cookie認証用の適当なパスフレーズ)


$cfg['Servers'][$i]['auth_type'] = 'cookie';
  
  
 *phpMyAdmin configuration storage settings. 以下の
  コメントアウトを外しさっき作ったアカウント[pma]と
  そのパスワードを入れる
   
/* User used to manipulate with storage */
$cfg['Servers'][$i]['controlhost'] = '';
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'パスワード';
$cfg['Servers'][$i]['user'] = 'pma'; 
$cfg['Servers'][$i]['password'] = 'パスワード';
 
/* Storage database and tables */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
$cfg['Servers'][$i]['relation'] = 'pma_relation';
$cfg['Servers'][$i]['table_info'] = 'pma_table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma_column_info';
$cfg['Servers'][$i]['history'] = 'pma_history';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma_table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma_tracking';
$cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';
$cfg['Servers'][$i]['userconfig'] = 'pma_userconfig';
$cfg['Servers'][$i]['recent'] = 'pma_recent';

再起動

service httpd restart

http://ipアドレス/phpMyAdmin でログイン画面が見れたら成功

ユーザー名:root
パスワード:MySQLのrootのパスワード
でログインできる。

目次

一連の記事の目次は、以下のページにあります。
初心者がさくらのVPSを立ち上げるまで - その1

*1:utf8mb4とデフォルト設定しておいても、個々のデータベースを作成するときに他の文字コード、たとえば utf8_general_ci なども当然選べる。