我正在使用以下脚本:
https://github.com/DanWin/hosting
此文件中的文件:https://github.com/DanWin/hosting/blob/master/var/www/common.php使用了以下功能:
function add_mysql_user(PDO $db, string $password) : string {
$mysql_user = '';
$stmt = $db->prepare('SELECT null FROM users WHERE mysql_user = ?;');
do {
$mysql_user = substr(preg_replace('/[^a-z0-9]/i', '', base64_encode(random_bytes(32))), 0, 32);
$stmt->execute([$mysql_user]);
} while($stmt->fetch());
$create_user = $db->prepare("CREATE USER ?@'%' IDENTIFIED BY ?;");
$create_user->execute([$mysql_user, $password]);
return $mysql_user;
}
此行$create_user->execute([$mysql_user, $password]);
现在向我显示一条错误消息:
警告:PDOStatement :: execute():SQLSTATE [42000]:语法错误或 访问冲突:1227访问被拒绝;您需要(至少其中之一) 在中为此操作创建用户权限 /xxx/xxx/common.php,行559
我搜索了google,发现这是一个权限问题,但是我看到我已经为该用户设置了所有权限。
那为什么会显示该错误?
该用户的当前权限:
注意:在localhost上,它运行良好。