Recovering root password in MySQL (XAMPP) - mysql

I have an XAMPP MySQL installation and want to recover the root password. I am aware that questions have asked this already, however they are Linux methods of doing it (I'm on Windows) and I can't seem to figure out what exactly the Linux commands translate to in XAMPP - I tried looking for a place to configure the arguments to not use network etc but couldn't.
Any help would be appreciated

Recovering the exact current password is apparently not possible. This solution is for resetting a lost password on a Windows machine.
I have tested this code for 5.7[.22] (while upgrading to 8.0). Please verify your installed version and paths accordingly. (x86 machines will have slightly modified values)
-
Stop MySQL server from the services, if it is running.
Create a file mysql-init.txt in D:\ drive and put the following line in it:
ALTER USER 'root'#'localhost' IDENTIFIED BY 'NewRootPassWillComeHere';
Open command prompt and execute the following commands:
C:\> cd "C:\Program Files\MySQL\MySQL Server 5.7\bin"
C:\> mysqld --defaults-file="C:\\ProgramData\\MySQL\\MySQL Server 5.7\\my.ini" --init-file=D:\\mysql-init.txt --console
The option --console will give the output in the command prompt.
Password has been reset successfully and the file mysql-init.txt can be deleted.
-
Source and other scenarios: How to Reset the Root Password

Related

MySQL on Windows - Access denied for user 'root'#'localhost' after fresh install

I've installed the latest MySQL on Windows 10 Pro. I included the wizard steps to set up initial values and chose to set it up as a dev machine. I left everything to the default values. After installing and restarting the machine, there's no way to connect to the database it seems.
I get the MySQL Error 1045: Access denied for user 'root'#'localhost' (using password: YES) error both in MySQL Workbench as well as the MySQL Shell.
I've tried to set skip-grant-tables in my.ini as that comes up in a lot of answers on here. When I set that and try to start the MySQL80 Service, it shuts itself down within seconds again.
I've also tried to start with mysqld.exe --skip-grant-tables as per this answer but that gave me the error that it couldn't find C:\Program Files\MySQL\MySQL Server 8.0\data. This folder indeed didn't exist, after making this folder myself and running mysqld.exe --skip-grant-tables again, 3 files were added to this folder but I'm immediately thrown back to my CMD shell and no mysqld.exe process is running.
To reiterate, this is a Windows 10 machine, answers about sudo mysql or /etc/my.conf are N/A unfortunately.
Workbench, MySQL Shell and CMD Prompt were all running as Administrator in the above steps.
Did you try with "-p" and password "password"?
Reinstalled MySQL with legacy authentication and the weakest password it'll accept and now it works... ¯\_(ツ)_/¯

Mysql reset password error

I had mysql already installed in my system and I uninstalled it because it was not running successfully.
Now when I installed a new version of mysql, the server starts and stops successfully. But it still accepts the password of my old mysql.
If I try to change the password, which I need to because it says my old password has expired when I try to connect it to workbench, it gives me the following error:
File './mysql/user.MYD' not found (Errcode: 2 - No such file or directory)
I also tried running this command:
mysql -uroot -p
It accepts my old password and then if I further run any other command, example
mysql> USE mysql;
It asks me to reset the password and when I do it again gives me the above error
If you've trashed your MySQL system tables you'll need to recreate them with the mysql_install_db command-line tool or something equivalent. This is done while the server process is stopped and should initialize everything correctly.

MySQLInstallerConsole not setting root password?

I am installing MySQL on Windows with the following command line:
MySQLInstallerConsole community install -silent server;5.7.12;x64:*:type=config;servertype=Server;openfirewall=true;generallog=true;serverid=3306;enable_tcpip=true;port=3306;rootpasswd=%1;installdir="C:\MySQL\MySQLServer-5.7":type=user;username=foo;password=bar;role=DBManager
This line is contained in a script, and I pass in the root password from a random generated string. However, I am getting an access denied for 'root'#'localhost' when trying to access the server via
mysql -u root -p
(and providing the password)
I can not find any issues with the parameters for MySQLInstallerConsole. Connecting as user foo even works, but I really need the root password to work.
Any ideas?
I finally figured out what the issue was: the system had a MySQL server installed before. The service and binaries had all been removed, but there still was a MySQL data directory in the default location (somewhere in %ProgramData%"). This seems to cause to make the installer console fail to finish the new installation WITH a different root password.
Removing the old data directory and re-running the installer command line as stated in the original question (without any changes) resulted in successful installation.

MariaDB install: I unchecked running as service during installation. What is correct way to start and stop mariadb?

Now, I don't know how to start mariadb since I didn't install it as a running service.
This didn't help me:
https://mariadb.com/kb/en/mariadb/starting-and-stopping-mariadb/
I googled and thought this would work to set it as a service:
C:\Program Files\MariaDB 10.0\bin>mysql_install_db.exe --datadir=c:\mariadb --service=MyDB --password=secret
Running bootstrap
Removing default user
Setting root password
Creating my.ini file
Registering service 'MyDB'
FATAL ERROR: OpenSCManager failed (5)
http://kb.askmonty.org/v/installation-issues-on-windows contains some help
for solving the most common problems. If this doesn't help you, please
leave a comment in the Knowledgebase or file a bug report at
http://mariadb.org/jira
I then went and issued this command:
C:\Program Files\MariaDB 10.0\bin>mysqld.exe --datadir=../data
But it just stays there blinking. Yes, I can connect to maria db with Heidisql, but does the above command prompt suppose to blink one line under the above command?
Now, I don't know how to shutdown the database. I went to the documentation and can't find this command: mysql.server stop
But there's no such command / script for windows 7.
I tried:
C:\Program Files\MariaDB 10.0\bin>mysqladmin -u root -p shutdown
Enter password: ********
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to MySQL server on 'localhost' (10061 "Unknown error")'
Check that mysqld is running on localhost and that the port is 3306.
You can check this by doing 'telnet localhost 3306'
I'm using windows 7.
I've read
http://dev.mysql.com/doc/mysql-startstop-excerpt/5.0/en/windows-server-first-start.html
that to start the server I run inside the bin directory mysqld --console
I ran this command to stop mariadb, but it didn't seem to work:
C:\Program Files\MariaDB 10.0\bin>mysqladmin shutdown -p
Enter password: ********
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'ODBC'#'localhost' (using password: YES)'
I'm able to connect still.
What's the correct way for me to start and stop maria db (latest version 3/15/2015) on windows 7?
Update:
I'm able to use this to shutdown:
mysqladmin -u root -p shutdown
Is there a correct way to start and shutdown mariadb? I really don't want mariadb to be running automatically whenever I turn on my machine.
Thanks.
Here's what you do.
Open the Services app in the Microsoft Management Console.
hit the start button
type services
hit the enter key.
Make sure the MySQL service is stopped if it is in fact installed. (MariaDB ordinarily is installed as if it were the MySQL service).
scroll down to find the MySQL service
double click it
If you can, push the Stop button.
Start a Windows shell (cmd or powershell) as an administrator.
hit the start button and type cmd or powershell
right click on the program that shows up in the start menu.
click the Run As Administrator item.
Set your working directory: cd C:\Program Files\MariaDB 10.0\bin
In the next commands, some may fail. Just keep going.
Type mysqld --remove
Type mysqld --install
Type mysqld --start
That sequence of operations should remove the service and then install it. Finally it will start it. If you don't use a shell in Administrator mode, this won't work.
You can double check this is right by closing, reopening, and looking at the Services app in the Microsoft Management Console.
Why does this work? Because, like many service .exe programs, MySQL and MariaDB servers are self-installing: they contain the necessary code to install and remove themselves as services.
Just so to have it documented. This is not specific to MariaDB at all, just to MSI in general.
If you forgot to install MSI feature (which, for MariaDB is 'Database Instance') you start the MSI again, click on "Next" in the Welcome page, in the "Change/Repair/Remove" dialog choose "Change", select 'Database Instance' in the feature selection list, "Next" et voila, it will be installed.
If you forgot to check the service checkbox, the easiest is uninstall and install again, it goes really fast.
As for mysql_install_db.exe, it must be run in an elevated console, and you would not have experienced any problems if it had(this is also documented)
Please, avoid "mysqld --install", it is very limited. Only if you want to compromise your computer running mysqld under the most powerful Windows account, then use it.
Instead, mysql_install_db.exe if you need many instances on the machine, or the MSI otherwise.

Cannot connect to Database server (mysql workbench)

Could you help me solve this problem ?
When I try to click "query database" under database menu in Mysql workbench. it gives me an error:
Cannot Connect to Database Server
Your connection attempt failed for user 'root' from your host to server at
127.0.0.1:3306:Can't connect to mysql server on '127.0.0.1'(10061)
Please:
Check that mysql is running on server 127.0.0.1
Check that mysql is running on port 3306 (note: 3306 is the default, but this can be changed)
Check the root has rights to connect to 127.0.0.1 from your address (mysql rights define what clients can connect to the server and from which machines)
Make sure you are both providing a password if needed and using the correct password for 127.0.0.1 connecting from the host address you're connecting from
The issue is likely due to socket authentication being enabled for the root user by default when no password is set, during the upgrade to ubuntu 16.04.
The solution is to revert back to native password authentication. You can do this by logging in to MySQL using socket authentication by doing:
sudo mysql -u root
Once logged in:
ALTER USER 'root'#'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
which will revert back to the native (old default) password authentication.
Now use password as the password whenever required by MySQL.
Try opening services.msc from the start menu search box and try manually starting the MySQL service or directly write services.msc in Run box
It looks like there are a lot of causes of this error.
My Cause / Solution
In my case, the cause was that my server was configured to only accept connections from localhost. I fixed it by following this article: How Do I Enable Remote Access To MySQL Database Server?. My my.cnf file had no skip-networking line, so I just changed the line
bind-address = 127.0.0.1
to
bind-address = 0.0.0.0
This allows connections from any IP, not just 127.0.0.1.
Then, I created a MySql user that could connect from my client machine by running the following terminal commands:
# mysql -u root -p
mysql> CREATE USER 'username'#'1.2.3.4' IDENTIFIED BY 'password';
-> GRANT ALL PRIVILEGES ON *.* TO 'username'#'1.2.3.4' WITH GRANT OPTION;
-> \q
where 1.2.3.4 is the IP of the client you are trying to connect from. If you really have trouble, you can use '%' instead of '1.2.3.4' to allow the user to connect from any IP.
Other Causes
For a fairly extensive list, see Causes of Access-Denied Errors.
Did you try to determine if this is a problem with Workbench or a general connection problem? Try this:
Open a terminal
Type mysql -u root -p -h 127.0.0.1 -P 3306
If you can connect successfully you will see a mysql prompt after you type your password (type quit and Enter there to exit).
Report back how this worked.
I had a similar issue on Mac OS and I was able to fix it this way:
From the terminal, run:
mysql -u root -p -h 127.0.0.1 -P 3306
Then, I was asked to enter the password. I just pressed enter since no password was setup.
I got a message as follows:
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL
connection id is 181. Server version: 8.0.11 Homebrew.
If you succeeded to log into mysql>, run the following command:
ALTER USER 'root'#'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
You should get a message like this:
Query OK, 0 rows affected (0.19 sec)
Now, your password is "password" and your username is "root".
Happy coding :)
Run the ALTER USER command. Be sure to change password to a strong password of your choosing.
sudo mysql # Login to mysql`
Run the below command
ALTER USER 'root'#'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Now you can access it by using the new password.
Ref : https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-ubuntu-18-04
I had to start Workbench as Administrator. Apparently it didn't have the required permissions to connect to my localhost database server process.
Right-click the Workbench shortcut and select Run as Administrator. In the shortcut's Properties window, you can click on "Advanced" and tick the box next to "Run as Administrator" to always run the Workbench with Admin privileges.
The error occur because the mysql server is not starting on your computer. You should start it manually. Do following steps:
Download and install wamp server according to your bit version(32bit or 64bit) in your computer(http://wampserver-64bit.en.softonic.com/) this link allows you to download wamp server for 64bit.
As soon as you install it you can double click and run it..(you can see a icon in the right hand of the taskbar.It may be hidden .so you can click the arrow which show you the hide apps runing).So click the icon and go to Mysql
Then go to Service and there you can find Start/Resume Services click on it..
And now it is done.Open mysql workbench and see.It will work..
I had same problem with Workbench on Ubuntu, problem was with permission.
Find Workbench app
Click button Permissions
Give all permission for this app
I struggled with this problem for awhile and did several reinstalls of MySQL before discovering this.
I know that MySQL server was running OK because I could access all my DB's using the command line.
Hope this works for you.
In MySQL Workbench (5.2.47 CE)
click Mange Server Instances (bottom right corner)
click Connection
in the Connection box select:
Local Instance ($ServerName) - root#127.0.0.1:3306 '<'Standard(TCP/IP)>
click Edit Selected...
under Parameters, Hostname change localhost or 127.0.0.1 to your NetBIOS name
click Test Connection
If this works for you, great. If not change the hostname back to what it was.
Even I faced a similar error when I opened MySQL Workbench.
The solution that worked for me was:
Click on the Start button on a Windows machine
Type services and press Enter
Find MySQL and click on it
On the top side of the left panel, you will find an option as Start the service
Click on Start which is visible as a hyperlink
Forr me reason was that I tried to use newest MySQL Workbench 8.x to connect to MySQL Server 5.1 (both running on Windows Server 2012).
When I uninstalled MySQL Workbench 8.x and installed MySQL Workbench 6.3.10 it successfully connected to localhost database
For those who ignored that the initial error message displaying is the following one:
The name org.freedesktop.secrets was not provided by any .service files
Make sure to install gnome-keyring using the following
sudo apt install gnome-keyring
I tried these steps -
Step 1 : Go to Ubuntu Software Center
Step 2 : Searched for MySql Workbench
Step 3 : And Click on Permissions
Step 4 : Enable Read, add, change or remove saved passwords
Then, enter Login Password
And then, I found that my problem solved
The problem is that MySQL server is not installed.
You can get the installer from here.
Then watch this 6-minute installation tutorial.
If then creating a new connection in MySQL Workbench is not working, make sure you run that connection as root as show below:
If you don't find your .ini file, check this answer (also written below).
Enter "services.msc" on the Start menu search box.
Find MySQL service under Name column, for example, MySQL56.
Right click on MySQL service, and select Properties menu.
Look for "Path To Executable" under General tab, and there is your .ini file, for instance, "C:\Program Files (x86)\MySQL\MySQL Server 5.6\bin\mysqld.exe" --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.6\my.ini" MYSQL56
I was in similar situations before and last time I found it was some Windows update issue(not sure). This time, I opened MySQL workbench and found no connection to my local database. I cannot see my tables, but yesterday I could connect to the database.
I found that my cause is that, after letting my computer sleeping for some time and wake it again, the mysql service is not running.
My solution: restart the service named "mysql" and rerun the workbench. Restarting the service takes a while, but it works.
To be up to date for upper versions and later visitors :
Currently I'm working on a win7 64bit having different tools on it including python 2.7.4 as a prerequisite for google android ...
When I upgraded from WB 6.0.8-win32 to upper versions to have 64bit performance I had some problems for example on 6.3.5-winx64 I had a bug in the details view of tables (disordered view) caused me to downgrade to 6.2.5-winx64.
As a GUI user, easy forward/backward engineering and db server relative items were working well but when we try to Database>Connect to Database we will have Not connected and will have python error if we try to execute a query however the DB server service is absolutely ran and is working well and this problem is not from the server and is from workbench. To resolve it we must use Query>Reconnect to Server to choose the DB connection explicitly and then almost everything looks good (this may be due to my multiple db connections and I couldn't find some solution to define the default db connection in workbench).
As a note : because I'm using latest Xampp version (even in linux addictively :) ), recently Xampp uses mariadb 10 instead of mysql 5.x causes the mysql file version to be 10 may cause some problems such as forward engineering of procedures which can be resolved via mysql_upgrade.exe but still when we try to check a db connection wb will inform about the wrong version however it is not critical and works well.
Conclusion : Thus sometimes db connection problems in workbench may be due to itself and not server (if you don't have other db connection relative problems).
My problem was that the MySQL server wasn't actually installed. I had run the MySQL Installer, but it didn't install the MySQL server.
I reran the installer, click "Add", and then added MySQL server to the list. Now it works fine.
In my case I have just installed MySQL Workbench but after uninstalling MySQL Workbench and installing MySQL installer and is same for both 32 and 64 bit then after it working like a charm. Hope it could be useful.
I just use:
sudo snap connect mysql-workbench-community:ssh-keys
sudo snap connect mysql-workbench-community:password-manager-service
I also struggled with this problem for quite a while.
I came accross this interesting thread from MySQL forum: http://forums.mysql.com/read.php?11,11388,11388#msg-11388
I also came accross (obviously) some good SO Q/A.
It seems that the message mentioned in "user948950" 's question can be coming from a wide range of reasons: log file too big, incorrect mysql.ini file values, spaces in the file path, security/acl issue, old entries in the registry, and so on.
So, after trying for 3h to fix this... I abandonned and decided to do a good old re-install.
This is where this post from (again) this MySQL thread came in useful, I quote:
Gary Williams wrote: Hi Guys,
I've had exactly the same problem and this is how I got it working
for me, starting with a non working installation.
Stop the windows service for any existing mysql installation.
Uninstall Mysql.
As with most uninstalls, old files are left behind. If your directory
is C:\mysql\ etc then delete the innob, etc, files but leave the
directories themselves as well as any existing databases in 'data'.
If your directory is C:\Program Files\ etc, delete all the mysql
directories.
It's now worth running regedit to make sure the old registry entries are deleted as well by the uninstall. If not, delete them.
It's ok to use the new .msi installer (essential files only), however ....
Do not use their default install path! Some genius set a path with spaces in it! Choose the custom install and select a sensible path,
ie, C:\mysql (note from Adrien: C:\mysqldata for ... the data)
Do not choose to alter the security settings. Uncheck the relevant box and the install will complete without having to set a root
password.
I think I have remembered everything.
Good luck
Gary
I did get into troubles when simply copy/pasting the databases I had in my previous "data" directory to the new one. So the work around I found was to export each database (I know... a lot of fun) and then re-import them one by one.
FYI: I used the following command to import C:/<MySQLInstallDir>/My SQL Server x.x/bin/mysql -u root -p <dbName> < "<dirPathOfDump>\<dumpName>.sql", that is for instance C:/mysql/MySQL Server 5.6/bin/mysql -u root -p mySupaCoolDb < "C:\mySupaCoolDbDump20130901.sql"
2022 and beyond this works for me:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
change
bind-address = 127.0.0.1
to
bind-address = 0.0.0.0
Then remember to restart mysql sudo systemctl restart mysql
Initially I was confused, but I was able to solve the problem.
If your workbench was downloaded through the Snap package manager you could easily use this command to solve the problem, very simple:
sudo snap connect mysql-workbench-community:password-manager-service :password-manager-service
Go to services.msc and find MySQL.
If "Log on As" section is 'Network Service', then:
Double click on the MySQL row to open a pop-up
go to "Log on" tab
Select Log on as: "Local System account" and check "Allow service to interact with desktop"
Voilà, now you can start your service on localhost and make sure you enter correct root/user password on your MySQL Workbench, and you are good to go.
If you are using snap to install mysql workbench, try this:
sudo snap connect mysql-workbench-community:password-manager-service :password-manager-service to allow sandboxed package to access password service
askubuntu.com/a/1242777/1621549
This Solution was made as a comment before by Rohim Chou