我正在尝试为我的mysql数据库创建一个新用户并使用它登录以创建一个新数据库。我尝试了以下代码。但它会导致一些错误。
<?php
$mysqli=new mysqli("localhost","username","password@123") or die(".........");
$mysqli->query("CREATE USER 'new_username'@'localhost' IDENTIFIED BY '123456';");
$mysqli->query("GRANT ALL ON db1.* TO 'new_username'@'localhost'");
$mysqli->close();
$mysqli=new mysqli("localhost","new_username","123456") or die(".........");
if($mysqli->query("Create database if not exists New_DB_Name")){
"Failed creating new database: ".$mysqli->connect_errno();
die();
}
$mysqli->select_db("New_DB_Name");
$mysqli->close(); ?>
这是错误
Warning: mysqli::mysqli(): (28000/1045): Access denied for user 'new_username'@'localhost' (using password: YES) in /home/public_html/sign-up/conn.php on line 10
Warning: mysqli::query(): Couldn't fetch mysqli in /home/public_html/sign-up/conn.php on line 12
Warning: mysqli::select_db(): Couldn't fetch mysqli in /home/public_html/sign-up/conn.php on line 19
Warning: mysqli::close(): Couldn't fetch mysqli in /home/public_html/sign-up/conn.php on line 20
编辑:实际上它没有创建新用户。这就麻烦了。
答案 0 :(得分:0)
检查您的数据库权限。该错误表明sql用户username
没有创建用户权限。
除非您想以自动方式创建许多用户,否则创建用户是一件不寻常的事情。
您可能希望使用管理界面创建一次所需的用户名,然后使用PHP脚本创建模式的所有方面:数据库,表格,索引等。
答案 1 :(得分:0)
尝试将root
替换为username
。默认的mysql用户名是root
。
如果用户存在,则必须更改此行:
$mysqli->query("CREATE USER 'new_username'@'localhost' IDENTIFIED BY '123456';");
带
$mysqli->query("CREATE USER new_username@localhost IDENTIFIED BY '123456';");
因为mysql不支持single quote
但支持“``”
答案 2 :(得分:-1)
连接线出现问题:
$mysqli=new mysqli("localhost","username","password@123") or die(".........");
您无法使用localhost
进行连接127.0.0.1
。
更多信息:http://php.net/manual/en/mysqli.quickstart.connections.php