关于如何在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';