MySQL install

MySQLのインストールを開始。といっても、yumにやらせるだけ。mysql-serverのインストールを指示すると、依存関係でパールのライブラリが要求されたので、その二つをインストール。ついでに再起動。


改めてMySQLクライアントで接続を試みると…失敗?プロセスリストを見ると、名前が載っていない。自動起動が設定されなかったのかと思って、適切な起動方法を調べると…mysqld_safeで起動させるのがよいとあるのでそれをするも…失敗。


更に改めてサイトを調べると…mysql_install_dbという初期化スクリプトを走らせろとの事。RPMから入れている割にはめんどくさい。(って、よく考えるとPostgreSQLでも初期化プロセスがあった気がする。)更に考えると、自動起動は設定されているが、初期化が行われていなかったので即座にfailしたのではないか。


スクリプトを走らせた後、改めてmysqld_safeを実行…すると動きはしたのだが、そのまま入力を取られてしまう?何か失敗したのかと思って調べると、mysqld_safeはそういう仕様なので「最後に&をつけてバックグラウンド実行を指定しろ」とのことだった。はて、最近sambaのデーモンとかを実行する事が多くあった*1が、そんな仕様のものはなかったのだが。



さて、色々読みながら作業していたのだが…どこかのタイミングで「インストール直後はMySQLの特権ユーザーにパスワードがないのですぐに設定しろ」という指示を目にしていたにも関わらず、なぜか公式マニュアルの手順にはその記述がない。なにゆえ?

MySQL :: MySQL 5.6 リファレンスマニュアル :: 2.10.2 最初の MySQL アカウントのセキュリティー設定に見つけた。*2で、英語版のMySQL :: MySQL 8.0 Reference Manual :: 2.10.4 Securing the Initial MySQL Accountを見ると、ちゃんとインストール語にする作業として分類されている。マニュアルは英語版じゃないと駄目なのか?*3

しかも、ちょっと記述が足りない。unix系ではrootアカウントが二つ作成される、と英語版には書いてあるのだが…。ひょっとして記述が古いのかも。

で、パスワードを(英語版にしたがって)設定してみた後、コマンドラインのクライアントで接続しようとすると…繋がらない。パスワードを入力していないからなのだが、「わざわざ`-p'オプションを指定しないとパスワードを訊いてこない」仕様になっているらしい。謎だ。

*1:設定を変えまくったので。

*2:yumが4.1を入れたのでこのバージョン。ちょっと古いのだが…。

*3:言語を日本語に切り替えると、先ほどのページに移動します。全然構造が違うんですが。