====== MySQL/MariaDB ====== MariaDB je fork MySQL. Home page MySQL: http://www.mysql.com/\\ Home page MariaDB: https://mariadb.org/\\ MySQL Workbench: http://www.mysql.com/products/workbench/ ===== JDBC ===== **MySQL Driver:** com.mysql.jdbc.Driver\\ **MariaDB Driver:** org.mariadb.jdbc.Driver ===== Instalace a nastavení MariaDB ===== **Root heslo k MariaDB:** --tajne heslo-- **Instalace balíků** shell# yum install mariadb-server.x86_64 **Start a automatické spouštění** shell# systemctl start mariadb.service shell# systemctl status mariadb.service shell# systemctl enable mariadb.service **Nastavení hesla pro uživatele root** shell# /usr/bin/mysqladmin -u root password shell# /usr/bin/mysqladmin -u root -h isn password **Příkaz pro připojení k db jako uživatel root** shell# mysql -p -u root **Smazat databázi test a anonymního uživatele** mysql> DROP DATABASE test; mysql> DELETE FROM mysql.user WHERE User=''; ===== Zálohovací script ===== Zálohuje a komprimuje všechny databáze MySQL/MariaDB. #!/bin/bash # # Author: Jiří Blažek (blazek@isn.cz) # App: MySQL/MariaDB backup script FOR ALL DATABASES # # absolute path home APH=$(dirname $(readlink -f $0)) # app conf MYSQL_USER="root" MYSQL_PASS="secret-password" MYSQL_BIN="/usr/bin/mysql" MYSQL_DUMP="/usr/bin/mysqldump" BZIP_BIN="/usr/bin/bzip2 -9" BACKUP_DIR="/backup/mysql" # log function log() { echo $(/bin/date +"%Y-%m-%d %k:%M:%S") $@ } LOG_PATH="$APH/backup-mysql.log" # log info log "[INFO] START backup MySQL databases" >> $LOG_PATH # get all db names of mysql GET_DB_NAMES=$($MYSQL_BIN --user=$MYSQL_USER --password=$MYSQL_PASS -s -N -e "SHOW DATABASES;" | grep -Ev 'information_schema|performance_schema|test|mysql') # backup all databases for DB_NAME in $GET_DB_NAMES; do $MYSQL_DUMP --user=$MYSQL_USER --password=$MYSQL_PASS --default-character-set=utf8 $DB_NAME | $BZIP_BIN > $BACKUP_DIR/$DB_NAME-$(date '+%Y-%m-%d-%H-%M-%S').bz2 if [ $? -eq 0 ]; then log "[INFO] Database backup OK = "$DB_NAME >> $LOG_PATH else log "[ERROR] Database backup failed = "$DB_NAME >> $LOG_PATH exit 1 fi done # log info log "[INFO] END backup MySQL databases" >> $LOG_PATH ===== Vytvoření databáze ===== Vytvoření databáze example s nastavením práv na databázi example pro uživatele example. Vytvoření databáze v DBMS MariaDB pro example.com. shell# mysql -p -u root ... MariaDB [(none)]> CREATE DATABASE example CHARACTER SET utf8; MariaDB [(none)]> GRANT ALL privileges ON example.* TO example@localhost IDENTIFIED BY '--tajne heslo--'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> QUIT; ===== Export DB schéma ===== shell> mysqldump -p -u root --no-data dbname > schema.sql ===== Import dump databáze ===== shell> mysql -p -u root --default-character-set=utf8 dbname < /pathdump/dump.sql