cPr*_*rog 0 mysql mysql-error-1064 mysql-error-1142
我正在使用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表用户所需的权限?
Eri*_*ski 10
mysql命令行错误消息:
ERROR 1142 (42000): SELECT command denied to user ''@'localhost' for table 'user'
表示您使用默认的null用户登录到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中定义的权限中授予的所有内容.