我想开始在MySQL中编写查询。
show grants
显示:
+--------------------------------------+
| Grants for @localhost |
+--------------------------------------+
| GRANT USAGE ON *.* TO ''@'localhost' |
+--------------------------------------+
我没有任何用户名,但是当我想创建一个用户时,我没有权限,即使我没有一个用户,我也不知道如何设置权限!
mysql> CREATE USER 'parsa'@'localhost' IDENTIFIED BY 'parsa';
ERROR 1227 (42000): Access denied; you need (at least one of) the CREATE USER pr
ivilege(s) for this operation
我尝试以root用户身份登录:
mysql> mysql -u root -p;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'mysql
-u root -p' at line 1
mysql> mysql -u root -p root;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'mysql
-u root -p root' at line 1
答案 0 :(得分:204)
不,你应该在bash中运行mysql -u root -p
,而不是在MySQL命令行。
如果你在mysql中,可以输入退出。
答案 1 :(得分:44)
您可能需要为MySQL数据库设置root帐户:
在终端类型中:
mysqladmin -u root password 'root password goes here'
然后调用MySQL客户端:
mysql -h localhost -u root -p
答案 2 :(得分:27)
我被一个不同的问题带到了这里。 每当我尝试登录时,我都收到了该消息,因为我没有正确认证,而是以匿名用户身份登录。我的问题的解决方案是:
要查看您是哪个用户,以及您拥有哪些权限:
select user(), current_user();
删除讨厌的匿名用户:
drop user ''@'localhost';
答案 3 :(得分:8)
您可能想尝试完整登录命令:
mysql -h host -u root -p
其中主机为127.0.0.1
。
这样做只是为了确保合作。
使用mysql -u root -p
允许我进行大量数据库搜索,但由于路径设置而拒绝任何数据库创建。
答案 4 :(得分:7)
这与用户权限有关。给予适当的补助金将解决这个问题。
步骤[1]:打开终端并运行此命令
$ mysql -uroot -p
输出[1]: 这应该给你下面显示的mysql提示
步骤[2]:
mysql> CREATE USER 'parsa'@'localhost' IDENTIFIED BY 'your_password';
mysql> grant all privileges on *.* to 'parsa'@'localhost';
语法:
mysql> grant all privileges on `database_name`.`table_name` to 'user_name'@'hostname';
注意:
- hostname可以是IP地址,localhost,127.0.0.1
- 在
database_name
/table_name
中,*表示所有数据库- 在
hostname
中,要指定所有主机,请使用'%'
步骤[3]:输入quit
/ exit
命令或按Ctrl+D
退出当前的mysql提示。
步骤[4]:登录新用户
$ mysql -uparsa -pyour_password
步骤[5]:创建数据库
mysql> create database `database_name`;
答案 5 :(得分:6)
首先,如果您不熟悉命令行,请尝试使用webbrowser中的phpmyadmin。这将确保您确实创建了一个mysql数据库和一个用户名。
这是您从命令行(bash)连接的方式:
mysql -h hostname -u username -p database_name
例如:
fabio@crunchbang ~ $ mysql -h 127.0.0.1 -u fabio -p fabiodb
答案 6 :(得分:5)
如果你在mysql shell中,请输入退出退出。它将返回到命令提示符。 现在使用以下命令启动mysql:
sudo mysql -u root -p
如果您的用户名不是root,请将上述命令中的“root”替换为您的用户名:
sudo mysql -u your-user-name -p
然后它将询问您mysql-account-password,并且您的mysql将不会显示任何访问权限问题。
答案 7 :(得分:1)
@Nickparsa ......你有2个问题:
1)。 mysql -uroot -p
应该在bash(也称为终端)中输入,而不是在MySQL命令行中输入。您可以通过键入
exit
在MySQL命令行中。现在,您回到了bash / terminal命令行。
2)。您有语法错误:
mysql -uroot -p;
-p前面的分号需要去。正确的语法是:
mysql -uroot -p
在bash命令行中输入正确的语法。如果您有一个设置,请输入密码;否则只需按下回车键。您应该得到类似于此的响应:
希望这有帮助!
答案 8 :(得分:1)
如果要从Linux启动mysql,可以通过点击mysql -u root -p
来轻松完成
如果您在Windows上,则必须从终端点击:mysql -u root -p
答案 9 :(得分:1)
使用 sudo 连接 mysql 并授予必要用户使用权限,
sudo mysql -u user;
GRANT ALL PRIVILEGES ON database_name.* TO 'user'@'localhost';
答案 10 :(得分:0)
大多数开发人员登录服务器(我假设您拥有mysql数据库的用户名和密码)然后从Bash切换到mysql> prompt
然后使用下面的命令(不起作用
mysql -h localhost -u root -p
需要做的是在bash提示符中使用上面的命令 - >这样做会询问密码,如果给出它将直接进入mysql提示符和
然后数据库,表可以逐个创建
我面临类似的僵局,所以分享经验
答案 11 :(得分:0)
我的命令是正确的,每个上面的答案,我错过的是在Workbench上,我们提到用户的'限制来自主机的连接',默认为“%” - 将其更改为“localhost”并连接此后很好!