Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
4
Help us understand the problem. What is going on with this article?
@nyu___nS

WSLのUbuntu18.04.1LTSにMySQL5.7を入れたお話

More than 1 year has passed since last update.

はじめに

サーバーサイドについて詳しくないのですが、強制的にやらざるおえなくなったので、メモ程度に残しときます。
(めっちゃ躓いた)

※詳しくないので、「~ぽい」という表現が多いです。

環境

  • Windows10 home
  • ubuntu18.04.1LTS
  • MySQL 5.7

やったこと

まずダウンロード

$ sudo apt install mysql-server mysql-client

mysql-serverだけでもいいぽい

MySQL5.7の場合、初期rootパスが生成されるらしい

ソースはここのサイト

/var/log/mysqld.logに書いてあるらしいけど、存在しない。

初期パスワードを生成する

存在しないので、生成するしかない。
mysqld --initializeを行うとroot初期パスワードが生成されるらしい(参考サイトの場所忘れた…)

WSL Ubuntu 18.04 に MySQL 5.7 をインストールする
を参考にやってみる

サーバー起動
$ sudo service mysql start

* Starting MySQL database server mysqld
No directory, logging in with HOME=/

ホームディレクトリーないといわれるけど、serverは起動した
エラーはいったん放置

初期化
$ sudo mysqld --initialize

--initialize specified but the data directory has files in it. Aborting.

とエラーが出たのでサイト通り
sudo rm -rf /var/lib/mysql/
と削除。もともとディレクトリがあるとダメぽい

もう一回初期化
$ sudo mysqld --initialize
なにも出ないのでうまくいったんでしょう:relaxed:

初期ルートパスを所得
$ grep 'temporary password' /var/log/mysql/error.log
このパスワードを使って、rootパスワードを変更していく

rootパスワードを変更する

パスワードを変更するには、mysql_secure_installation コマンドを実行する
個人開発レベルならしなくてもいいらしいけど、これをやるのが正しいぽい
$ sudo mysql_secure_installation
を実行、ルートパスワードが聞かれたり、聞かれなかったりするけど、
聞かれたら今さっきのtemporary passwordを入力する

あとはいろいろ聞かれる
よくわからないので、このサイトを参考にした
MySQL 5.7 をインストールしたら最初に行うセットアップ

これで自分で設定したルートパスでログインできる。

MySQLにログインする

$ sudo mysql -u root -p
mysql_secure_installationで指定したパスワードを入力

無事入れたら、本当にrootで入ってるか確認する

mysql> status
Connection id:          20
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.7.24-0ubuntu0.18.04.1 (Ubuntu)
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            /var/run/mysqld/mysqld.sock
Uptime:                 21 min 1 sec

Threads: 1  Questions: 15  Slow queries: 0  Opens: 115  Flush tables: 1  Open tables: 34  Queries per second avg: 0.011
--------------

rootで入れたのでquitしてmysqlから出る

MySQLを停止させる

sudo service mysql stop
なぜか停止できない…

sudo service mysql status

mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'

debian-sys-maintユーザーが拒否されてるぽい
ていうか、debian-sys-maintって誰だよ

ということで、調べてみた。
[MySQL]debian-sys-maintっていうユーザは消しちゃダメ
ubuntuさんが勝手につくったユーザーぽい。

エラーを解決する

Debian mysql再起動時にAccess denied for user 'debian-sys-maint'
を参考にやってみる

debian-sys-maintさんのパスワードがわかりにくいので書き換える
vimしか使えないのでvimで書き換える。
$vim /etc/mysql/debian.cnf

[client]
host = localhost
user = debian-sys-maint
password = [ここを好きなパスワードに書き換える]
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
user = debian-sys-maint
password = [ココを好きなパスワードに書き換える]
socket = /var/run/mysqld/mysqld.sock
basedir = /usr

またmysqlに入る
$ sudo mysql -u root -p

debian-sys-maintさんに権限を与える。
> GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '[指定したパスワード]' WITH GRANT OPTION;
GRANTについてはMysql関係の備忘録

quit
してからの
sudo service mysql stop
停止できた!!
大変!!

mysqlのホームディレクトリを指定してあげる

* Starting MySQL database server mysqld
No directory, logging in with HOME=/

のエラーを解決する

sudo usermod -d /var/lib/mysql mysql
を実行

でこのエラーは出なくなるはず。

サーバー停止してから実行しないとエラーがでる

参考資料

【Ubuntu 18.04 LTS Server】MySQLサーバを動かす

最後に

MySQL5.7、はじめていじってみたのですがバージョンアップしてセキュリティ面が強くなったせいか初期設定で躓く人が多いらしいです。

私の場合、よくわかってないので調べるのが大変でした:weary:


追記
結局、動作が不安定だったので、windowsのMysqlを入れました。

4
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
nyu___nS
学生時代はVR関連のことをやっていましたが、卒業するのでUnity関連の記事は終わりになります。 個人でVR機材が買えるようになったら、また書き出そうと思います。 JavaScript,Node,ES6,Vue,Ejs,Sass,Python,Perl,PHP,Unity,C#,MySQL,Pepper https://micchi-fms.github.io/micchi-site/

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
4
Help us understand the problem. What is going on with this article?