将现有用户分配给MySQL数据库。

19

我已在phpMyAdmin中成功创建了多个数据库。现在,我想通过在SQL选项卡上运行脚本,为所有这些新数据库分配一个现有用户及其相应的密码。

请确认我需要运行什么脚本,或者是否有更简单的脚本可以通过根访问运行,请确认此命令。

2个回答

27

使用"grant permissions"命令。

如果你的数据库名叫做"newDatabase",你的用户名为"newUser",那么授予所有表格的权限的命令如下:

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

为了仅允许用户从本地主机访问数据库,将localhost更改为“%”以允许从所有主机进行访问。

然后,您需要使用以下命令刷新权限:

FLUSH PRIVILEGES;

编辑:

要向MySQL服务器上的每个数据库授予权限,请使用以下命令(注意 *.*):

GRANT ALL PRIVILEGES ON *.* TO 'newUser'@'localhost';

你好,非常感谢您的快速回复!这是根命令吗?我正在尝试使用Putty执行它,但Putty无法识别该命令。此外,是否有一个全局单个命令可以一次性更改所有数据库?(我需要将用户添加到256个数据库中) - user3383762
我该如何打开mysqld程序? - user3383762
我删除了那个评论,因为它完全是错误的。你想要的是mysql管理员控制台,这个问题应该会有所帮助。 (https://dev59.com/r2025IYBdhLWcg3wIyKf) - Digital Fu
非常感谢您的更新!我成功使用Putty访问了mysql管理员,并返回了一行以mysql>开头的内容。但是,当我运行命令脚本时,出现了以下错误信息:-> ERROR 1045 (28000): Access denied for user 'dboco_user1'@'localhost' (using password: YES)。 - user3383762
GRANT ALL PRIVILEGES ON *.* TO 'newUser'; 这个命令对我有效,只是没有加上 'localhost' 部分。 - Adam Jagosz

5
GRANT SELECT, INSERT, INDEX ON `db_name`.* TO 'user'@'%';

将SELECT、INSERT和INDEX修改为所需内容


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