我刚刚安装mysql-server
并设置了 root 密码。我可以从终端登录,但只能使用 sudo:
jack@Ubuntu-Tower:~$ mysql -u root
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
jack@Ubuntu-Tower:~$ sudo mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
我无法通过 MySQL Workbench 连接到此服务器(127.0.0.1、端口 3306、用户名 root,当然还有正确的密码)。我在 Ubuntu 论坛上问这个问题的原因是因为 sudo 的问题……这是正常的吗?这可能与我的 Workbench 问题有关吗?
答案1
我在 Ubuntu 论坛上询问这个问题的原因是由于 sudo 的问题......这是正常的吗?
是的。我们非常重视安全 ;)
这可能与我的 Workbench 问题有关吗?
好吧,这涉及到了根本问题:
您需要授予工作台连接数据库的权限。通用规则是:
GRANT ALL PRIVILEGES ON database.table TO 'user'@'localhost';
FLUSH PRIVILEGES;
在哪里
- 数据库
- 桌子
- 用户
- localhost(如果不在同一系统上,这可以是使用 workbenech 的系统的 IP 地址)
需要根据您的需要进行调整,并且您可以将其用作*
通配符。
您可以使用
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
创建一个用户,其中用户、本地主机和密码需要根据您的情况进行更改。从安全角度来看,保留“root”不变,并使用特定于您情况的用户名。