Ubuntu18.10にMySQL14を導入。パスワード設定後データベースに接続するまで

この記事はUbuntuにMySQLを導入してPHPと連携して何かを表示させるところまでを目的としたものです。

環境

  • ホストPC: Windows10
  • ゲストPC: Ubuntu18.10

仮想環境のUbuntu18.10にはすでにapache2とPHPを導入しています。この状態で話をすすめていきたいと思います。

MySQLの導入

MySQLのインストール

早速MYSQLを導入していきたいと思います。以下のコマンドを打ちます。

$ sudo apt-get install mysql-server

なにかきかれますので はいを選択します

View post on imgur.com

MySQLのインストールが無事に終わったようです。バージョンの確認をしてみます。以下のようになっていました。

$ mysql --version
mysql  Ver 14.14 

MySQLの初期状態確認

インストールが終わりましたので起動状態の確認をしたいと思います。↓動いていました。インストールすると勝手に立ち上がるようです。

$ sudo service mysql status
Active: active (running)

情報では初期パスワードが設定されているmysql.logというものがある。とのことでしたがそんなものはありませんでした。

$ sudo find / -name *mysql.log*

MySQLの初期設定

MySQLの初期設定はいろいろやり方があるとは思いますが、mysql_secure_installation というコマンドではなにかがうまくいきませんでした。初期パスワードが書かれているmysql.logもありません。パスワードが設定されていないようなのでまずはroot権限でデータベースにアクセスします。

sudo mysql -u root -p #はじめはrootユーザーでアクセス。パスワードを聞かれるがsudoなのでエンターするとつながる

次にroot権限でもアクセスできなくするパスワードを設定します。適当なパスワードを設定しようとすると失敗します。これは、パスワードポリシーに違反しているためです。筆者はネットの情報をみてやっていますが、できれば公式ドキュメントをさがしてみてください

MEDIUM ポリシーは、パスワードが最低 1 つの数値文字を含み、1 つの小文字および大文字を含み、1 つの特殊文字 (英数字以外) を含む必要があるという条件を追加します

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';

パスワードが設定できたら、一旦exitしてmysqlを再起動しましょう

$ sudo service mysql restart

次に先ほど設定したパスワードでmysqlにログインできるかどうか確かめてみましょう。-uオプションと -pオプションをつけて接続します

$ mysql -u root -p

接続できれば成功です。できればroot権限でさえ、パスワードがないと接続できないことを確認してみてください。

補足事項

基本コマンド

sudo service mysql start mysqlの軌道
sudo service mysql stop mysqlの停止
sudo service mysql restart mysqlの再起動
sudo service mysql status 起動状態の確認

mysqlコマンドのオプション

-u ユーザー名を指定
-P パスワードを指定
-D データベース名指定
-h ホスト名の値を指定
-e コマンドラインから直接 sql を実行

まとめ

mysqlは導入は簡単ですが、パスワード設定などは古い情報を参考にすると失敗することがあります。いずれはこの情報も古くなっていくと思いますので、だめだったら次だめだったら次とひとつひとつ潰していくのがよいかと思います。(一番よいのは公式の情報を読むことかと思いますが英語なので・・・きびしいんですよね)

PHPとの連携もやりたかったですが長くなりそうなのでこのあたりにしておきます。