ブログ ひまつぶし

バイクとシモネタが好きなへっぽこプログラマのおバカなブログ。

MySQL5.5.27で4時間奮闘

2012-09-17 00:04:48 | Linux-サーバー
色々調べてみると、PHPを入れる前にMySQLを入れなければならないそうで、MySQL5.5.27を入れることにしました。

ソースコードをダウンロードしてコンパイルする部分は「configure」がないので、「くもりだね」というサイトを参考にしました。
このサイトでは、「configure」ファイルを実行せず「cmake」コマンドをインストールして使っています。

「# yum -y install cmake ncurses-devel bison bison-devel」で「cmake」をインストールします。

その後、「http://www-jp.mysql.com/」から、「MySQL Community Server」のソースコードをダウンロードして「/usr/local/src」にファイルを移して、「tar zxvf」で解凍しました。

そして、解凍したディレクトリに移動して
# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATE=utf8_general_ci
# make && make install

を実行しインストールしました。

ここからユーザーを作る部分は替えました。
後々うまく行かなかったからです。
# groupadd mysql
# adduser -g mysql mysql
# passwd 任意のパスワード
でユーザーを作りました

# cd /usr/local/mysql/scripts/
# ./mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --collation-server=utf8_general_ci

赤字の引数を与えないとDBの初期化時(「 [ERROR] COLLATION 'latin1_swedish_ci' is not valid for CHARACTER SET 'utf8'」エラーが発生する)

# chown -R mysql. /usr/local/mysql


さて、MySQLを起動する部分でエラーが発生しました。

------------------------------------------------------------------
[root@dip bin]# ./mysqld start
120917 0:48:24 [ERROR] COLLATION 'latin1_swedish_ci' is not valid for CHARACTER SET 'utf8'
120917 0:48:24 [ERROR] Aborting

120917 0:48:24 [Note] ./mysqld: Shutdown complete
------------------------------------------------------------------
は、my.cnfの「mysqld」セクションに
「collation-server = utf8_general_ci」を記述すると出なくなりました。

その代わり、下記のようなエラーが出るようになりました。
------------------------------------------------------------------
[root@dip usr]# /usr/local/mysql/bin/mysqld start
120916 23:37:39 [ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!

120916 23:37:39 [ERROR] Aborting

120916 23:37:39 [Note] /usr/local/mysql/bin/mysqld: Shutdown complete
------------------------------------------------------------------
これはどうやら「root」で実行しようとしているのが悪いようなので、「su - mysql」で事前に作っておいた「mysql」ユーザーで「/usr/local/mysql/bin/mysqld start」実行してみました。
すると今度は、
------------------------------------------------------------------
120917 1:02:19 [ERROR] /usr/local/mysql/bin/mysqld: unknown variable 'default-chracter-set=utf8'
------------------------------------------------------------------
MySQL5.5.27では、設定ファイル「my.cnf」「default-chracter-set=utf8」は未知の変数だということです。
ちなみに質問サイトで指摘のあったMySQL5.5系は「chracter-set-server=utf8」としなければならないという回答のとおりにしても、同様に未知の変数だということでエラーになるのでその記述は削除しました。
しかし、そうすると「COLLATION 'Latin1?swedish_ci'is not valid for CHARACTER SET 'utf8'」エラーが発生するため、「/etc/my.cnf」の「mysqld」セクションに「collation-server= utf8_general_ci」を追加しました。

それで、起動を試みました。
「/usr/local/mysql/bin/mysqld start」を実行しても、「引数が多い。startは不要」であるとエラーが出たので、「/usr/local/mysql/bin/mysqld」というように、引数なしで実行するとうまく実行することができました。
しかし、この機動方法ですと、カーソルが出ない、固まったままになります。
別の端末を立ち上げて確認すると、うまく動いているようなのですがね。
------------------------------------------------------------------
[ucchanx@dip ~]$ /usr/local/mysql/bin/mysqlshow
+--------------------+
| Databases |
+--------------------+
| information_schema |
| test |
+--------------------+
[ucchanx@dip ~]$
------------------------------------------------------------------
なので、自動起動を設定することにしました。
方法は「くもりだね」に書いているとおりの方法でできました。

# cp /usr/local/src/mysql-5.5.25a/support-files/mysql.server /etc/rc.d/init.d/mysql
# chmod 755 /etc/rc.d/init.d/mysql
# chkconfig --add mysql
# chkconfig mysql on

環境変数を設定
# vi ~/.bash_profile
このファイルの一番下に
PATH=$PATH:/usr/local/mysql/bin
という行を追加して閉じて環境設定をリロードする
# source ~/.bash_profile

ここで私は、再起動してMySQLが起動しているか確認しました。
------------------------------------------------------------------
[ucchanx@dip ~]$ mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.5.27 Source distribution

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

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

mysql>
------------------------------------------------------------------
どうやら成功しているようです。

次は、PHPをインストールしなおさなきゃ。

ちなみに
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
と言うエラーがエンドレスで出るときは、「もう既にMySQLが動いている」ということらしいです。


何かよく分からないままインストールができてしまいましたね。

最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。