開発したアプリなど一覧

WSL Ubuntu 18.04 に MySQL 5.7 をインストールする

記事内にアフィリエイトリンクを含む場合があります

Web アプリの開発で必要となる Mysql を WSL の Ubuntu 8.10 にインストールした際のメモ。バージョンは 5.7 を利用した。

WSL Ubuntu 8.10 に MySQL 5.7 をインストールする

インストールは apt で可能。

$ sudo apt-get install mysql-server

しかし、起動しようとすると以下のようにエラーが出た。

$ sudo service mysql start * Starting MySQL database server mysqld No directory, logging in with HOME=/

/etc/passwd を確認すると ディレクトリが nonexistent になってたので以下のコマンドで変更してやる。

$ sudo usermod -d /var/lib/mysql mysql

また、このままでは root でもログインできなかったので、mysqld --initialize を実行して root パスワードを生成させる。

$ sudo mysqld --initialize $ # --initialize specified but the data directory has files in it. Aborting. $ # とエラーが出た場合は以下のコマンドでデータディレクトリを削除する。 $ # sudo rm -rf /var/lib/mysql/ $ $ grep 'temporary password' /var/log/mysql/error.log 2018-09-27T07:44:54.103905Z 1 [Note] A temporary password is generated for root@localhost: PASSWORD

パスワードはログに出力される。あくまで一時的なものなのですぐ変更しよう。

MySQL へのログインと root パスワードの変更

ログに出力された一時的なパスワードを利用して mysql にログインする。

$ sudo service mysql start * Starting MySQL database server mysqld [ OK ] $ $ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 Server version: 5.7.22-0ubuntu18.04.1

mysql>

ログインできたらパスワードを変更する。

mysql> use mysql; mysql> update user set authentication_string=PASSWORD("Password") where User='root'; Query OK, 0 rows affected, 1 warning (0.01 sec) Rows matched: 1 Changed: 0 Warnings: 1 mysql> flush privileges; Query OK, 0 rows affected (0.03 sec)

これで指定したパスワードで root ログインできる。

MySQL の文字コードの設定変更

最後になったが文字コードの設定もしておこう。MySQL 5.7 はデフォルトでは以下のような感じになっている。

mysql> show variables like "chara%"; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec)

以下の2つの設定ファイルに文字コードの指定を加える。

$ sudo vim /etc/mysql/conf.d/mysql.cnf [mysql] default-character-set = utf8mb4 $ $ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf [mysqld] character-set-server = utf8mb4

その後 sudo service mysql restart と打って MySQL サーバを再起動し、再度ログインして文字コードを確認する。

mysql> show variables like "chara%"; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8mb4 | | character_set_connection | utf8mb4 | | character_set_database | utf8mb4 | | character_set_filesystem | binary | | character_set_results | utf8mb4 | | character_set_server | utf8mb4 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec)

これで OK のようだ。

Sponsored Link

コメント

タイトルとURLをコピーしました