1

I've just installed a copy of MySQL 5.7 for testing, and I love the fact that it now only creates a single root account, and puts the password into a file called .mysql_secret.

There's just one problem. Where can I find the above mentioned file. On Linux it is apparently found in $HOME, but my test DB is on Windows.

I tried various places including %USERPROFILE% but I just can't find it anywhere!!

Can anyone please tell me where to find this file? As otherwise my testing will be over before it has begun.

Paul White
  • 94,921
  • 30
  • 437
  • 687
IGGt
  • 2,266
  • 6
  • 35
  • 49

3 Answers3

2

My blind guess would be to look in %APPDATA%\MySQL on your system as follows:

cd %APPDATA%
cd MySQL
dir .my_secret

For those who use the MySQL no-install Zip File (such as myself), you will not see one.

If .my_secret is not on your Windows servers, I have an alternative. You could start up mysqld manually with skip-grant-tables, set the password

net stop mysql
cd "C:\Program Files (x86)\MySQL\MySQL 5.7\bin"
start mysqld --skip-grant-tables
mysql -ANe"update mysql.user set authentication_string=PASSWORD('mynewpassword') where user='root'"
mysqladmin shutdown
net start mysql
mysql -uroot -p
Enter password: (enter the password 'mynewpassword' and hit <Enter>)

Give it a Try !!!

RolandoMySQLDBA
  • 185,223
  • 33
  • 326
  • 536
1

The .mysql_secret file is only used by mysql_install_db (which is deprecated).

The new way to bootstrap a server (mysqld --initialize) writes the randomly generated password to the error log.

Morgan Tocker
  • 3,810
  • 22
  • 24
0

Can you check your my.ini file? (inside MySQL folder)

There you should find something like:

[mysqladmin]
user=root
password=pwpwpw
port=3306
Nelson
  • 1,687
  • 3
  • 15
  • 27