【发布时间】:2016-11-04 09:11:30
【问题描述】:
我有这个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;
}
我在这里解决了另一个问题: Can I create a database using PDO in PHP
此代码在第三次查询期间一直挂断,并授予权限并出现此错误:
SQLSTATE[42000]:语法错误或访问冲突:1044 Access denied for user
有问题的 MySQL 用户具有全局权限,包括授权。我还能错过什么?
【问题讨论】:
-
这是完整的错误信息?
Access denied for user之后还有什么? -
是的,它列出了用户并说出了新数据库的名称
-
用户名是什么?
-
从 doLog('Creating User...') 中删除 \ 后为我工作; \
-
那个斜线不应该在那里,我会从帖子中删除它。