MySQL 5.7をインストールしたら出てきたERROR 1045 (28000)の対処法

  • 16
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

CentOSにyumでMySQLをインストールすると5.1がインストールされる。もっと新しいバージョンのMySQLを使いたかったので、手動で新しいバージョンのMySQLをインストールしたら微妙にハマったので対処法をメモ。

  • さくらVPS
  • CentOS release 6.7 (Final)

とりあえずMySQL 5.7をインストール。

# wget http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm
# rpm -ihv mysql57-community-release-el6-7.noarch.rpm
# yum -y install mysql-server mysql-devel

MySQLを起動。

# /etc/rc.d/init.d/mysqld start

無事に立ち上がる。

MySQL データベースを初期化中:                              [  OK  ]
Installing validate password plugin:                       [  OK  ]
mysqld を起動中:                                           [  OK  ]

MySQLにログインを試みる。

# mysql -u root

ERROR 1045 (28000)が出て怒られる。パスワードを入力しろということらしいけど、俺はパスワードなんて設定していない。どうすればええんや。

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

調べると、/root/.mysql_secretにパスワードが書いてあるという噂がある。が、そのようなファイルは存在しない。情報が古いらしい。

さらに調べると、MySQL 5.7ではログファイルにパスワードが吐かれているという噂をキャッチ。

# cat /var/log/mysqld.log | grep 'password is generated'

パスワードを発見(hogehogehogeと書いてある箇所)。仮パスワードらしいです。とりあえずコピー。

2016-03-01T04:06:39.274017Z 1 [Note] A temporary password is generated for root@localhost: hogehogehoge

再びMySQLへのログインを試みる。

mysql -u root -p

さきほどメモった仮パスワードを入力するとログインできる。

そしたらまずはパスワードを変更しなければならないらしい。

SET PASSWORD = 'hogehoge';

とか入力すると、

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

パスワードが要件を満たさないと怒られる。要件は大小英数記号を組み合わせて8文字以上、とかだったと思われます。

要件を満たすパスワードを入力すると、

Query OK, 0 rows affected (0.00 sec)

と表示されてパスワードが変更される。

exitして新しいパスワードで再びログイン。

mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.11    |
+-----------+
1 row in set (0.00 sec)

MySQLの5.7をインストールすることができた。ありがとうございます。