gpt4 book ai didi

Mysql 访问需要 sudo 命令才能启动

转载 作者:行者123 更新时间:2023-11-29 17:01:40 27 4
gpt4 key购买 nike

我正在使用“mysql -u root -p”命令来启动 mysql,但出现错误:

用户“root”@localhost''的访问被拒绝

我总是必须使用 sudo 来启动它。其他应用程序正常启动。我该如何解决它?我正在做jdbc连接(java)。 Mysql 不提供对 java 中数据库的访问。我认为需要 sudo 命令是问题所在。

系统:Ubuntu 18.04 LTS 与 Windows 10 双启动。

最佳答案

I always have to use sudo to to launch it

没有。您需要使用 sudo 让客户端对服务器进行身份验证。

原因是 MySQL(以及 MariaDB、PerconaDB)的最新版本使用 SO_PEERCRED非常重要的是,连接字符串中声明的用户名(root)与启动客户端的用户是同一用户(这使得密码的使用有点多余)。

由于 SO_PERRCRED 仅适用于文件系统套接字 (AF_UNIX),因此您可能可以通过网络套接字连接来绕过限制,例如

 mysql -h 127.0.0.1 -u root -p

但请注意,MySQL 通常对于通过网络(主机!= 'localhost')和文件系统(主机='localhost')套接字的连接有单独的用户记录。

但根据 @Ciarambola 标记的问题,“root”是一种特殊情况,不应用于常规访问 - 您应该创建一个新用户。

Mysql doesn't give access to database in java

您不应该永远使用管理员帐户作为应用程序中的嵌入式凭据。如果您使用与您的用户相同的名称创建该帐户,则在连接到“localhost”时无需使用 sudo。

关于Mysql 访问需要 sudo 命令才能启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52183680/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com