This question already has answers here:
Closed 5 years ago.
My computer is Windows XP.
I need to find my.cnf
to get all privileges back to the root user. I accidentally removed some privileges of the root user. I still have the password and there is no problem for me to log in to MySQL as the root user. But I can not alter a table.
Here is my answer:
- Win+R (shortcut for 'run'), type
services.msc
, Enter
- You should find an entry like 'MySQL56', right click on it, select properties
- You should see something like
"D:/Program Files/MySQL/MySQL Server 5.6/bin\mysqld" --defaults-file="D:\ProgramData\MySQL\MySQL Server 5.6\my.ini" MySQL56
Full answer here:
https://stackoverflow.com/a/20136523/1316649
To answer your question, on Windows, the my.cnf
file may be called my.ini
. MySQL looks for it in the following locations (in this order):
%PROGRAMDATA%\MySQL\MySQL Server 5.7\my.ini
, %PROGRAMDATA%\MySQL\MySQL Server 5.7\my.cnf
%WINDIR%\my.ini
, %WINDIR%\my.cnf
C:\my.ini
, C:\my.cnf
- INSTALLDIR
\my.ini
, INSTALLDIR\my.cnf
See also http://dev.mysql.com/doc/refman/5.7/en/option-files.html
Then you can edit the config file and add an entry like this:
[mysqld]
skip-grant-tables
Then restart the MySQL Service and you can log in and do what you need to do. Of course you want to disable that entry in the config file as soon as possible!
See also http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html
Windows 7 location is: C:\Users\All Users\MySQL\MySQL Server 5.5\my.ini
For XP may be: C:\Documents and Settings\All Users\MySQL\MySQL Server 5.5\my.ini
At the tops of these files are comments defining where my.cnf
can be found.
You can find the basedir (and within maybe your my.cnf) if you do the following query in your mysql-Client (e.g. phpmyadmin)
SHOW VARIABLES
you can search this file : resetroot.bat
just double click it so that your root accout will be reset and all the privileges are turned into YES
Start->Search->For Files and Folders->All Files and Folders
type "my.cnf" and hit search.