[英]PHP PDO Create MySQL database and user and grant privileges
我有这个PHP功能:
function createDatabase($dbName,$dbPass) {
$host = 'localhost';
$user = 'myuser';
$user_password = 'mypass';
$db = new PDO("mysql:host=$host", $user, $user_password);
$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
try {
doLog('Creating Database...');
$count = $db->exec("CREATE DATABASE `$dbName`");
if($count === false) {
doLog('Could not create database');
return false;
}
doLog('Creating User...');
$count = $db->exec("CREATE USER '$dbName'@'localhost' IDENTIFIED BY '$dbPass'");
if($count === false) {
doLog('Could not create user');
return false;
}
doLog('Granting User Privileges...');
$count = $db->exec("GRANT ALL ON `$dbName`.* TO '$dbName'@'localhost'");
if($count === false) {
doLog('Could not grant user privileges');
return false;
}
doLog('Flushing Privileges...');
$count = $db->exec("FLUSH PRIVILEGES");
if($count === false) {
doLog('Could not flush privileges');
return false;
}
} catch (PDOException $e) {
doLog("DB ERROR: ". $e->getMessage());
return false;
}
return true;
}
我在这里解决另一个问题: 我可以在PHP中使用PDO创建数据库吗?
这段代码会在第三次查询期间因此错误而授予特权,从而使用户挂断电话:
SQLSTATE [42000]:语法错误或访问冲突:1044用户的访问被拒绝
有问题的MySQL用户具有全局权限,包括授予权限。 我还能缺少什么?
有问题的MySQL用户具有全局权限,包括授予权限。 我还能缺少什么?
注意但常识。
如果您的数据库说一个用户没有权限, 那就是这样。
这就是错误消息的重点:您必须阅读并修复它们。 就如此容易。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.