mysqld连接时提示Access denied

mysqld连接时提示Access denied,第1张

access denied是参数设置错误造成的,解决方法如下:

1、打开并编辑vim /etc/my.cnf。

2、在[mysqld]下方加一行代码Add skip-grant-tables。

3、重启mysql/etc/init.d/mysql restart。

4、使用命令行连接mysqlmysql -u root -p。

5、mysql>flush privileges。

6、返回 编辑my.cnf,删除或注释skip-grant-tables行vim  /etc/my.cnf 。

7、重启mysql/etc/init.d/mysql restart。

由于服务器没有对外开放mysql的默认端口3306导致

CnetOs7开启方式

2.未设置远程用户访问权限导致

在服务器上连接mysql

3设置安全组

这样就OK了

是root用户的话,IP就是<localhost>或<127.0.0.1>,只是代表使用本机,不是代表本机IP地址, *** 作方法如下:

1、首先,利用Navicat创建一个数据库和表,数据库名为testdb,表为userinfo,并添加一条新记录。

2、用如下的数据库连接字符串访问数据库时,是没有问题的。Driver = MySQL ODBC 5.1 DriverServer = localhostPort=3306DATABASE = testdbuser = rootpassword = 123456。

3、其中,Server是数据库所在主机IP地址,Prot是连接端口;user和password则为连接数据库的用户名和密码,使用Select * from userinfo 可以正确获取到数据。

4、但是当把localhost换成实际的IP地址的时候,就报错了,说明这个数据库testdb是默认没开启访问权限的,默认情况下只允许localhost和127.0.0.1访问。

5、更新root账户的权限。打开mysql命令行窗口,输入grant all privileges on *.* to root@"%" identified by 'abc' with grant option  flush privileges。

6、创建一个新账户,如guest,并将可被访问的主机定义为%,即所有主机都可访问该账户。测试,没有问题。


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

原文地址: http://outofmemory.cn/zaji/8584466.html

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

发表评论

登录后才能评论

评论列表(0条)

保存