Adding a new database and user
Table of Contents
Creating a database and user can be completed via a number of means:
- PHPMyAdmin
- Sonassi control panel
- MySQL CLI
- MySQL GUI Desktop Client
MageStack comes with PHPMyAdmin and MySQL CLI installed as standard, but you can also install a desktop application to manage your databases if you wish.
Best Practice
Its always a good idea for consistency to use the same name for the database and user, this keeps permissions tight and ensures clarity of user/db associations.
Naming the database name/user after the purpose of the site helps identify the purpose of the DB.
You should also prefix the database name/user with the domain group in question.
Eg.
example_exaliv - 'example' domain group, for domain example.com, with database name/user 'exaliv' (ie. Magento Live)
example_exasta - 'example' domain group, for domain example.com, with database name/user 'exasta' (ie. Magento Staging)
Creating a Database/User via PHPMyAdmin
Log into PHPMyAdmin as root
, and select 'Users' from the top menu
Click 'Add user'
Enter the details for the user, ensuring you select the checkbox to create a database with the same name.
Creating a Database/User via Sonassi control panel
Visit the Sonassi control panel's Stacks
page, at https://my.sonassi.com/stack.
From there, select your stack, then the Databases
link under the Domain Management
heading on the left hand side.
Enter a database name, and select Create Database
.
The password for the database will be automatically generated and shown in the panel - please note that this password is not stored on the panel for security purposes.
A MySQL user will also be created with the same name as the new MySQL database for reference.
Creating a Database/User via MySQL CLI
Using mysql
CLI, you can execute the following commands to create a user, replace domaingroup_name and password as necessary. Ensure that you escape the special wildcard character (_
) by prefixing it with a backslash (\
).
You can also set connection limits, we've left them as unlimited for the purpose of this example.
CREATE USER 'domaingroup\_name'@'%' IDENTIFIED BY 'mypassword';
GRANT USAGE ON * . * TO 'domaingroup\_name'@'172.16.%.%' IDENTIFIED BY 'mypassword' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE DATABASE IF NOT EXISTS `domaingroup\_name`;
GRANT ALL PRIVILEGES ON `domaingroup\_name` . * TO 'domaingroup\_name'@'172.16.%.%';