Bacula-users

Re: [Bacula-users] [END OF THREAD]Re: Can't run bacula any more.

2017-03-17 23:12:29
Subject: Re: [Bacula-users] [END OF THREAD]Re: Can't run bacula any more.
From: Josip Deanovic <djosip+news AT linuxpages DOT net>
To: bacula-users AT lists.sourceforge DOT net
Date: Sat, 18 Mar 2017 04:11:19 +0100
On Friday 2017-03-17 21:32:13 Erik P. Olsen wrote:
> Hello everybody,
> 
> I would like to express my gratitude to all you nice guys who so
> patiently have provided many good advice. I really do appreciate your
> effort. However, no matter have good these advice were I have not been
> able to get bacula going on this system. I do believe that I have
> issued all necessary commands and scripts more than once and that they
> should work. The problem lies probably in either mariadb or the
> database files which probably are corrupt.
> 
> I have not given up but I will concentrate on getting mariadb correctly
> installed and see if this approach will be profitable.


I will try to recap the whole mysql story you might miss since
you said that you do not have any previous database experience.

- mysql default port is 3306
- mysql can listen on the localhost (in mysql terminology that would
  mean unix socket), 127.0.0.1 or any other IP (be it ipv4 or ipv6)
  which is setup in the mysql main configuration file
- for mysql localhost and 127.0.0.1 IS NOT THE SAME THING
- one can setup some root password for mysql root user (very good idea)
  but for the purposes of testing the setup it is not necessary
- if the password for the mysql root user is set one should always
  either use -p option (when connection as mysql root user to the mysql
  server) on the command line to instruct the mysql client tool that it
  needs to prompt for a mysql root password or as an alternative a
  file /root/.my.cnf should be created that looks like:
  [client]
  # use either localhost or 127.0.0.1 depending on how your mysql
  # server is being configured in the main mysql configuration file
  host=localhost
  user=root
  password="some_very_strong_password"
- at this point no matter whether the mysql root password is set or
  not, system root user will always be able to connect to the mysql
  server using simple mysql command
- one can use "netstat -lnp | grep 3306" to determine if the
  mysql server is listening on some IP or just on the unix socket
- only if mysql server has been configured to listen on 127.0.0.1
  one can use the option "-h 127.0.0.1" to connect to the mysql
  server using mysql client tool.
- mysql server contains mysql database which contains several tables
  needed for its normal operation
- once connected to the mysql server as mysql root user, one can
  use the command "show database" to list the available databases,
  the command "use <some database>" to enter the specified database,
  the command "show tables" to list the tables in the database we
  have entered and so on
- mysql database contains two very important tables (among others):
  user
  db
- the SQL command "select * from mysql.user" would list the whole
  content of the "user" table in the mysql database and it can be
  used to determine if the target user exist and from what hosts
  it should be able to connect
- pretty much the same goes for the mysql.db table
- at this point it would be the best if the both, localhost and
  127.0.0.1 are allowed to connect to the server and to the target
  database (in our case most probably "bacula")
- in mysql if the table in the mysql has been changed manually using
  SQL commands, a command "flush privileges;" has to be issued in
  order for mysql to apply the changes (some mysql commands also
  require flushing privileges), alternatively a mysql server can
  be restarted


So, when setting up the mysql database for use with mysql the
path would be:

1. install the mysql
2. set up the root password and flush privileges or restart the
   mysql server (lame)
3. configure the mysql as you see fit, chose the port and the
   IP/socket it is going to bind/listen and restart the mysql
   server
4. set up the /root/.my.cnf file in accordance to the configuration
   options you have used in step 3.
5. make sure your firewall will not block your mysql connections
6. test mysql connections manually using commands:
   mysql -h localhost -u root -p
   (of course, if you have used 127.0.0.1 you will use that instead
   of localhost)
7. if successful in step 6 we can go to the directory containing
   files:
     create_mysql_database
     make_mysql_tables
     grant_mysql_privileges
   and as a system root user execute them in that order
8. if successful in step 7, set some strong password for the
   bacula user (similarly to the changing password of the mysql
   root user) and do the "flush privileges;" as mysql root user or
   restart the mysql server
9. test the connection manually (in this example I am using mysql
   user "bacula" and the database "bacula" while -p means that
   mysql client tool should prompt for the password):
   mysql -h localhost -u bacula -p bacula
10. if successful in step 9, setup the catalog database connection
   in the bacula-dir.conf like:
   dbname = "bacula"; dbuser = "bacula"; dbpassword = "some_strong_pass"; 
dbaddress = "localhost"
   note that the dbaddress should reflect your mysql setup (so if it's
   configured to bind to 127.0.0.1, use 127.0.0.1, if it's something
   else, use something else
11. test the bacula-dir configuration using the command:
  bacula-dir -t
12. restart the bacula-dir and check if it's running using the command:
  ps aux | grep bacula-dir
13. connect to the bacula-dir using your bconsole tool
14. if step 13 failes, check everything, check system logs, check bacula
   logs, check mysql logs, do the connection tests one more time, debug...


It's pretty strait forward (this is not a sarcasm).

If you are using hostnames instead of IPs then you should make sure
that
- mysql has been setup to support that
- that the host resolves to the IP you believe it should

For the purpose of debugging it would be a good idea to turn off
everything that could stand in the way, e.g. firewall, selinux.


-- 
Josip Deanovic

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Bacula-users mailing list
Bacula-users AT lists.sourceforge DOT net
https://lists.sourceforge.net/lists/listinfo/bacula-users