Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [MySQL 5] Abilitare privilegio LOCK TABLES

    Ciao a tutti,
    devo eseguire da script una query che prevede il comando "LOCK TABLE".

    Da phpMyAdmin riesco ma da script no.
    Il messaggio di errore restituito non dice nulla (check near ...query...) e la stessa query copiata su phpMyAdmin funziona.

    Isolando le istruzioni ed inserendole separatamente, vedo che lo script accetta ed esegue regolarmente la sola SELECT ma dà errore per i LOCK e UNLOCK.

    Mi chiedo allora se il privilegio LOCK TABLES sia disattivato, ma phphMyAdmin e lo script non sono sempre lo stesso utente?
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  2. #2
    Prova a scriverci qua sia la query completa che stai tentanto di fare sia l'errore (completo) che ti viene restituito.
    Administrator of NAMDesign.Net

  3. #3
    Originariamente inviato da LeaderGL
    Prova a scriverci qua sia la query completa che stai tentanto di fare sia l'errore (completo) che ti viene restituito.
    Succede con qualsiasi query di SELECT. Faccio l'esempio più semplice possibile:

    codice:
    LOCK TABLE tbl WRITE;
    SELECT "hello world";
    UNLOCK TABLES;
    Via phpMyAdmin viene eseguita regolarmente, via script facendo le possibili combinazioni funziona solo quando non ci sono le direttive LOCK e UNLOCK.

    Di default qual è il nome dell'utente MySQL da script?

    [EDIT]
    Errore restituito:
    MySQL error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT 'hello world';
    UNLOCK TABLES' at line 1
    [/EDIT]
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  4. #4
    L'utente che uso da script si chiama "pippo".
    Quello che risulta da phpMyAdmin si chiama "pippo@hostname.com".
    È lo stesso utente, giusto?

    Ho provato dalla console ad assegnare il LOCK TABLES in questo modo:
    mysql> GRANT LOCK TABLES ON dbName.* TO pippo@hostname.com USING THE PASSWORD myPwd;
    ma niente.

    Inoltre: il GRANT di un permesso li riscrive tutti o sovrascrive solo quello dichiarato? (In questo caso LOCK TABLES).

    Qualcuno può segnalarmi un link ad una risorsa valida sui comandi da linea di comando per MySQL?
    Ho cercato invano, qualcosa è qui: http://dev.mysql.com/doc/refman/5.1/...-provided.html
    ma non mi aiuta.

    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  5. #5

    Livello dei privilegi

    Ho trovato questa informazione:

    Privileges exist at one or more of 4 levels: global, database, table, and column.
    LOCK TABLES exists only at the global and database levels.
    Ok, quindi ho modificato l'istruzione nel prompt mysql in questo modo:
    mysql> GRANT LOCK TABLES ON dbName TO pippo@hostname.com USING THE PASSWORD 'myPwd';

    che restituisce l'errore: ERROR 1046 (3D000): No database selected

    Assodato che il database name è corretto, cosa vi sembra errato nella sintassi?
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

  6. #6
    L'errore "No database selected" era restituito perché non avevo prima selezionato il database con:
    CONNECT databaseName

    Tuttavia, dopo aver selezionato il database veniva restituito un altro errore: ERROR 1142: SELECT command denied to user 'pippo'@'hostname.com'

    In realtà il permesso già era "granted", il problema era molto più semplice (grazie a piero.mac):
    3 query = 3 mysql_query()

    mentre io invece inserivo tutte le query nella stessa chiamata di mysql_query.

    Ciao a tutti!
    Emanuele DG
    <?php echo "Proverbio zen(d): vivi ogni giorno come se fosse il ".date('d M Y', time()); ?>
    Intellectual property

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.