我正在学习sql语言,并尝试在linuxmint上使用mysql来测试我的工作,但是我遇到了类似错误1044的问题。我试着在这里遵循各种各样的建议,但是我遇到了一个不同的错误代码,然后在尝试解决新问题时,我看到了另一个错误代码,在尝试解决这个新问题时,我看到了另一个错误代码,并且令人厌恶地重复。所以我从零开始,希望我的问题能够得到解决。
我试过了
mysql> USE preciousMetals;
ERROR 1044 (42000): Access denied for user 'phpmyadmin'@'localhost' to database 'preciousMetals'
检查了这个
mysql> show grants;
+--------------------------------------------------------------------+
| Grants for phpmyadmin@localhost |
+--------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'phpmyadmin'@'localhost' |
| GRANT ALL PRIVILEGES ON `phpmyadmin`.* TO 'phpmyadmin'@'localhost' |
+--------------------------------------------------------------------+
2 rows in set (0.00 sec)
我在提示符中输入这个命令
mysql> select user ();
+----------------------+
| user () |
+----------------------+
| phpmyadmin@localhost |
+----------------------+
1 row in set (0.00 sec)
那么这个呢
mysql> select current_user ();
+----------------------+
| current_user () |
+----------------------+
| phpmyadmin@localhost |
+----------------------+
1 row in set (0.00 sec)
我想暂时保持这个问题的整洁和“小”,这样它就不会到处都是。我要补充的是,我试图进入根,因为有些帖子说,但我没有一个密码。在安装过程中,我从未为root用户设置密码。我尝试了用户密码和错误。试图寻找它或重置它,显然我没有任何特权或权利什么的。我试着去修正它,你知道的,另一个错误o
有人能帮忙解决错误1044吗?我遇到这么多问题有什么原因吗?这是一个错误的关系型数据库管理系统或是与我的实际电脑和它处理事情的方式有关的问题?有没有一个好的解决方案来摆脱所有的问题,只使用rdbms而不需要一些组装所需的东西。
1条答案
按热度按时间txu3uszq1#
它是一个小车rdbms?
这不是虫子,是功能!
(我不能告诉你我等了多久才毫无讽刺地说出来。)
您的授权表明您的phpmyadmin用户仅对phpmyadmin数据库具有权限。
特权
USAGE ON *.*
意味着您可以连接到mysql服务器,但并不意味着您对该服务器上的任何数据库都有任何权限。特权
ALL PRIVILEGES ON
phpmyadmin公司.*
意味着您对phpmyadmin数据库的所有表都有权限。您对任何其他数据库都没有权限。所以当你试图USE preciousMetals;
它立即拒绝了这一请求。您没有访问某些特定资源的权限这一事实并不是软件中的缺陷。
以此类推,如果您尝试
cd <directory>
如果你没有权限这么做。如果你那样做的话,你会得到一个错误。您需要授予phpmyadmin用户更大的权限。你能进入那家商店吗
root
mysql帐户?它通常拥有所有数据库的所有权限,并且能够向其他mysql用户授予权限。至于第二个问题,至少还有一个sql数据库产品根本不强制授予/撤销或特权:sqlite。只要您在linux级别有打开数据库文件的权限,就可以自由访问其中的所有表。没有实施访问权限系统。但是sqlite并不是mysql的替代品。不支持并发多用户访问、网络连接或其他一些可能需要的功能。
对于mysql,您可以在不强制使用密码或权限的模式下运行它。
编辑mysql选项文件(通常是
/etc/my.cnf
在linux系统上)。添加禁用强制的选项。这个应该放在下面的任何地方
[mysqld]
选项文件中的选项组。重新启动mysqld进程。这是以linux根用户身份使用shell命令完成的:
在此之后,您将不需要输入密码,并且没有强制sql权限。
这显然不是将mysql用于实时应用程序的方式,因为它会损害所有安全性。但是,如果您正在与特权作斗争,并且只想在本地示例上学习sql,请继续。