In DirectAdmin, if we are getting the error "Error connecting to MySQL: Access
denied for user: 'da_admin@localhost' (Using password: YES)" please follow the
steps as shown below for the fix:
1) Make sure the root mysql password works. If you know it, skip to 2.
The mysql root password can be found in the
/usr/local/directadmin/scripts/setup.txt if it has not been deleted. It's under the header "mysql=". If it cannot be found, then mysqld will have to be
restarted with the --skip-grant-tables option:
service mysqld stop (Redhat)
mysqld_safe --skip-grant-tables &
That should start up mysql without the need for a root password. Once in, type
use mysql
UPDATE mysql.user SET password=PASSWORD('newpass') WHERE user='root';
FLUSH PRIVILEGES;
quit
That will reset the root password for you.
Type "killall -9 mysqld_safe; killall -9 mysqld" to shut down mysqld.
Start it up again with
/sbin/service mysqld start
2) Once the root mysql password is set and known, then you can begin the
process of resetting the da_admin mysql user.
Type:
mysql -uroot -p
Then press enter. You'll be asked for the password. Once in mysql, type:
GRANT ALL PRIVILEGES ON *.* TO da_admin@localhost IDENTIFIED BY 'newdapass'
WITH GRANT OPTION;
FLUSH PRIVILEGES;
quit
That should set the password for da_admin in mysql.
3) Now we need to make sure it's setup correctly for DA to use. Edit
/usr/local/directadmin/conf/mysql.conf and set
user=da_admin
passwd=newdapass