提问者:小点点

创建数据库时拒绝mysql访问


我想在MySQL中创建新的DB。

我以超级用户身份登录。 我为root用户设置了密码。

mysql> SHOW GRANTS FOR root;

+---------------------------------------------------------------------------------------------+

| Grants for root@%                                                                           |

+---------------------------------------------------------------------------------------------+

| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD <secret> WITH GRANT OPTION |

| GRANT PROXY ON ''@'' TO 'root'@'%' WITH GRANT OPTION                                        
|

+---------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

mysql> create database xxx;

ERROR 1044 (42000): Access denied for user 'root'@'localhost' to database 'xxx'

有一件事我注意到我没有mysql数据库

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| info_schema        |
| sms_auto           |
| smstest            |
+--------------------+

请你帮我一下好吗


共2个答案

匿名用户

我已经在安全模式下启动了MySQL,然后分配了适当的权限(从这里引用)

  1. 停止MySQL服务
  2. 运行mysqld_safe--skip-grant-tables&
  3. 键入mysql-u root-p并按Enter键。
  4. 输入您的密码
  5. 在MySQL命令行输入:use MySQL;

在此之后,我更新了mysql.user表中相应主机和用户的特权。 刷新权限;

现在这对我有效你也可以参考更新特权的答案

匿名用户

确保您的用户权限设置正确,如-host localhost-user root和-pass{your pass word}

将*.*上的所有权限授予由密码标识的“root”@“%”;。 为特定用户(如people)设置用户权限,然后按照示例grant all on people.*to由“password”标识的“root”@"localhost“;