I know what the linux command chown does, I used it to change the ownership or group of a file.

If there is a MySQL installation on a Ubuntu machine, I saw some people doing the following thing:

sudo chown mysql:mysql /data/tmp

I get confused, I know the meaning of the above command, which is to change the owner of /data/tmp to user 'mysql' and change the group of it to 'mysql' group.


1. Why would one run the above command?
2. Where do the 'mysql' owner and group come from? Does the installation of MySQL on a Linux machine automatically create the 'mysql' user and group?

  • 2
    2. Yes, many daemons are run with a dedicated user/group which is usually created when the package is installed. Nov 30, 2011 at 10:45
  • ...and 1.) because otherwise the DBMS won't be able to read/write the data
    – symcbean
    Nov 30, 2011 at 11:39
  • Symcbean, do you mean those .frm .MYD .MYI files can be created by MySQL to the directory /data/tmp/ when a table created?
    – Mellon
    Nov 30, 2011 at 11:46
  • @symcbean why the mysql installtion itself does'nt change the ownerships automaticly at the installation stage?
    – Hanan
    Nov 30, 2011 at 13:14
  • @Hanan N.: typically most installers will do this at the same time as creating the users (i.e. when they're running as root). But /data/tmp is NOT a default path for any mysql data files - if you change the paths after installation, then you need to make suer that the new locations are accessible.
    – symcbean
    Nov 30, 2011 at 13:27

2 Answers 2


The installation of the MySQL package in Ubuntu creates a mysql user and a group of the same name. This is the user that the MySQL daemon process runs under, and many MySQL-related files belong to that user. If you install MySQL manually, you may need to create the user yourself.

chown mysql:mysql /data/tmp (executed as root) makes the user mysql and the group mysql the owning user and owning group of the file or directory /data/tmp. I don't know why these people did it, you'd have to ask them.


There are some reasons to do it like this way.

  1. When you are installing mysql on your Linux machine. mysql user and groups installed automatically.

  2. Why user/group is required for this action ? It s required for security reasons. You want to give a permission to user which one will use the mysql. And also you give the permission on /data/tmp . Because your database files stored in there by default.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .