Mysql5

Da WikiSitech.
Vai alla navigazioneVai alla ricerca

MySQL 5.x - Appunti di gestione

Grant privilegi di accesso al DB

Grant fornendo l'indirizzo IP

mysql -u userLogin --password=passLogin --database=mysql -e "GRANT SELECT ON db.* TO 'user'@'172.16.0.%' IDENTIFIED BY '*****';"

Grant fornendo il FQDN

mysql -u userLogin --password=passLogin --database=mysql -e "GRANT SELECT ON db.* TO 'user'@'%.netsitech.com' IDENTIFIED BY '*****';"

Attivazione del log delle query

mysqld --log=<percorso-del-file-di-log> --user=<utente-che-esegue-il-servizio>

  Esempio:
mysqld --log=/var/log/mysql-queries.log --user=mysql

Comando di backup

di un database specifico

mysqldump [--comments] [--disable-keys] [--hex-blob] -u <utente> -p <database> [table [...]] > <percorso-e-nome-del-file-di-backup>
 Esempio
mysqldump  -u root -p bacula > D:\Backup\MySQL\FullBackupMySQL.sql

esegue il backup del database bacula.

di un gruppo di database

mysqldump --databases --comments --disable-keys --hex-blob -r <percorso-e-nome-del-file-di-backup> -u <utente> -p<password> <database1> <database2> [...]
 Esempio
mysqldump" --databases --comments --disable-keys --hex-blob -r D:\Backup\MySQL\FullBackupMySQL.sql -u root -p****** mysql bacula dotproject

esegue il backup dei database mysql, bacula e dotproject

di tutti i database

mysqldump --all-databases --comments --disable-keys --hex-blob -r <percorso-e-nome-del-file-di-backup> -u <utente> -p<password>
 Esempio
mysqldump --all-databases --comments --disable-keys --hex-blob -r D:\Backup\MySQL\FullBackupMySQL.sql -u root -p******

di un elenco di tabelle (note per prefisso)

mysqldump -u [user] -p databasename `echo "show tables like 'prefix_%';" | mysql -u [user] -p databasename | sed '/Tables_in/d'` > [destination-file].sql

Comando di restore

di un database specifico

mysql -u <utente> -p -D<database> [table [...]] < percorso-e-nome-del-file-di-backup>
 Esempio
mysql  -u root -p -Dbacula < D:\Backup\MySQL\FullBackupMySQL.sql

esegue il restore del contenuto del file FullBackupMySQL.sql sul database bacula.

Analisi delle performance / Script di tuning

Alla pagina web qui indicata è disponibile uno script perl che effettua alcune verifiche sulla istanza in esecuzione di MySQL.

Lo script è archiviato alla versione corrente anche sul repo GITLab Sitech.

Spostamento dei file del database

Per spostare i file del database in una unità diversa è possibile procedere come segue:

  1. Arrestare l'istanza di MySQL
  2. Modificare tutti i riferimenti contenuti nel file di configurazione utilizzato nel lancio dell'istanza (default my.ini)
  3. Spostare i file nella nuova locazione
  4. Avviare l'istanza del database

Problemi di accesso SSL a MySQL

mysql daemon

Per verificare se il supporto a SSL è attivo, è necessario collegarsi al db:

mysql -u <username> -p

ed eseguire il comando:

SHOW VARIABLES LIKE '%ssl%';

Nel caso in cui compaiano le righe:

+---------------+-----------------+
| Variable_name | Value           |
+---------------+-----------------+
| have_openssl  | YES             |
| have_ssl      | YES             |
+---------------+-----------------+

è necessario disattivare il supporto a SSL agendo sulla configurazione del server:

/etc/mysql/mysql.conf.d/mysqld.cnf

aggiungendo la riga:

skip_ssl

e rilanciando il server:

systemctl restart mysql.service


mysql container (docker)

Per disattivare l'utilizzo di SSL, nel docker-compose (definizione dello stack) di avvio, aggiungere il parametro:

--skip_ssl

come nell'esempio seguente:

version: '3.1'
services:
    mysql-test:
        image: mysql:8.0
        restart: always
        command: --skip_ssl --default-authentication-plugin=mysql_native_password

        volumes:
          - mysql-test:/var/lib/mysql

        environment:
            - TZ=Europe/Rome
            - MYSQL_ROOT_PASSWORD=password
            - MYSQL_DATABASE=database-name
            - MYSQL_USER=yyyyyy
            - MYSQL_PASSWORD=xxxxxx

        ports:
            - "3306:3306"

JAVA

  • javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)

Il problema è causato, a partire dalla versione 5.7 del software su server (Community Edition) quando ci si collega con un client che non implementa correttamente le specifiche SSL attese durante l'handshake.
Per risolvere il problema è necessario aggiungere il seguente parametro alla stringa di connessione:

&useSSL=false


Hibernate

Aggiungere le seguenti righe al file di configurazione di Hibernate:

hibernate.connection.useSSL=false
hibernate.connection.requireSSL=false