我正在使用“mysql-u root-p”命令启动mysql,但得到的错误是:拒绝访问用户“root”@localhost“”我总是要用sudo来启动它。其他应用程序正常启动。我该怎么绕过它?我正在做jdbc连接(java)。mysql不允许访问java中的数据库。我认为需要sudo命令才是问题所在。系统:Ubuntu18.04 lts与Windows10双启动。
ct3nt3jp1#
我总是要用sudo来启动它不需要。您需要使用sudo让客户机对服务器进行身份验证。原因是mysql的最新版本(以及mariadb、perconadb)使用了非常多的peercred,以至于连接字符串(root)中Assert的用户名与启动客户端的用户相同(这使得使用密码有些多余)。由于so\u perrcred只在文件系统套接字(af\u unix)上工作,您可以通过网络套接字(例如。
mysql -h 127.0.0.1 -u root -p
但请注意,mysql通常有单独的用户记录通过网络连接(主机!='localhost')和filesystem(host='localhost')套接字。但是根据问题@ciarambola-flagged,'root'是一个特例,不应该用于常规访问-您应该创建一个新用户。mysql不提供对java数据库的访问决不能将管理员帐户用作应用程序中的嵌入凭据。如果您使用与您的用户同名的帐户,则在连接到“localhost”时不需要使用sudo。
1条答案
按热度按时间ct3nt3jp1#
我总是要用sudo来启动它
不需要。您需要使用sudo让客户机对服务器进行身份验证。
原因是mysql的最新版本(以及mariadb、perconadb)使用了非常多的peercred,以至于连接字符串(root)中Assert的用户名与启动客户端的用户相同(这使得使用密码有些多余)。
由于so\u perrcred只在文件系统套接字(af\u unix)上工作,您可以通过网络套接字(例如。
但请注意,mysql通常有单独的用户记录通过网络连接(主机!='localhost')和filesystem(host='localhost')套接字。
但是根据问题@ciarambola-flagged,'root'是一个特例,不应该用于常规访问-您应该创建一个新用户。
mysql不提供对java数据库的访问
决不能将管理员帐户用作应用程序中的嵌入凭据。如果您使用与您的用户同名的帐户,则在连接到“localhost”时不需要使用sudo。