まず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=nullWHERE 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;