Question

Cant access mysql root on new Centos server

I just created a new Centos VPS and then followed the LAMP setup tutorial.

I now want to install Wordpress via SSH (I dont want to do the one click installation process)and I need to login to Mysql to create a new db but when I run this:

mysql -u root -p

and then hit enter to enter a blank password I get this:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

so then I try it again but I enter my root password and it returns this:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

also tried running this:

service mysqld start

which returns

Failed to start mysqld.service: Unit not found.

what do I need to do here?

edit: this is with MariaDB btw

and some more info:

sudo systemctl status mariadb.service

says its enabled and running:

 Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2017-03-29 13:52:43 +07; 2 days ago

and then

sudo rpm -q mariadb-server

shows this:

mariadb-server-5.5.52-1.el7.x86_64

and this:

yum list installed | grep mariadb

returns this:

mariadb-server.x86_64 1:5.5.52-1.el7 @base

and finally when I try running this:

/usr/bin/mysql_secure_installation

I get this

touch: cannot touch ‘.my.cnf.23570’: Permission denied
touch: cannot touch ‘.mysql.23570’: Permission denied
chmod: cannot access ‘.my.cnf.23570’: Permission denied
chmod: cannot access ‘.mysql.23570’: Permission denied

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): 
/usr/bin/mysql_secure_installation: line 232: .my.cnf.23570: Permission denied
/usr/bin/mysql_secure_installation: line 233: .my.cnf.23570: Permission denied
/usr/bin/mysql_secure_installation: line 234: .my.cnf.23570: Permission denied
/usr/bin/mysql_secure_installation: line 236: .my.cnf.23570: Permission denied
/usr/bin/mysql_secure_installation: line 205: .mysql.23570: Permission denied
/usr/bin/mysql_secure_installation: line 207: .mysql.23570: Permission denied

Submit an answer


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Sign In or Sign Up to Answer

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Accepted Answer

Just removed mariadb and reinstalled it and did I think I did something wrong at the setup phase after the mysql_secure_installation part, this time I set a pw for root and I can now login.

A temporary, random root password is generated and stored in the error log, which is /var/log/mysqld.log for an installation by the MySQL Yum repository. You can use this command to see the password:

shell > sudo grep ‘temporary password’ /var/log/mysqld.log

Source: https://www.digitalocean.com/community/questions/mysql-5-7-7-centos-7-el7-access-denied

I’ve got the same issue: right after the 'yum install mariadb-server' the script mysql_secure_installation won’t accept blank root password, saying:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'

I’ve found that it’s because directory /var/lib/mysql is not empty and there were wrong privilegies on the /var/lib/mysql

mariadb honestly tells about it in journalctl -xe:

-- Unit mariadb.service has begun starting up.
Nov 06 15:14:15 openproject.exprem.dom mariadb-prepare-db-dir[15228]: Database MariaDB is not initialized, but the directory /var/lib/mysql is not empty, so initializat
Nov 06 15:14:15 openproject.exprem.dom mariadb-prepare-db-dir[15228]: Make sure the /var/lib/mysql is empty before running mariadb-prepare-db-dir.
Nov 06 15:14:15 openproject.exprem.dom systemd[1]: mariadb.service: control process exited, code=exited status=1
Nov 06 15:14:15 openproject.exprem.dom systemd[1]: Failed to start MariaDB database server.

the solution is:

# chown -R mysql:mysql /usr/local/var/mysql
# rm -rf /var/lib/mysql/*
# systemctl start mariadb.service

and after that mysql_secure_installation script ran correctly

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Become a contributor for community

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

DigitalOcean Documentation

Full documentation for every DigitalOcean product.

Resources for startups and SMBs

The Wave has everything you need to know about building a business, from raising funding to marketing your product.

Get our newsletter

Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.

New accounts only. By submitting your email you agree to our Privacy Policy

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.