Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
en:server:services:mariadb [2022/05/30 07:36] – created dan | en:server:services:mariadb [2023/02/14 21:42] (current) – [Check/update database] switched to mariadb-* instead of mysql* dan | ||
---|---|---|---|
Line 33: | Line 33: | ||
</ | </ | ||
+ | ===== Create local user ===== | ||
+ | |||
+ | < | ||
+ | mysql -u root -p | ||
+ | </ | ||
+ | < | ||
+ | CREATE USER ' | ||
+ | FLUSH PRIVILEGES; | ||
+ | EXIT; | ||
+ | </ | ||
+ | |||
+ | ===== Create remote user ===== | ||
+ | |||
+ | < | ||
+ | mysql -u root -p | ||
+ | </ | ||
+ | < | ||
+ | CREATE USER ' | ||
+ | FLUSH PRIVILEGES; | ||
+ | EXIT; | ||
+ | </ | ||
+ | |||
+ | ===== Create database ===== | ||
+ | |||
+ | < | ||
+ | mysql -u root -p | ||
+ | </ | ||
+ | < | ||
+ | CREATE DATABASE db_name; | ||
+ | GRANT ALL ON db_name.* to ' | ||
+ | FLUSH PRIVILEGES; | ||
+ | \q | ||
+ | </ | ||
+ | or something more detailed | ||
+ | < | ||
+ | GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, DROP, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON db_name_here.* TO ' | ||
+ | </ | ||
+ | |||
+ | ===== Show and delete database ===== | ||
+ | |||
+ | < | ||
+ | mysql -u root -p | ||
+ | SHOW DATABASES; | ||
+ | DROP DATABASE db_name; | ||
+ | FLUSH PRIVILEGES; | ||
+ | EXIT; | ||
+ | </ | ||
+ | |||
+ | ===== Show and delete user ===== | ||
+ | |||
+ | < | ||
+ | mysql -u root -p | ||
+ | SELECT User FROM mysql.user; | ||
+ | DROP USER user_name@localhost; | ||
+ | FLUSH PRIVILEGES; | ||
+ | EXIT; | ||
+ | </ | ||
+ | |||
+ | ===== Set or change password ===== | ||
+ | |||
+ | < | ||
+ | SET PASSWORD FOR ' | ||
+ | FLUSH PRIVILEGES; | ||
+ | EXIT; | ||
+ | </ | ||
+ | |||
+ | ===== Backup database ===== | ||
+ | |||
+ | You can dump all databases with the following command '' | ||
+ | |||
+ | Or use the following script, which contains: | ||
+ | * separate databases (when you extract the file) | ||
+ | * define after how many days the old backups should be deleted | ||
+ | * email notification | ||
+ | |||
+ | < | ||
+ | #!/bin/bash | ||
+ | # Shell script to backup MySQL database | ||
+ | |||
+ | # Set these variables | ||
+ | MyUSER=" | ||
+ | MyPASS=" | ||
+ | MyHOST=" | ||
+ | |||
+ | # Backup Dest directory | ||
+ | DEST="/ | ||
+ | |||
+ | # Email for notifications | ||
+ | # EMAIL=" | ||
+ | # How many days old files must be to be removed | ||
+ | DAYS=" | ||
+ | |||
+ | # Linux bin paths | ||
+ | MYSQL=" | ||
+ | MYSQLDUMP=" | ||
+ | GZIP=" | ||
+ | |||
+ | # Get date in dd-mm-yyyy format | ||
+ | NOW=" | ||
+ | |||
+ | # Create Backup sub-directories | ||
+ | MBD=" | ||
+ | install -d $MBD | ||
+ | |||
+ | # DB skip list | ||
+ | SKIP=" | ||
+ | performance_schema" | ||
+ | |||
+ | # Get all databases | ||
+ | DBS=" | ||
+ | |||
+ | # Archive database dumps | ||
+ | for db in $DBS | ||
+ | do | ||
+ | skipdb=-1 | ||
+ | if [ " | ||
+ | then | ||
+ | for i in $SKIP | ||
+ | do | ||
+ | [ " | ||
+ | done | ||
+ | fi | ||
+ | |||
+ | if [ " | ||
+ | FILE=" | ||
+ | $MYSQLDUMP -h $MyHOST -u $MyUSER -p$MyPASS $db > $FILE | ||
+ | fi | ||
+ | done | ||
+ | |||
+ | # Archive the directory, send mail and cleanup | ||
+ | cd $DEST | ||
+ | tar -cf $NOW.tar $NOW | ||
+ | $GZIP -9 $NOW.tar | ||
+ | |||
+ | #echo -e " | ||
+ | rm -rf $NOW | ||
+ | |||
+ | # Remove old files | ||
+ | find $DEST -mtime +$DAYS -exec rm -f {} \; | ||
+ | </ | ||
+ | |||
+ | Use [[en/ | ||
+ | ===== Restore database ===== | ||
+ | |||
+ | < | ||
+ | mysql -u root -p db_name < database.sql | ||
+ | </ | ||
+ | |||
+ | ===== Check/ | ||
+ | |||
+ | Upon a major version release of mariadb (for example mariadb-10.7.4-1 to mariadb-10.8.3-1), | ||
+ | |||
+ | - upgrade the package(s) | ||
+ | - restart the daemon | ||
+ | - run mariadb-upgrade | ||
+ | |||
+ | < | ||
+ | systemctl restart mariadb.service | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | mariadb-upgrade -u root -p | ||
+ | </ | ||
+ | |||
+ | To check all tables in all databases: | ||
+ | < | ||
+ | mariadb-check --all-databases -u root -p -c | ||
+ | </ | ||
+ | |||
+ | To analyze all tables in all databases: | ||
+ | < | ||
+ | mariadb-check --all-databases -u root -p -a | ||
+ | </ | ||
+ | |||
+ | To repair all tables in all databases: | ||
+ | < | ||
+ | mariadb-check --all-databases -u root -p -r | ||
+ | </ | ||
+ | |||
+ | To optimize all tables in all databases: | ||
+ | < | ||
+ | mariadb-check --all-databases -u root -p -o | ||
+ | </ | ||
+ | |||
+ | All " | ||
+ | < | ||
+ | systemctl restart mariadb.service | ||
+ | mariadb-upgrade -u root -p | ||
+ | mariadb-check --all-databases -u root -p -c | ||
+ | mariadb-check --all-databases -u root -p -a | ||
+ | mariadb-check --all-databases -u root -p -r | ||
+ | mariadb-check --all-databases -u root -p -o | ||
+ | </ |