我刚刚在终端中输入“mysql”打开了 mysql。然后,我去创建一个数据库,结果抛出了这个错误:-
mysql> create database test2;
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'test2'
mysql>
我该如何修复这个问题?PS - 我已经使用taskel安装了LAMP。谢谢。
答案1
试试这个。以 root 身份启动 MySQL,只需按键盘上的Ctrl+ Alt+T即可打开终端。打开后,运行以下命令:
mysql -u root -p
答案2
你可能知道,MySQL 是一个数据库服务器。也就是说,你需要一个客户端来连接 MySQL 服务器。mysql
你使用的命令行程序就是这样的客户端。
与许多系统一样,MySQL 服务器有自己的用户帐户和权限。因此,如果您将客户端连接到 MySQL 服务器,则必须提供用户名和(几乎总是)密码。如果您不提供用户名mysql
,则系统会假定您要使用登录服务器时使用的 UNIX/Linux 用户名。例如,如果您以“joe”身份登录服务器,则系统mysql
会尝试使用同名的 MySQL 用户,即“joe@localhost”。如您所见,MySQL 用户帐户始终包含您连接的主机名。这是自动添加的。
如果你想以用户 'joe@localhost' 的身份连接到 MySQL 服务器,你可以这样做
mysql -u joe
这样,MySQL 假定 MySQL 服务器与客户端在同一台机器上运行(因此,会自动添加“localhost”主机名)并且“joe@localhost”没有设置密码。
如果所需的 MySQL 用户帐户有设置密码后,你可以让mysql
客户端使用以下方式请求密码
mysql -u joe -p
为了完整起见,如果你想在客户端运行时连接到另一台机器上的 MySQL,你可以这样做
mysql -h my-mysql-server.com -u joe -p
在您的特殊情况下,客户端连接到 MySQL 服务器的 MySQL 用户帐户mysql
没有创建新数据库所需的权限。您需要以具有这些权限的 MySQL 用户身份进行连接。具体使用哪个用户帐户取决于您如何设置 MySQL 服务器。