如何在MySQL上创建一个用户

115 阅读2分钟

关于如何在MySQL上创建一个用户的快速步骤指南

在你安装MySQL后,你将有root 用户可用。

这是你可能用来尝试和查看MySQL是否工作的用户,但它不应该是用于其他类型的使用的用户。

为什么?因为它太强大了。

巨大的力量带来巨大的责任(蜘蛛侠的叔叔说的)。特别是,如果你犯了错误,会有很大的危险。

相反,你应该创建临时用户,这些用户只拥有执行其工作的权限,而不是其他。例如,使用Linux或任何Unix系统也是如此:你不希望使用root 用户,而是使用你自己的用户账户。

要创建一个新的用户,使用root 用户连接到MySQL。

然后使用命令

CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>';

例如,要创建一个名为test_user 、密码为test_password12A 的用户,运行该命令。

CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'test_password12A';

该命令应该返回一行字:Query OK, 0 rows affected (X.XX sec)

如果你使用了一个无效的密码,系统会告诉你类似ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 。在这种情况下,错误说密码不够复杂,因为当我安装MySQL时,我告诉它对密码使用某种策略。

这很好!现在用户已经被创建,我们可以用这个用户连接到MySQL。在命令行中,你可以通过键入QUIT ,然后键入退出。

现在如果我试图创建一个数据库,我会得到一个错误,说ERROR 1044 (42000): Access denied for user 'test_user'@'localhost' to database 'testing'

为什么?因为该用户没有创建新数据库的权限

我们将在另一个教程中看到如何处理权限的问题。

值得一提的是,我们用来创建用户的@'localhost' 字符串。这告诉MySQL,该用户只能从localhost连接。这在测试时和任何将连接到MySQL的应用程序在运行DBMS的同一台计算机上运行时是很好的。

当这种情况不存在时,你需要手动输入用户要连接的IP,或者使用% 通配符。

CREATE USER 'test_user'@'%' IDENTIFIED BY 'test_password12A';

我想通过展示如何删除我们创建的用户来结束本教程。

DROP USER 'test_user'@'localhost';