我一直试图通过SSH在Ubuntu服务器上设置MySQL,但总是出现error: 'Access denied for user 'mark'@'localhost' (using password: YES)'
到目前为止,我尝试使用这些指令来更改服务器IP的绑定地址,并且干净地重新安装,但是当我尝试使用任何mysql命令时,总会遇到此错误。
我的一个朋友说他不需要任何额外的设置,所以我很困惑,我的错在哪里。 我清理所有的MySQL,然后安装MySQL服务器,然后在sudo下的mysql客户端,但我无法绕过这个错误。
有什么我需要configuration,以允许用户连接,是否正确/etc/hostname设置为localhost?
基于debian系统的一个select是使用debian-sys-maint用户。 login信息在/etc/mysql/debian.cnf – 确保指定主机,即使它是本地主机。 一旦进入,您可以设置标记的密码(如果用户已经存在,请先放下用户)。
$ mysql -u debian-sys-maint -h localhost -p mysql> CREATE USER 'mark'@'localhost' IDENTIFIED BY 'mypass'; mysql> GRANT ALL ON *.* TO 'mark'@'localhost'; mysql> GRANT GRANT OPTION ON *.* TO 'mark'@'localhost'; mysql> FLUSH PRIVILEGES; mysql> quit $ shred -u ~/.mysql_history
编辑:在阅读你遵循的链接指令之后,不清楚mysql是否在本地主机上侦听,如果你所有的用户都是'user'@'localhost',这是必要的,因为mysql用户帐户绑定到他们访问的主机MySQL服务器。 如果服务器正在监听本地主机以外的地址,即使从本地机器访问它,也需要使用正在监听的地址。 如果是这种情况,请将其设置为在127.0.0.1或localhost上进行监听,以root或debian-sys-maint身份login,并为'mark'@'<other ip>'和'root'@'<other ip>'
编辑2: /etc/hostname不应该是localhost ,而是机器名称。 我不认为这与你的麻烦有任何关系,但可以。 尝试通过编辑/ etc / hostname然后$ sudo hostname -F /etc/hostname将其更改为其他内容(例如marksmachine )。
你确定你在这个数据库上创build了一个名为mark @ localhost的用户吗? 你知道mysql安装的root密码吗? 你运行mysql-secure-installation了吗?
首先你必须在你的Mysql中创build用户,然后你必须添加适当的GRANTS给用户,下面是你可以做的命令
GRANT ALL ON dbname.* TO mark@localhost IDENTIFIED BY 'mypassword';