Many distributions of Linux have an option to install MySQL. In this case, or even if you compile MySQL, the default password is blank. MySQL can also run on Windows boxes. When you install MySQL, make sure that you set the root password. You can do this:
root@u-1:/home/u-1# mysql -u root mysql Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 1 to server version: 3.23.47 Type 'help;' or 'h' for help. Type 'c' to clear the buffer. mysql> SET PASSWORD FOR root@localhost=PASSWORD('rubberchicken'); Query OK, 0 rows affected (0.06 sec) mysql> |
In this example, we set the root password to rubberchicken. Note from the above that the password wasn’t set. If we try this again, we need to use the -p option to enter the password:
root@u-1:/home/u-1# mysql -u root mysql ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO) root@u-1:/home/u-1# mysql -u root -p mysql Enter password: Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 3 to server version: 3.23.47 Type 'help;' or 'h' for help. Type 'c' to clear the buffer. mysql> |
To reset a root password that you forgot (using paths on our system):
[root@host root]#killall mysqld [root@host root]#/usr/libexec/mysqld -Sg --user=root & |
You may have better luck with:
mysqld --skip-grant-tables --user=root |
Go back into MySQL with the client:
[root@host root]# mysql Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 1 to server version: 3.23.41 Type 'help;' or 'h' for help. Type 'c' to clear the buffer. mysql> USE mysql Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> UPDATE user -> SET password=password("newpassword") -> WHERE user="root"; Query OK, 2 rows affected (0.04 sec) Rows matched: 2 Changed: 2 Warnings: 0 mysql> flush privileges; Query OK, 0 rows affected (0.01 sec) mysql> exit; [root@host root]#killall mysqld |
Start MySQL the normal way for your system, and all is good. For Red Hat this is:
/etc/init.d/mysqld start |