如何在MySQL中为现有用户创建数据库?

6
我可以帮您进行翻译。需要创建一个用于MySQL的特定(现有)用户的数据库,应该怎么做?
我的尝试 -
CREATE USER 'myuser' @'%' IDENTIFIED BY 'mypass';
CREATE DATABASE myuser.myDatabase;

第二行有误,我找不到正确的语法。
请告诉我我的错误。

请提供您尝试过的代码示例,或者至少解释一下您的想法。参见:whathaveyoutried.com - Erty Seidohl
@Erty - 好的,我已经相应地编辑了我的问题。 - stella matthew
你是指“为特定(已存在的)用户创建数据库”是什么意思? - zerkms
这个问题和答案可能应该迁移到dba.stackexchange.com。 - Agi Hammerthief
2个回答

6
当我在phpmyadmin中创建一个名为test的用户并创建一个名为test的数据库时,它会运行:
CREATE USER 'test'@'localhost' IDENTIFIED BY  '***';

GRANT USAGE ON * . * TO  'test'@'localhost' IDENTIFIED BY  '***' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

CREATE DATABASE IF NOT EXISTS  `test` ;

GRANT ALL PRIVILEGES ON  `test` . * TO  'test'@'localhost';

这可能对您有所帮助。


你很可能会省略第一行代码,因为你已经有了用户。 - alpera
用户名必须与数据库名称相同吗? - stella matthew
在你的查询中(第一行),你创建了名为“test”的数据库。 - Habib Zare
请参考最后一行 -GRANT ALL PRIVILEGES ON `test` . * TO 'test'@'localhost';.* 部分是否意味着用户获得数据库中所有表的所有权限? - stella matthew

3

我尝试了这段代码,看起来没问题。

CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
CREATE DATABASE mydb;

GRANT ALL 
ON mydb.*
TO myuser;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接