CentOS7にMySQL5.7をインストールし、/var/log/mysql/mysqld.logに書かれている初期パスワードを用いてログインしようとすると
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
と出てしまう。CentOS7はsystemdで管理しているためmysqld_safeを使用できないので、systemctlから設定を行う。
$systemctl stop mysqld $systemctl set-environment MYSQLD_OPTS="--skip-grant-tables" $systemctl start mysqld $mysql -u root mysql> UPDATE mysql.user SET authentication_string = PASSWORD('{パスワード}') -> WHERE User = 'root' AND Host = 'localhost'; mysql> FLUSH PRIVILEGES; mysql> quit $systemctl stop mysqld $systemctl unset-environment MYSQLD_OPTS $systemctl start mysqld
とすると、設定したパスワードでMySQLにログインできるようになります!