Failed to issue method call: Unit mysqld.service failed to load: No such file or directory.

# mysql –version
mysql Ver 15.1 Distrib 5.5.37-MariaDB, for Linux (x86_64) using readline 5.1

I ran the mysql command on the system – I received the error message shown below:


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

I checked to see if the mysqld service was running and found it was not.


# systemctl status mysqld.service
mysqld.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)

When I tried to start the service, it wouldn’t start.


# service mysqld start
Redirecting to /bin/systemctl start  mysqld.service
Failed to issue method call: Unit mysqld.service failed to load: No such file or directory.
# systemctl start mysqld.service
Failed to issue method call: Unit mysqld.service failed to load: No such file or directory.

I checked the contents of the /etc/my.cnf file and saw the following:


[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

I checked for the existence of files and directories


# ls -ld /var/lib/mysql
drwxr-xr-x. 19 mysql mysql 4096 Oct 14 23:46 /var/lib/mysql


[root@localhost install]# ls -l /var/lib/mysql/mysql.sock
srwxrwxrwx. 1 mysql mysql 0 Sep 29 15:05 /var/lib/mysql/mysql.sock


# ls -l /var/log/mariadb/mariadb.log
-rw-r-----. 1 mysql mysql 0 Oct  5 20:49 /var/log/mariadb/mariadb.log


# ls -l /var/run/mariadb/mariadb.pid
ls: cannot access /var/run/mariadb/mariadb.pid: No such file or directory

I didn’t see any mariadb.pid file

When I checked the files in the includedir directory, I saw the following:


# ls -l /etc/my.cnf.d
total 12
-rw-r--r--. 1 root root 295 Apr 15  2014 client.cnf
-rw-r--r--. 1 root root 232 Apr 15  2014 mysql-clients.cnf
-rw-r--r--. 1 root root 744 Apr 15  2014 server.cnf

So..how to start the service


# systemctl start mariadb.service
# systemctl status mysqld service
mysqld.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)
service.service
   Loaded: not-found (Reason: No such file or directory)
   Active: inactive (dead)


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

When I was using CentOS 6, I had MySQL rather than MariaDB – didn’t know I needed to start the MariaDB RDBMS service on the CentOS 7 system using a command referencing mariadb rather mysqld. I assumed I could reference mysqld to start the service.

To have the MariaDB service start automatically each time the system boots, issue the command

“systemctl enable mariadb.service”. After you have started the service, also issue the command

“mysql_secure_installation”.


# mysql_secure_installation
/usr/bin/mysql_secure_installation: line 379: find_mysql_client: command not found

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):
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

You already have a root password set, so you can safely answer 'n'.

Change the root password? [Y/n] n
 ... skipping.

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
ERROR 1146 (42S02) at line 1: Table 'mysql.servers' doesn't exist
 ... Failed!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Note on copying files to the maria DB!

If you copy DB files to /var/lib/mysql directory from the hard drive of the prior CentOS 6 system to the new CentOS 7 system to have all of the databases from the old system available on the new system, so that appeared to be the reason that the mysql_secure_installation, which can be found in /usr/bin, did not accept my just hitting Enter for the password initially. When I entered the root password for MySQL on the old system, it was accepted. And I was able finally get a prompt where I could enter SQL commands using that password with mysql -u root -p .


# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 11
Server version: 5.5.37-MariaDB MariaDB Server

Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

So the 3 steps to enable and run MariaDB are as follows, assuming it was previously installed during the initial setup for the system or with yum install mariadb mariadb-server:


# systemctl start mariadb.service
# systemctl enable mariadb.service
# mysql_secure_installation 

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.