PHP / PDO - Flush ayrıcalıkları

1 Cevap php

Ben yeni ayrıcalıklar MySQL kullanıcı eklendiğinde MySQL kullanıcı ayrıcalıkları basması bir komut dosyası ile bazı mysql sunucu yönetimini yapıyorum.

Ben sorguları yapmak için PDO sınıfını kullanarak, ama ben ben bir basit yaptığınızda

FLUSH PRIVILEGES;

Ben için, olsun

$connection->exec('FLUSH PRIVILEGES;');

ve

$connection->query('FLUSH PRIVILEGES;');

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'mysql.servers' doesn't exist

Bu PDO sınıfının böyle bir sorgu yapmak mümkün mü ya da ben mysql (i) kullanarak başvurmak gerekiyor?

1 Cevap

Ben sadece kod aşağıdaki kısmını denedim:

$dsn = 'mysql:dbname=mysql;host=127.0.0.1';
$user = 'root';
$password = '********';
try {
    $db = new PDO($dsn, $user, $password);
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $db->query('flush privileges;');
} catch (PDOException $e) {
    var_dump($e);
}

Ve ben açıklayan gibi hata her türlü alamadım.


Are you sure you don't have some problem with you MySQL server ?

Eğer emin kurulum / yapılandırma "kırık değil - Sizin hata mesajı masa" mysql.servers "da mevcut değil ... Ama benim yerel MySQL sunucusunun baktığımızda, böyle bir tablo olduğunu söylüyor "ve böyle böyle bir tablo veya bir şey silmek değil mi?


BTW, it doesn't seem to be some kind of privilege you're not having : if you try to flush privileges gerekli ayrıcalık kalmadan, aşağıdaki hatayı alıyorum: "SQLSTATE[42000]: Syntax error or access violation: 1227 Access denied; you need the RELOAD privilege for this operation"