ツムラ_メモ

大失敗を繰り返す。

MySQLでのユーザの作成

MySQLだとGRANTでユーザの作成までいけちゃうらしいが、普段通りCREATE USERで作ってみることにする。

ユーザの作成

PostgreSQLとはパスワードの形式が違うwww
もうこういう細かい差がめんどくさいwww

CREATE USER wordpress IDENTIFED BY パスワード


パスワードをhogehogeで作成するとこんな感じ
mysql> CREATE USER 'wordpress' IDENTIFIED BY 'hogehoge';
Query OK, 0 rows affected (0.00 sec)

データベースの作成

mysql> CREATE DATABASE wordpressdb;
Query OK, 1 row affected (0.00 sec)

ユーザのアクセス権限の設定

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX, DROP, CREATE TEMPORARY TABLES ON wordpressdb.* TO wordpress;
GRANT FILE ON *.* TO wordpress;


実際の実行結果

mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX, DROP, CREATE TEMPORARY TABLES ON wordpressdb.* TO wordpress;
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT FILE ON *.* TO wordpress;
Query OK, 0 rows affected (0.00 sec)


最初最初の一行でFILE権限も挙げようとして、以下のようなエラーが出ていた。

mysql> GRANT FILE ON wordpressdb.* TO wordpress;
ERROR 1221 (HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES

どうも、FILE権限っていうのはデータベース単位じゃなくて、データベース全体を指定しないといけないっぽい。

WordPressの設定

wp-config-sample.phpをwp-config.phpにコピー。
MySQLで設定した内容に合わせて記述を変更する。

<?php
/** 
 * WordPress 基本設定
 *
 * このファイルは、MySQL、テーブル接頭辞、秘密鍵、言語、ABSPATH の設定を含みます。
 * より詳しい情報は {@link http://wpdocs.sourceforge.jp/wp-config.php_%E3%81%AE%E7%B7%A8%E9%9B%86 
 * wp-config.php の編集} を参照してください。MySQL の設定情報はホスティング先より入手できます。
 *
 * このファイルはインストール時に wp-config.php 作成ウィザードが利用します。
 * ウィザードを介さず、このファイルを "wp-config.php" という名前でコピーして直接編集し値を
 * 入力しても構いません。
 *
 * @package WordPress
 */

// 注意:
// Windows の "メモ帳" でこのファイルを編集しないでください !
// 問題なく使えるテキストエディタ
// (http://wpdocs.sourceforge.jp/Codex:%E8%AB%87%E8%A9%B1%E5%AE%A4 参照)
// を使用し必ず UTF-8 の BOM なし (UTF-8N) で保存してください。

// ** MySQL 設定 - こちらの情報はホスティング先から入手してください。 ** //
/** WordPress のデータベース名 */
define('DB_NAME', 'wordpressdb');

/** MySQL のユーザー名 */
define('DB_USER', 'wordpress');

/** MySQL のパスワード */
define('DB_PASSWORD', 'hogehoge');

Mac OSXのApacheの設定

/Private/etc/apache2/httpd.confの内容を適宜変更。
php5_moduleを有効化するために、コメントアウトを解除。

LoadModule php5_module libexec/apache2/libphp5.so


そのごapacheを再起動

sh-3.2# sudo apachectl graceful

Mac OSXのPHPの設定

/private/etc/php.iniがデフォルトでは存在しないので、
/private/etc/php.ini.defaultをphp.iniにコピー。
設定を行う項目は次の二つ。mysqliは使ってるかどうか謎だけど、念のため。
この設定はMySQLとソケット通信を行うための設定なのだが、MySQLをPortsでインストールすると、デフォルトの場所とは異なる場所にsocketを生成するので、以下のように変更を行う必要がある。
MySQL(Portsでインストールした場合)のソケットの場所はデフォルトだと/opt/local/var/run/mysql5/mysqld.sock。

mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock
mysqli.default_socket = /opt/local/var/run/mysql5/mysqld.sock

設定後はシステム環境設定の共有からWeb共有を再起動させる。


今回困ったのは何故かphp.iniの設定が一度再起動させても反映されず、ほかの箇所を変更して再起動すると、その変更は反映されずに、前に設定した変更が反映されるという謎の現象。
もしかして、システム環境設定からの再起動だとうまく再起動できてない?(謎
システムを再起動すればよかったのかもしれない。
それに気づかずに次の日にMacPortsphpを入れ直したりとかいう無駄な作業を行ってしまった。
今週はきっちり研究を進めなければいけないというのに、いったい俺は何をやっているのやら…。