まずMySQLサービスを止める:
sudo service mysql stop
MySQLのroot実行プロセス保存用のフォルダーを作成:
sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld
MySQLをrootで実行:
sudo /usr/sbin/mysqld --skip-grant-tables --user=root --skip-networking &
[1] XXXXX
MySQLに接続:
mysql -u root
rootのパスワードをなしにする:
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> USE mysql;
Database changed
mysql> UPDATE user SET authentication_string=null WHERE User='root';
Query OK, 0 rows affected, 1 warning (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 1
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye
MySQLのroot実行を止める:
sudo pkill mysqld
上記の操作で一部のファイル権限がrootになってしまうので、権限をmysqlに戻す:
sudo chown -R mysql:mysql /var/lib/mysql/
MySQLサービス再開:
sudo service mysql start
MySQLに接続し、rootパスワードをリセット:
mysql -u root
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '新しいパスワード';
mysql> FLUSH PRIVILEGES;