new file: mysql_secure_installation.mdwn
authorPhilip Durbin <philipdurbin@gmail.com>
Tue, 24 Apr 2012 04:21:57 +0000 (00:21 -0400)
committerPhilip Durbin <philipdurbin@gmail.com>
Tue, 24 Apr 2012 04:21:57 +0000 (00:21 -0400)
mysql/mysql_secure_installation.mdwn [new file with mode: 0644]

diff --git a/mysql/mysql_secure_installation.mdwn b/mysql/mysql_secure_installation.mdwn
new file mode 100644 (file)
index 0000000..058120f
--- /dev/null
@@ -0,0 +1,158 @@
+Starting mysqld for the first time
+
+    [root@server1 ~]# service mysqld start
+    Initializing MySQL database:  Installing MySQL system tables...
+    OK
+    Filling help tables...
+    OK
+
+    To start mysqld at boot time you have to copy
+    support-files/mysql.server to the right place for your system
+
+    PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
+    To do so, start the server, then issue the following commands:
+
+    /usr/bin/mysqladmin -u root password 'new-password'
+    /usr/bin/mysqladmin -u root -h server1.greptilian.com password 'new-password'
+
+    Alternatively you can run:
+    /usr/bin/mysql_secure_installation
+
+    which will also give you the option of removing the test
+    databases and anonymous user created by default.  This is
+    strongly recommended for production servers.
+
+    See the manual for more instructions.
+
+    You can start the MySQL daemon with:
+    cd /usr ; /usr/bin/mysqld_safe &
+
+    You can test the MySQL daemon with mysql-test-run.pl
+    cd /usr/mysql-test ; perl mysql-test-run.pl
+
+    Please report any problems with the /usr/bin/mysqlbug script!
+
+                                                               [  OK  ]
+    Starting mysqld:                                           [  OK  ]
+    [root@server1 ~]# 
+
+Show databases, users, run `/usr/bin/mysql_secure_installation`, show again:
+
+    [root@server1 ~]# mysql -e 'show databases'
+    +--------------------+
+    | Database           |
+    +--------------------+
+    | information_schema |
+    | mysql              |
+    | test               |
+    +--------------------+
+    [root@server1 ~]# mysql -e "SELECT Host,User,Password FROM mysql.user"
+    +------------------------+------+----------+
+    | Host                   | User | Password |
+    +------------------------+------+----------+
+    | localhost              | root |          |
+    | server1.greptilian.com | root |          |
+    | 127.0.0.1              | root |          |
+    | localhost              |      |          |
+    | server1.greptilian.com |      |          |
+    +------------------------+------+----------+
+    [root@server1 ~]# mysql -e "SHOW GRANTS for 'root'@'localhost'"
+    +---------------------------------------------------------------------+
+    | Grants for root@localhost                                           |
+    +---------------------------------------------------------------------+
+    | GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
+    +---------------------------------------------------------------------+
+    [root@server1 ~]# mysql -e "SHOW GRANTS for ''@'localhost'"
+    +--------------------------------------+
+    | Grants for @localhost                |
+    +--------------------------------------+
+    | GRANT USAGE ON *.* TO ''@'localhost' |
+    +--------------------------------------+
+    [root@server1 ~]# 
+    [root@server1 ~]# /usr/bin/mysql_secure_installation
+
+
+
+
+    NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
+          SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
+
+
+    In order to log into MySQL to secure it, we'll need the current
+    password for the root user.  If you've just installed MySQL, 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): 
+    OK, successfully used password, moving on...
+
+    Setting the root password ensures that nobody can log into the MySQL
+    root user without the proper authorisation.
+
+    Set root password? [Y/n] Y
+    New password: 
+    Re-enter new password: 
+    Password updated successfully!
+    Reloading privilege tables..
+     ... Success!
+
+
+    By default, a MySQL installation has an anonymous user, allowing anyone
+    to log into MySQL 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, MySQL 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
+     ... Success!
+
+    Cleaning up...
+
+
+
+    All done!  If you've completed all of the above steps, your MySQL
+    installation should now be secure.
+
+    Thanks for using MySQL!
+
+
+    [root@server1 ~]# 
+    [root@server1 ~]# mysql -u root -p -e 'show databases'
+    Enter password: 
+    +--------------------+
+    | Database           |
+    +--------------------+
+    | information_schema |
+    | mysql              |
+    +--------------------+
+    [root@server1 ~]# mysql -u root -p -e "SELECT Host,User FROM mysql.user"
+    Enter password: 
+    +-----------+------+
+    | Host      | User |
+    +-----------+------+
+    | 127.0.0.1 | root |
+    | localhost | root |
+    +-----------+------+
+    [root@server1 ~]#