命令:
mysql -u root -p
Run Code Online (Sandbox Code Playgroud)
给出错误:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
Run Code Online (Sandbox Code Playgroud)
但运行sudo权限,有效:
sudo mysql -u root -p
Run Code Online (Sandbox Code Playgroud)
是否有可能摆脱sudo要求,因为它阻止我在intellij中打开数据库?我在这个问题的答案中尝试了以下内容连接到没有sudo的本地MySQL服务器:
sudo chmod -R 755 /var/lib/mysql/
Run Code Online (Sandbox Code Playgroud)
这没有帮助.上面的问题引发了不同的错误
Riy*_*eed 58
只有root用户需要sudo才能登录mysql.我通过创建新用户并授予对所需数据库的访问权限来解决此问题:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON database_name.* TO 'newuser'@'localhost';
Run Code Online (Sandbox Code Playgroud)
现在newuser
可以登录而无需sudo要求:
mysql -u newuser -p
Run Code Online (Sandbox Code Playgroud)
小智 22
你需要改变算法.为我工作,
mysql > ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
mysql > FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)
小智 18
首先用sudo登录你的mysql.
然后使用此代码将root用户的"插件"coloumn值从"unix_socket"更改为"mysql_native_password".
UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin = 'unix_socket';
FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)
最后重启mysql服务.而已.
如果您想了解更多信息,请查看此链接
小智 8
我已经使用以下命令解决了这个问题。
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'username'@'localhost';
FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)
这里,
username
=您喜欢的任何用户名。
和password
= 您喜欢的任何密码。
您可以使用相同的ROOT用户或NEW_USER并删除SUDO特权。以下示例显示了如何使用ROOT(不使用SUDO)删除连接。
使用SUDO连接到MY-SQL
sudo mysql -u root
Run Code Online (Sandbox Code Playgroud)
从用户表中删除当前的根用户
DROP USER 'root'@'localhost';
Run Code Online (Sandbox Code Playgroud)
创建一个新的ROOT用户(如果需要,可以创建其他用户)
CREATE USER 'root'@'%' IDENTIFIED BY '';
Run Code Online (Sandbox Code Playgroud)
向新用户授予权限(ROOT)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
Run Code Online (Sandbox Code Playgroud)
刷新特权,以便立即重新加载Grant表。(为什么我们需要清除特权?)
FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)
现在一切都很好。以防万一,请检查是否创建了新的root用户。
SELECT User,Host FROM mysql.user;
+------------------+-----------+
| User | Host |
+------------------+-----------+
| root | % |
| debian-sys-maint | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
退出mysql。(按CTRL + Z)。不使用SUDO连接到MySQL
mysql -u root
Run Code Online (Sandbox Code Playgroud)
希望这会有所帮助!
小智 5
您可以使用以下查询:
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password';
Run Code Online (Sandbox Code Playgroud)
这个查询就足够了。
归档时间: |
|
查看次数: |
34962 次 |
最近记录: |