MYSQL-notes

From Wiki at Neela Nurseries
Revision as of 16:31, 6 March 2018 by Ted (talk | contribs) (2018-03-06 - Tuesday, adding some contextual and 'first steps' notes to basic MYSQL configuration article - TMH)
Jump to: navigation, search



OVERVIEW

This wiki article holds Ted's notes on configuring, deploying, backing up and restoring MYSQL database servers and databases.



First Steps

First on a given server we may look for running instances of MYSQL daemon by issuing the process status command `ps` as follows:

   $ ps ax | grep mysql

One or more instances of MYSQL daemon or server may be running. If we're unable to start an interactive session as the database root user, or another database user, it is best to stop all running instances of MYSQL before proceeding with password reset steps. On Ubuntu Linux systems and some similar Linux distributions a general program managing utility named `systemctl` can be called to start, to stop, to reload and perform a few other basic actions with various server oriented programs. We can stop most normal MYSQL server instances with the systemctl invocation:

   $ sudo systemctl stop mysql

In cases where systemctl does not stop a given server program from running, the older classic Unix `kill` command can be invoked, where 'pid' is the process id of the MYSQL server to be stopped:

   $ sudo kill [pid]

It may be necessary to add an option to force the kill-process utility to actually stop the server from running, and that option is '-9':

   $ sudo kill -9 [pid]

Per a couple of the web references in the end section of this article, MYSQL server can be started in a way that it won't require any root password when called to start an interactive session with root user. Here are a two versions of the 'mysqld_safe' invocation:

   $ sudo mysqld_safe --skip-grant-tables &

 

   $ sudo mysqld_safe --skip-grant-tables --skip-networking &


MYSQL Reset Root Password

mysql> select Host, User, authentication_string from user;
+---------------+------------------+-------------------------------------------+
| Host          | User             | authentication_string                     |
+---------------+------------------+-------------------------------------------+
| localhost     | root             | *7DED8F04F1F0C0639D9631FEFFDA4539EE31DD17 |
| ubuntu-spare-2| root             | *7DED8F04F1F0C0639D9631FEFFDA4539EE31DD17 |
| 127.0.0.1     | root             | *7DED8F04F1F0C0639D9631FEFFDA4539EE31DD17 |
| ::1           | root             | *7DED8F04F1F0C0639D9631FEFFDA4539EE31DD17 |
| localhost     | debian-sys-maint | *E8C7D3BB3A512229A60E85B7A2A23484ED003A94 |
| localhost     | mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost     | wikiuser         | *F05B4F375EA1AC92DB6916D2F25E41B5689539FD |
+---------------+------------------+-------------------------------------------+
7 rows in set (0.02 sec)

mysql> update user set authentication_string=PASSWORD("new-root-password-to-mysql") where User='root';
Query OK, 4 rows affected, 1 warning (0.02 sec)
Rows matched: 4  Changed: 4  Warnings: 1

mysql> select Host, User, authentication_string from user;
+---------------+------------------+-------------------------------------------+
| Host          | User             | authentication_string                     |
+---------------+------------------+-------------------------------------------+
| localhost     | root             | *A070565E56DA8DBCF462EEE4A67C59881CC60597 |
| ubuntu-spare-2| root             | *A070565E56DA8DBCF462EEE4A67C59881CC60597 |
| 127.0.0.1     | root             | *A070565E56DA8DBCF462EEE4A67C59881CC60597 |
| ::1           | root             | *A070565E56DA8DBCF462EEE4A67C59881CC60597 |
| localhost     | debian-sys-maint | *E8C7D3BB3A512229A60E85B7A2A23484ED003A94 |
| localhost     | mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost     | wikiuser         | *F05B4F375EA1AC92DB6916D2F25E41B5689539FD |
+---------------+------------------+-------------------------------------------+
7 rows in set (0.00 sec)

mysql>


Commands to grant all privileges to a user and to show privileges of a MYSQL user:


user@localhost:~/projects/database-back-ups$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3316
Server version: 5.1.54-1ubuntu4 (Ubuntu)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> grant all privileges on *.* to 'jose'@'localhost' identified by 'database_pass_phrase' with grant option;

mysql> show grants for 'jose'@'localhost';

+---------------------------------------------------------------------------------------------------------------------------------------+
| Grants for jose@localhost                                                                                                              |
+---------------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'jose'@'localhost' IDENTIFIED BY PASSWORD '*0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123' WITH GRANT OPTION |
+---------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)


  .
   .
  .
   .


MYSQL Multiple Servers On One Host



References

- 2017-07-xx -

- 2017-07-27 Thursday -