75 lines
2.2 KiB
Markdown
75 lines
2.2 KiB
Markdown
|
# Set/Reset MySQL Root Password on MySQL 14.14
|
||
|
|
||
|
I was trying to setup MySQL that I installed using `sudo apt install MySql` and couldn't remember how to set the root password. I found many different instructions on how to stop MySQL, boot into safe mode and reset the root password.
|
||
|
|
||
|
*None of them worked.*
|
||
|
|
||
|
This did:
|
||
|
|
||
|
Run: `sudo mysql_secure_installation`
|
||
|
|
||
|
You will see something like this:
|
||
|
|
||
|
```
|
||
|
Securing the MySQL server deployment.
|
||
|
|
||
|
Enter password for user root:
|
||
|
```
|
||
|
|
||
|
You can setup a password strength validation plugin if you wish in the next step:
|
||
|
|
||
|
```
|
||
|
VALIDATE PASSWORD PLUGIN can be used to test passwords
|
||
|
and improve security. It checks the strength of password
|
||
|
and allows the users to set only those passwords which are
|
||
|
secure enough. Would you like to setup VALIDATE PASSWORD plugin?
|
||
|
|
||
|
Press y|Y for Yes, any other key for No:
|
||
|
```
|
||
|
|
||
|
Next, it will give you an option to disable anonymous users. Do it. It is a security liability if you don't.
|
||
|
|
||
|
```
|
||
|
By default, a MySQL installation has an anonymous user,
|
||
|
allowing anyone to log into MySQL without having to have
|
||
|
a user account created for them. This is intended only for
|
||
|
testing, and to make the installation go a bit smoother.
|
||
|
You should remove them before moving into a production
|
||
|
environment.
|
||
|
|
||
|
Remove anonymous users? (Press y|Y for Yes, any other key for No) :
|
||
|
```
|
||
|
|
||
|
Remote root login to MySQL is generally not a good thing. I recommend disabling it:
|
||
|
|
||
|
```
|
||
|
Normally, root should only be allowed to connect from
|
||
|
'localhost'. This ensures that someone cannot guess at
|
||
|
the root password from the network.
|
||
|
|
||
|
Disallow root login remotely? (Press y|Y for Yes, any other key for No) :
|
||
|
```
|
||
|
|
||
|
Delete the test database to reduce the attack surface for hackers:
|
||
|
|
||
|
```
|
||
|
By default, MySQL comes with a database named 'test' that
|
||
|
anyone can access. This is also intended only for testing,
|
||
|
and should be removed before moving into a production
|
||
|
environment.
|
||
|
|
||
|
|
||
|
Remove test database and access to it? (Press y|Y for Yes, any other key for No) :
|
||
|
```
|
||
|
|
||
|
Reload privilege tables now, unless you need MySQL working for this precise instant. It only takes a second.
|
||
|
|
||
|
```
|
||
|
Reloading the privilege tables will ensure that all changes
|
||
|
made so far will take effect immediately.
|
||
|
|
||
|
Reload privilege tables now? (Press y|Y for Yes, any other key for No) :
|
||
|
```
|
||
|
|
||
|
And you're done!
|