MySQLのrootでログインできない:ubuntu 18.04 Server とMysql5.7
ubuntu 18.04がリリースされました。新しいサーバー環境を作ろうと、早速、Server版をインストールして、LAMP環境を構築したのですが、MySQL関連で結構はまりました。難しいですね。
本題の前にubuntu18.04でのLAMP環境の作り方(まずはWindows10 ProのHyperVで作ってます)
1.ISOファイルを準備して、仮想マシンを作成 (セキュアブートを無効にしないと駄目)
2.まとめて入れるには、taskselが便利というか、2年前はそうだったはず。
sudo apt install tasksel
sudo tasksel
apt-getじゃなくなったの?とか思いつつ、見慣れたtaskselの画面でインストールすると、MySQLのパスワード聞かれたかな?と思いつつ、作業を続けたのでした。
さて、パスワードですが、MySQL 5.7では、勝手にrootのパスワードが作成されているそうです。それの見方はいろいろ出ていますが、おそらく推奨のやり方はコマンドで設定するのだと思います。
sudo mysql_secure_installation
と打ち込むと、YesNoの質問と、rootのパスワードを設定できます。パスワードの複雑さの設定も合わせて行われます(validate_password_policy)。
ここまででも、ネット情報を調べつつ苦労していたのですが、端末から入ろうとするとエラーが。。。
mysql -u root -p
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
インストール直後ではまる人は多いのか、いろいろ情報はあります。rootパスワードを
初期化する方法等。。。やってみると確かにパスワード無しでmysqlにログインできたのですが、なんか症状が違うように思えて、さらに調べました。
あれ?
sudo mysql -u root -p
だと、先程設定したパスワードでログインできます。ユーザーの認証の仕方が違うようです。
入り方が分かれば、私はこのままでよくて、外部から接続できるように新しいユーザーを作成して、mysqld.cnfの「bind-address」の設定を変更して、とりあえず、使えそうです。ネット情報は偉大です。下にリンク貼ります。いろいろありがとうございました。
MySQL 5.7 をインストールしたら最初に行うセットアップ | WEB ARCH LABO
Mysqlで「Access denied for user ‘root’@’localhost’ (using password: NO)」 - ITの隊長のブログ