我刚刚安装了MySQL 5.5,安装后我就被要求通过执行这两个命令来设置根密码:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h linux-opxd password 'new-password'或
/usr/bin/mysql_secure_installation我执行了第一个命令--好的。我执行了第二个命令,这次是错误的:
错误:“拒绝用户'root'@'localhost‘的访问(使用密码:否)”
我重新执行了第一个(用于检查) --错误如上。
所以,我执行了mysql_secure_installation。一切顺利,我的密码被认出了。因此,我再次执行了前两个命令--并再次出错。
作为另一项检查:
mysql --user=root与上面相同的错误。
我尝试用mysql身份验证重新设置密码,也尝试了/usr/bin/mysql_upgrade -u root -p --在尝试将mysql控制台作为root启动时仍然存在错误。
最后,我关闭了身份验证,连接到控制台并执行以下操作:
SELECT user();输出-- root@。如果我像这样连接:
mysql --user='root@localhost'我去找root@localhost@。
所以现在看来,这并不是特权的问题,也不是缺少密码之类的问题,而是无法识别命令行中给出的用户- mysql在末尾追加@,这似乎就是问题所在(至少对我来说是这样)。
问题是:如何使MySQL识别给定的用户?
发布于 2013-01-20 11:33:37
您收到的第一个错误是:
错误:“拒绝用户'root'@'localhost‘的访问(使用密码:否)”
指示您可能没有在mysql命令中使用-p选项。
一旦您创建了mysql根密码,您应该能够使用以下方法访问MySql:
mysql -u root -p将提示您输入MySql根密码。
如果希望启用来自其他位置的访问(与本地主机不同),可以使用类似于此的SQL命令授予特权:
mysql> CREATE USER 'username'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON databaseName.* TO 'username'@'localhost' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;以类似的方式,您可以通过将'username'@'localhost‘改为:'username'@'someFQDN','username'@'IP_ address ','username'@'%’,从而启用从其他主机名/IP地址或任何位置访问MySql DB。
有关更多信息,我建议:http://dev.mysql.com/doc/refman/5.1/en/adding-users.html。
干杯!
发布于 2013-01-20 11:37:57
在第二个mysqladmin命令上获得错误消息的原因是没有使用在第一个命令中设置的密码对服务器进行身份验证。只需在第二个命令中包含'-p‘,并在被要求时输入密码。或者更简单,只需使用mysql_secure_installation命令,因为它会处理它以及其他一些有用的东西。
https://serverfault.com/questions/470794
复制相似问题