Difference between revisions of "Package:Mysql-community"

From Funtoo
Jump to: navigation, search
(First Run)
(Usage)
Line 38: Line 38:
 
mysql is now blinking at you ready for SQL statements.
 
mysql is now blinking at you ready for SQL statements.
  
Root use is discouraged, for every database you require, create a user, and a database specific for the application, then allow the user access with as stripped down as possible permissions.  We will use phpBB examples of creating a phpBB user & database.
+
Root use is discouraged, for every database you require, create a user, and a database specific for the application, then allow the user access with as stripped down as possible permissions.  We will use oleg examples of creating a oleg user & database.
  
 
{{console|body=###i## mysql -u root -p
 
{{console|body=###i## mysql -u root -p
 
Enter password:  
 
Enter password:  
mysql> ##i##CREATE USER 'phpbb'@'localhost' IDENTIFIED BY 'changeme';
+
mysql> ##i##CREATE USER 'oleg'@'localhost' IDENTIFIED BY 'password';
mysql> ##i##CREATE DATABASE IF NOT EXISTS `phpbb` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
+
mysql> ##i##GRANT ALL PRIVILEGES ON *.* TO 'oleg'@'localhost'
mysql> ##i##GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `phpbb`.* TO 'phpbb'@'localhost' IDENTIFIED BY 'changeme';
+
    ->##i##WITH GRANT OPTION;
mysql> ##i##\q
+
mysql> ##i##
 
}}
 
}}
  

Revision as of 14:25, January 29, 2019

Mysql-community

   Tip

We welcome improvements to this page. To edit this page, Create a Funtoo account. Then log in and then click here to edit this page. See our editing guidelines to becoming a wiki-editing pro.

   Note

mysql-community is what known as MySQL, version 8. The name mysql-community is just a distinct ebuild name to point a significant changes compared to version 5.x and that mysql-community is an open source version, not enterprise commercial software.

MySQL is the M in the lamp/lemp/llmp stack. It is a popular, & common database that accepts SQL statements. dev-db/mariadb & dev-db/percona-server are drop in replacements for MySQL.

Installation

root # emerge mysql-community

First Run

MySQL requires configuration upon instillation.

To deploy MySQL:

root # mysqld --initialize-insecure --default_authentication_plugin=mysql_native_password --datadir=/var/lib/mysql

This will create MySQL base directory, by default /var/lib/mysql as well as an empty password for your initial database setup. This is preliminary step before setting up your password, see below

Init

To start mysql:

root # rc-service mysql start

To start upon boot:

root # rc-update add mysql default

Secure installation

Now, run mysql_secure_installation. You will be promted for setting your password, as well as other required steps.

root # mysql_secure_installation

Usage

To use mysql you will need to run MySQL as the funtoo root user, logging in as the mysql database root user. The system root user is not the same as the database root user, and passwords for both should be different.

root # mysql -u root -p
Enter password: 
mysql>

mysql is now blinking at you ready for SQL statements.

Root use is discouraged, for every database you require, create a user, and a database specific for the application, then allow the user access with as stripped down as possible permissions. We will use oleg examples of creating a oleg user & database.

root # mysql -u root -p
Enter password: 
mysql> CREATE USER 'oleg'@'localhost' IDENTIFIED BY 'password';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'oleg'@'localhost'
     ->WITH GRANT OPTION;
mysql> 

Logging

By default MySQL logs every action, including leaving plain text passwords in its history file.

To remove the history file:

root # rm /root/.mysql_history

To automatically remove future history:

root # ln -s /dev/null /root/.mysql_history