navicat连接mysql数据库报错,求大神支招!

navicat连接mysql数据库报错,求大神支招!,第1张

这个错误通常表示普通用户 yutian01 在尝试使用错误的密码登录 MySQL 数据库。这可能是由于输入的密码不正确,或者普通用户 yutian01 没有足够的权限来访问 MySQL 数据库。

以下是一些解决问题的步骤:

1.确认密码是否正确:首先,确保普通用户 yutian01 输入的密码是正确的。如果不确定密码是否正确,可以尝试重置密码。

2.确认用户是否拥有足够的权限:确认普通用户 yutian01 是否拥有足够的权限来访问 MySQL 数据库。如果不确定用户是否拥有足够的权限,可以使用 root 用户登录到 MySQL 数据库,然后授予普通用户 yutian01 所需的权限。

3.检查 MySQL 数据库的主机限制:MySQL 数据库可能会使用主机限制来限制不同主机的访问。如果普通用户 yutian01 尝试从不同的主机连接到 MySQL 数据库,则可能会遇到问题。可以尝试使用 root 用户登录到 MySQL 数据库,然后检查主机限制。

4.检查防火墙设置:如果 MySQL 数据库运行在远程服务器上,那么可能需要检查防火墙设置,以确保普通用户 yutian01 可以连接到 MySQL 数据库。可以尝试暂时关闭防火墙并再次尝试连接。

以前也用过mysql数据库(那时还是mysql3),可这样的问题还是头一次遇到。我想在开发过程中遇到这类问题的人一定不在少数,那么我们就从这次出现的问题出发来一起研究一下mysql数据库的账户添加问题。先通过控制台添加一个账户:mysql>INSERT INTO user->VALUES('%','monty',PASSWORD('some_pass'),

->'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',

->'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',

->'','','','',0,0,0,0)

然后,建立php程序进行登录 <html><body><h1>It works!</h1><?php

$link = mysql_connect('localhost', 'monty', 'some_pass')

if (!$link) {

die('Could not connect: ' . mysql_error())}echo 'Connected successfully'

mysql_close($link)

></body></html>但是,运行后的结果却是:

原来,在mysql的这个版本中(已经很久没有用mysql了,之前的版本没有经过测试),如果使用insert命令来增加一个账号的话,必须在添加后刷新一下特权表:mysql>INSERT INTO user ->VALUES('%','monty',PASSWORD('some_pass'),

->'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',

->'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',

->'','','','',0,0,0,0)

mysql>FLUSH PRIVILEGES

mysql>GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost' ->IDENTIFIED BY 'some_pass' WITH GRANT OPTION

mysql>GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%' ->IDENTIFIED BY 'some_pass' WITH GRANT OPTION

mysql>GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost'

mysql>GRANT USAGE ON *.* TO 'dummy'@'localhost'前两个帐户名称都是monty,而且都是拥有所有权限和密码。但是两者的区别在于,第一个帐户(monty@localhost)只能通过本地登录,而第二个账户(monty@%)可以通过任意主机登录。值得注意的是,为了能够使用monty帐户在任何地方进行登录,这两个账户同时存在则是必要的。因为,如果没有本地帐户(monty@localhost),使用monty帐户登录时,mysql_install_db将优先考虑创建一个本地的匿名帐户。那么结果将是monty账户会被当作一个匿名帐户来处理。原因则在于,匿名帐户拥有一个比nonty@%账户更加具体的host字段值,从而在user表排序的时候会相对出现的更早。

上面这个表中的admin帐号则只拥有reload和process权限且没有密码,这些权限允许该帐户执行mysqladmin reload, mysqladmin refresh,mysqladmin processlist和mysqladmin flush-xxx系列命令,但是没有权限进入任何数据库。dummy帐号没有密码也没有任何权限,它只被允许从本地(localhost)登录mysql。GRANT命令允许使用USAGE来创建一个帐号却不赋予任何权限。如果你的Mysql采用的是NO_AUTO_CREATE_USER模式,那么通过命令行模式建立一个没有密码的帐号将会失败。为了解决这个问题,你可以使用IDENTIFIED BY来指定具体的密码。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6729459.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-27
下一篇2023-03-27

发表评论

登录后才能评论

评论列表(0条)

    保存