I have long since forgotten the password for the root user on one of my boxes. Is there a way I can change it without having to log in to the instance, or will I have to rei
Step 1
Stop database:
shell> /etc/init.d/mysql stop
Step 2
Restart database
Access to database is only possible through it's sock file '/var/lib/mysql/mysql.sock'.
shell> mysqld --user=mysql --pid-file=/var/lib/mysql/mysqld.pid \
--socket=/var/lib/mysql/mysql.sock --datadir=/var/lib/mysql \
--skip-grant-tables --skip-networking &
Step 3
Connect to the database and change password:
shell> mysql --database mysql --socket=/var/lib/mysql/mysql.sock
If you want to, show all users:
mysql> select User, password from user;
Set new password:
mysql> update user set password=password('NEW PASS') WHERE User='USERNAME';
Leave database connection:
mysql> exit
Step 4
Restart database server "normally".
shell> kill `cat /var/lib/mysql/mysqld.pid`
shell> /etc/init.d/mysql start