mysql新用户访问被拒绝

mysql新用户访问被拒绝,mysql,Mysql,刚从mysql开始。我使用root登录,并按照联机参考创建新用户: mysql> CREATE USER 'abc'@'%' IDENTIFIED BY '111111'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'abc'@'%' WITH GRANT OPTION; mysql --user=abc --password=111111 mysql 然后我退出并尝试使用新用户登录: mysql> CREATE USER 'abc'@'%

刚从mysql开始。我使用root登录,并按照联机参考创建新用户:

mysql> CREATE USER 'abc'@'%' IDENTIFIED BY '111111';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'abc'@'%' WITH GRANT OPTION;
mysql --user=abc --password=111111 mysql
然后我退出并尝试使用新用户登录:

mysql> CREATE USER 'abc'@'%' IDENTIFIED BY '111111';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'abc'@'%' WITH GRANT OPTION;
mysql --user=abc --password=111111 mysql
但收到一条错误消息:

用户“abc”@“localhost”的访问被拒绝(使用密码:是)

我错过什么了吗?

运行此命令以正常工作

FLUSH PRIVILEGES
一旦您为您的用户授予了所需的权限,您将需要刷新权限以完成设置并使新设置生效。为此,请在SQL命令提示符下运行此命令:

[编辑]
如果您还想从localhost连接,则应创建另一个帐户

“用户”必须同时拥有两个帐户才能连接 从任何地方以“用户”的身份访问。如果没有localhost帐户,则 由创建的本地主机的匿名用户帐户 当“用户”从数据库连接时,mysql\u install\u db将优先 本地主机。因此,“用户”将被视为匿名用户。 原因是匿名用户帐户具有更高的安全性 特定主机列的值大于“用户”@“%”帐户,因此 在用户表排序顺序的前面部分。)

仅供参考:

就是这样

grant all privileges on *.* to `root`@`%` identified by 'chnagethepasswordhere'; 
flush privileges;
--helps to excute store procedure as root user

GRANT EXECUTE ON PROCEDURE mbu4u.ratingProcedure TO 'root'@'ip.ip.ip.ip' identified by 'changepasswordheere';

GRANT ALL ON mbu4u.* TO root@'ip.ip.ip.ip' IDENTIFIED BY 'changepassword';

丹瑟曼:祝你今天愉快 将主机从“%”更改为“localhost”对我很有效

但是我不知道为什么

记住“刷新特权;”


我使用的是mysql版本15.1发行版10.1.32-MariaDB,用于Linux(x86_64),使用的是readline 5.1,通常这对我来说很有用:

登录MySQL

mysql -u root -p
sudo systemctl restart mysql
创建MySQL用户

CREATE USER 'username'@'ip' IDENTIFIED BY '*password*';
GRANT ALL PRIVILEGES ON * . * TO 'username'@'ip';
允许对该用户进行完全控制

CREATE USER 'username'@'ip' IDENTIFIED BY '*password*';
GRANT ALL PRIVILEGES ON * . * TO 'username'@'ip';
重新加载特权表

FLUSH PRIVILEGES;
退出MySQL界面

exit;
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
允许从特定ip到端口3306的外部访问

sudo ufw allow from ip to any port 3306
转到MySQL配置文件

exit;
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
允许MySQL从外部查找连接

更改:

bind-address            = 127.0.0.1
致:

在MySQL 8+中,这一行没有开头,如果有,请添加它

重新启动MySQL

mysql -u root -p
sudo systemctl restart mysql

然而,由于某种原因,我仍然遇到“拒绝用户访问”的问题,因此,如果有人能够用我的问题解决方案扩展我的答案,那将是令人惊讶的。

在我的情况下,问题在于密码。在使其包含更少的特殊字符后,它开始工作。

是否刷新权限??
刷新权限1)在上述2语句之后添加刷新权限,并使用“localhost”或“IP address”而不是“%”这些对我来说很有用。希望这会有帮助!!嗯,奇怪,这应该可以用来创建“超级用户”权限。尝试使用root用户登录,查看记录是否已创建!从user='abc'所在的用户运行select*。记录在那里,权限设置为Y。这是哪个版本的mysql?这对我很管用。遵循这个教程哈!你需要两个账户!从以上链接:“monty必须拥有两个帐户,才能像monty一样从任何地方连接。如果没有localhost帐户,当monty从本地主机连接时,mysql\u install\u db创建的localhost的匿名用户帐户将优先。因此,蒙蒂将被视为匿名用户。原因是匿名用户帐户的主机列值比“monty”@“%”帐户更为具体,因此在用户表排序顺序中出现得更早。)“我不知道需要2个帐户。这消除了我遇到的用户无法登录的许多模糊情况。谢谢!