DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(mysql.info) changing-mysql-user

Info Catalog (mysql.info) load-data-local (mysql.info) security
 
 5.7.5 How to Run MySQL as a Normal User
 ---------------------------------------
 
 On Windows, you can run the server as a Windows service using a normal
 user account.
 
 On Unix, the MySQL server `mysqld' can be started and run by any user.
 However, you should avoid running the server as the Unix `root' user
 for security reasons. To change `mysqld' to run as a normal
 unprivileged Unix user USER_NAME, you must do the following:
 
   1. Stop the server if it's running (use `mysqladmin shutdown').
 
   2. Change the database directories and files so that USER_NAME has
      privileges to read and write files in them (you might need to do
      this as the Unix `root' user):
 
           shell> chown -R USER_NAME /PATH/TO/MYSQL/DATADIR
 
      If you do not do this, the server will not be able to access
      databases or tables when it runs as USER_NAME.
 
      If directories or files within the MySQL data directory are
      symbolic links, you'll also need to follow those links and change
      the directories and files they point to.  `chown -R' might not
      follow symbolic links for you.
 
   3. Start the server as user USER_NAME. If you are using MySQL 3.22 or
      later, another alternative is to start `mysqld' as the Unix `root'
      user and use the -user=USER_NAME option. `mysqld' starts up, then
      switches to run as the Unix user USER_NAME before accepting any
      connections.
 
   4. To start the server as the given user automatically at system
      startup time, specify the username by adding a `user' option to the
      `[mysqld]' group of the `/etc/my.cnf' option file or the `my.cnf'
      option file in the server's data directory. For example:
 
           [mysqld]
           user=USER_NAME
 
 If your Unix machine itself isn't secured, you should assign passwords
 to the MySQL `root' accounts in the grant tables. Otherwise, any user
 with a login account on that machine can run the `mysql' client with a
 -user=root option and perform any operation.  (It is a good idea to
 assign passwords to MySQL accounts in any case, but especially so when
 other login accounts exist on the server host.) See 
 post-installation.
 
Info Catalog (mysql.info) load-data-local (mysql.info) security
automatically generated byinfo2html