MySQL

Page last edited 1 577 giorni un'ora fa
Da wiki.betaingegneria.it.

Errori più comuni[modifica]

Questo si manifesta dal 5.2 in su:

  mysqldump -u [username] -p [database_name] > [database_name].sql

  mysqldump: Got error: 1044: Access denied for user '[username]'@'[hostname]' to database '[database_name]' when using LOCK TABLES

Soluzione: aggiungere l'opzione --single-transaction

Come esportare su file in modo che scriva null sulle colonne nulle[modifica]

La sintassi generale è

 SELECT [elenco campi]   INTO OUTFILE [nome file]
   FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '|' ESCAPED BY 
   LINES TERMINATED BY '\n'
 FROM [schema.tabella];

Se si omette l'opzione ESCAPED BY, i null verranno esportati come \N, mentre così come è scritto, verranno esportati come null.

Questa cosa mi ha dato fastidio quando ho cercato di importare in Oracle tabelle di un database MySQL.

Problema con i grant[modifica]

Per una certa versione di MySQL ho questo problema:

  mysql> grant execute on scheme.user_update to 'myuser' identified by 'xxxxx'; 
  ERROR 1144 (42000): Illegal GRANT/REVOKE command; please consult the manual to see which privileges can be used

Workaround:

  mysql> grant execute on scheme.* to myuser; 
  Query OK, 0 rows affected (0.00 sec)

La versione in cui si manifesta l'errore è

  mysql> select version();
  +------------+
  | version()  |
  +------------+
  | 5.1.65-cll |
  +------------+
  1 row in set (0.00 sec)


Altri problemi con i grant[modifica]

  mysql> grant execute on sp_vehicle_insert to progeie;
  ERROR 1144 (42000): Illegal GRANT/REVOKE command; please consult the manual to see which privileges can be used

Soluzione:

  mysql> grant execute on procedure sp_vehicle_insert to progeie;

Altri esempi con i grant[modifica]

L'equivalente del grant connect di Oracle è usage:

  GRANT SELECT,INSERT,UPDATE,DELETE,USAGE ON *.* TO 'jeffrey'@'localhost' WITH MAX_QUERIES_PER_HOUR 90;