User Tools

Site Tools


linux:apps:mariadb:mariadb-queries

MariaDB Common Queries

Query Databases

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| nextcloud          |
| performance_schema |
| sitedatabase       |
+--------------------+

Select a database

MariaDB [(none)]> use sitedatabase;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [sitedatabase]> 

Working with databases

Show all available databases in the current MySQL database server

SHOW DATABASES;

Create a database with a specified name if it does not exist in the database server

CREATE DATABASE [IF NOT EXISTS] database_name;

Use a database or change the current database to another database that you are working with:

USE database_name;

Drop a database with a specified name permanently. All physical files associated with the database will be deleted.

DROP DATABASE [IF EXISTS] database_name;

Working with tables

Show all tables in a current database.

SHOW TABLES;

Create a new table

CREATE TABLE [IF NOT EXISTS] table_name( column_list );

Add a new column into a table:

ALTER TABLE table 
ADD [COLUMN] column_name;

Drop a column from a table:

ALTER TABLE table_name
DROP [COLUMN] column_name;

Add index with a specific name to a table on a column:

ALTER TABLE table 
ADD INDEX [name](column, ...);

Add primary key into a table:

ALTER TABLE table_name 
ADD PRIMARY KEY (column_name,...);

Remove the primary key of a table:

ALTER TABLE table_name
DROP PRIMARY KEY;

Drop a table:

DROP TABLE [IF EXISTS] table_name;

Show the columns of a table:

DESCRIBE table_name;

Show the information of a column in a table:

DESCRIBE table_name column_name;

Query Users

MariaDB [(none)]> select host, user, password from mysql.user;
+-----------+----------+-------------------------------------------+
| host      | user     | password                                  |
+-----------+----------+-------------------------------------------+
| localhost | root     | *AF926838A9A0501BA7017D135C123C007497F85B |
| localhost | www-data | *AF926838A9A0501BA7017D135C123C007497F85B |
| localhost | nc-user  | *AF926838A9A0501BA7017D135C123C007497F85B |
+-----------+----------+-------------------------------------------+

MariaDB [(none)]> SELECT User, Db, Host from mysql.db;
+----------+--------------+-----------+
| User     | Db           | Host      |
+----------+--------------+-----------+
| nc-user  | nextcloud    | localhost |
| www-data | sitedatabase | localhost |
+----------+--------------+-----------+

Create Users

CREATE USER 'www-data'@'localhost' IDENTIFIED BY 'your_password';
CREATE USER 'nc-user'@'%' IDENTIFIED BY 'your_password';

Drop Users

Revoke the granted permissions before issuing:

DROP USER 'www-data'@'localhost';
DROP USER 'nc-user'@'%';

Query Users Rights

MariaDB [(none)]> show grants for 'root'@'localhost';
+------------------------------------------------------------------------------------------------+
| Grants for root@localhost                                                                      |
+------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED VIA unix_socket WITH GRANT OPTION |
| GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION                                  |
+------------------------------------------------------------------------------------------------+

MariaDB [(none)]> show grants for 'www-data'@'localhost';
+-----------------------------------------------------------------------------------------------------------------+
| Grants for www-data@localhost                                                                                   |
+-----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'www-data'@'localhost' IDENTIFIED BY PASSWORD '*AF926838A9A0501BA7017D135C123C007497F85B' |
| GRANT ALL PRIVILEGES ON `sitedatabase`.* TO 'www-data'@'localhost'                                              |
+-----------------------------------------------------------------------------------------------------------------+

MariaDB [(none)]> show grants for 'nc-user'@'localhost';
+----------------------------------------------------------------------------------------------------------------+
| Grants for nc-user@localhost                                                                                   |
+----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'nc-user'@'localhost' IDENTIFIED BY PASSWORD '*AF926838A9A0501BA7017D135C123C007497F85B' |
| GRANT ALL PRIVILEGES ON `nextcloud`.* TO 'nc-user'@'localhost'                                                 |
+----------------------------------------------------------------------------------------------------------------+

Grand Users Rights

GRANT ALL PRIVILEGES ON `sitedatabase`.* TO 'www-data'@'localhost'
GRANT ALL PRIVILEGES ON `nextcloud`.* TO 'nc-user'@'localhost'

Migrate Databases

Dump the databases on the original server. Better extract them one-by-one so we don't migrate anything unnecessary. To dump as single databases, use the following commands:

  # mysqldump -u root -p --all-databases > all_databases.sql          <--- [All Databases]
  # mysqldump -u [user] -p --opt [database name] > database_name.sql  <--- [Single Database]
  
  # mysqldump -u root -p --opt sitedatabase > sitedatabase_dump.sql
  # mysqldump -u root -p --opt nextcloud > nextcloud_dump.sql

Once the dump is completed, you are ready to transfer the databases. But databases need to be created first on target server.

  # mysql -u root -p 
  CREATE DATABASE sitedatabase;
  CREATE DATABASE nextcloud;
  quit;

Retore the data to the newly creates databases:

  # mysql -u [user] -p --all-databases < all_databases.sql           <--- [All Databases]
  # mysql -u [user] -p newdatabase < DUMP-SITE-DATABASE.sql          <--- [Single Database]
  
  # mysql -u root -p sitedatabase < sitedatabase_dump.sql
  # mysql -u root -p nextcloud < nextcloud_dump.sql
linux/apps/mariadb/mariadb-queries.txt · Last modified: by 127.0.0.1