我正在使用Windows 7.我已经下载了mysql-5.5.16-win32.zip
并安装了它。我成功启动了MySQL服务器,但是我收到了这个错误:
C:\Program Files\Mysql\bin>mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.16 MySQL Community Server (GPL)
mysql> select user, host, password from mysql.user;
ERROR 1142 (42000): SELECT command denied to user ''@'localhost' for table 'user
'
mysql> mysql -u root -p
-> select user, host, password from mysql.user;
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
select user, host, password from mysql.user' at line 1
mysql> mysql -u root -p root
-> select user, host, password from mysql.user;
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
select user, host, password from mysql.user' at line 1
mysql>
如何设置从Windows到mysql表用户所需的权限?
答案 0 :(得分:9)
mysql命令行错误消息:
ERROR 1142 (42000): SELECT command denied to user ''@'localhost' for table 'user'
表示您使用默认空用户登录到mysql,其权限几乎为零。
从命令行中,像以前一样运行mysql:
C:\Users\Charity>mysql
这会带您进入mysql提示符,运行命令select user();
mysql> select user();
+----------------+
| user() |
+----------------+
| ODBC@localhost |
+----------------+
1 row in set (0.00 sec)
该输出表示您不是以用户身份连接,而是以某种非用户API连接器身份连接。 ODBC不在mysql.users
表中。当您未指定用户时,用户连接到MySQL。
运行另一个命令:
mysql> select user from mysql.user;
ERROR 1142 (42000): SELECT command denied to user ''@'localhost' for
table 'user'
mysql>
我们没有以任何用户身份进行连接,因此它告诉我们拒绝访问。
运行以下命令:
C:\Users\Charity>mysql -u this_is_not_a_user
mysql> select user();
+------------------------------+
| user() |
+------------------------------+
| this_is_not_a_user@localhost |
+------------------------------+
1 row in set (0.00 sec)
mysql>
所以我们已经以我们定义的另一个非用户身份登录。您是否希望我们从帽子中取出的用户拥有任何特权?否
停止鬼混并以root用户身份登录:
C:\Users\Charity>mysql -u root -p
Enter password: **********
mysql> select user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
mysql>
现在你是根,你可以看到一切。
查看mysql.user表:
mysql> select user, host from mysql.user;
+------+-----------+
| user | host |
+------+-----------+
| | linux |
| root | linux |
| | localhost |
| pma | localhost |
| root | localhost |
+------+-----------+
5 rows in set (0.00 sec)
您可能希望创建更多用户,以便让人们可以使用数据库,而无需授予他们对数据库执行任何操作的权限。让野蛮人远离护城河。
您不希望一直以root用户身份登录。所以创建一个新用户。转到phpmyadmin,以root身份登录到phpadmin。单击“用户”选项卡并创建新用户。将显示一个新对话框,填写用户名,密码和权限。然后您可以以该用户身份登录:
C:\Users\Charity>mysql -u el -p
Enter password: **********
mysql> select user();
+----------------+
| user() |
+----------------+
| el@localhost |
+----------------+
1 row in set (0.00 sec)
mysql>
此用户可以执行您在步骤7中定义的权限中授予的所有内容。
答案 1 :(得分:1)
命令mysql -u root -p
应该在Windows命令行运行。当你看到提示
mysql>
这意味着您当前正在使用MySQL命令行客户端(当您第一次在示例的第一行运行mysql
时打开它)。
您需要执行的是运行命令quit
,以便您返回Windows命令提示符,然后运行
mysql -u root -p
这将再次启动MySQL客户端,但会提示您输入密码以用户root
身份登录。
答案 2 :(得分:0)
如果您是初学者,则可能不必键入-p 只需输入:
mysql -u root