def start(self):
 
-        print "Starting MySQL daemon                                     ",
-        errorcode = os.system("/usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid=/var/lib/mysql/%s.pid --max_allowed_packet=%s  &" \
-                               % (glib.fq_hostname,params['mysql.max_allowed_packet']))
-        time.sleep(5)
-        if errorcode:
-            glib.printFailedMessage()
-            return errorcode
-        else:
-            glib.printOkMessage()
-
-        if not os.path.exists('/tmp/mysql.sock'):
-            os.symlink('/var/lib/mysql/mysql.sock', '/tmp/mysql.sock')
+        pid = glib.getPID('mysqld_safe')
+        if pid == 0:        
+            print "Starting MySQL daemon                                     ",
+            errorcode = os.system("/usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid=/var/lib/mysql/%s.pid --max_allowed_packet=%s  &" \
+                                   % (glib.fq_hostname,params['mysql.max_allowed_packet']))
+            time.sleep(5)
+            if errorcode:
+                glib.printFailedMessage()
+                return errorcode
+            else:
+                glib.printOkMessage()
+    
+            if not os.path.exists('/tmp/mysql.sock'):
+                os.symlink('/var/lib/mysql/mysql.sock', '/tmp/mysql.sock')
             
         pid = glib.getPID('bkserverd')
         if pid != 0: