无法使用mysql中创build的用户login
使用这个命令
GRANT ALL PRIVILEGES ON *.* to 'brian'@'%' identified by 'password';
我尝试login:
mysql -u brian -ppassword
错误是:
ERROR 1045 (28000): Access denied for user 'brian'@'localhost' (using password: YES)
我以root身份执行此操作,并尝试刷新权限。
我与无数的用户尝试过,但它似乎并没有工作。 我可以创build一个没有密码和login作品的用户。 命令行和从phpmyadmin
还要检查用户是否在mysql.user中。
显示布莱恩表演的补助金:
| GRANT ALL PRIVILEGES ON *.* TO 'brian'@'%' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19' |
你可能有永久性的MySQL问题,其中用户表中的一个默认用户是'' @ localhost
,后来在表中拒绝所有localhost
用户。 我会做的是mysqldump
的mysql
数据库,并在User
表中查找此条目; 如果find,请将其删除并刷新权限。
有关更多详细信息,请参阅https://dev.mysql.com/doc/refman/5.5/en/connection-access.html 。
认为对于一个给定的用户名来说,当服务器试图为连接find一个匹配时,首先使用明确指定该用户的所有行是一个常见的误解。 这不是真的。 前面的例子说明了这一点,jeffrey的h1.example.net的连接首先不是由包含'jeffrey'的行作为用户列值,而是由没有用户名的行匹配。 因此,jeffrey被authentication为匿名用户,尽pipe他在连接时指定了一个用户名。
这是由匿名用户造成的问题。 一旦我安装MySQL,我总是运行
shell> mysql_secure_installation
并select设置/更改root密码,删除匿名用户,禁止远程rootlogin,删除testing数据库。 这将删除匿名用户并确保您的安装。 它也应该解决你的问题。
mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
这里提供的解决scheme没有任何工作。 大量的错误和试用后,我意识到我有密码中的特殊字符。 不用特殊字符更改密码解决了这个问题
mysql文档有这样的说法:(从http://dev.mysql.com/doc/refman/5.1/en/adding-users.html ):
其中两个帐户的用户名为
monty
,密码为some_pass
。 这两个帐户都是具有完全权限的超级用户帐户。 只有从本地主机连接时才能使用'monty'@'localhost'
帐户。'monty'@'%'
帐户使用主机部分的'%'
通配符,所以它可以用来从任何主机连接。有必要有双方的帐户能够从任何地方作为
monty
连接。 如果没有本地主机帐户,monty从本地主机连接时,由mysql_install_db
创build的localhost的匿名用户帐户将优先。 因此,monty
将被视为匿名用户。 原因是匿名用户帐户比'monty'@'%'
帐户具有更具体的Host
列值,因此在用户表sorting顺序中更早。
考虑到这一点,我会build议你用相同的权限创build一个'brian'@'localhost'
用户。
您在授权声明中忘记了布莱恩周围的报价。 试试像这样:
GRANT ALL PRIVILEGES ON *.* to 'brian'@'%' identified by 'password';
我认为“拉塞尔·席尔瓦”是对的
我创build了一个用户
CREATE USER 'username'@'%' PASSWORD='userpassword';
但是我不能login这个帐户。控制台告诉我这个
ERROR 1045 (28000): Access denied for user 'username'@'localhost' (using password: YES)
所以我用相同的用户名创build了一个用户,除了把'%'改为'localhost',我终于可以以'用户名'login了。 虽然对我来说这很奇怪。
在我的情况下,这是由于我点击“SSL:REQUIRE SSL”(在phpmyadmin中)。 当我将其更改为“不需要”时,我可以login。
您也可以从其他主机连接,然后本地主机匿名用户被绕过,您可以删除它并刷新权限:
mysql -u brian -ppassword -h 'other_host_than_localhost'
我刚刚创build了一个帐户,为未来的search者提供另一种可能性:
对于有经验的用户来说,这可能是显而易见的,但我的密码是随机生成的,并包含一个“\”。 花了我一会儿,直到我发现那个angular色似乎造成了问题,导致我无法login。
升级到17.04后,我有一个类似的问题试图连接到在Ubuntu上运行的Maria DB。
默认情况下只监听localhost,127.0.0.1。
为了让MySQL / Maria侦听所有可用的端口和接口,我需要明确指定bind-address = 0.0.0.0。 我将这行添加到文件/etc/mysql/my.cnf
的末尾,即
... [client-server] # Import all .cnf files from configuration directory !includedir /etc/mysql/conf.d/ !includedir /etc/mysql/mariadb.conf.d/ bind-address=0.0.0.0
然后…
sudo /etc/init.d/mysql restart
即使经过validation,我还没有input错误的密码,我也发生了类似的问题,我无法login。 下面两步解决了我的问题。
- 丢弃testing数据库
- 删除匿名用户