天天看点

我用工具怎么连接不上mysql数据库的? MySql access denied for user错误

MySql access denied for user错误

方法/步骤

  1. MySql远程连接时的“access denied for user **@**”错误,搞的我很头大,后来查出来解决方法。记录一下,怕以后再忘记:
  2. 首先本地登陆MySQL,然后执行这两句代码:GRANT ALL PRIVILEGES ON *.* TO root@’%’ IDENTIFIED BY ’000000′;FLUSH PRIVILEGES;格式:grant 权限 on 数据库名.表名 用户@登录主机 identified by “用户密码”;
  3. 3

    参数说明: ALL PRIVILEGES表示赋给远程登录用户的权限,ALL PRIVILEGES表示所有的权限,你也可以单独或组合赋select,update,insert,delete权限;*.*:第一个*表示要赋权的数据库名,*当然表示全部数据库了,第二个*表示数据库下的表名,同理,*表示全部表,像我这样的懒人当然就直接用*.*了,反正都是自己开发用

  4. 4

    root表示要赋权的用户;%表示远程登录的IP,如果要限制登录IP的话,这里就添你允许登录的IP,比如192.18.1.99等,%表示不限制IP(再次偷懒),000000是用户远程登录的密码。就这么简单。这句运行以后再运行FLUSH PRIVILEGES,搞定!

不是提示了么:不是自己开的服务端不能连接。

试着用mysql的命令行连接一下,根据相关的提示进行处理。一般要开放所需要的端口,设置用户的远程连接权限就可以连接了。如果命令行可以连接,工具应该也是可以的。

如果只是为了管理数据库,可以装个web的管理放服务器,也挺方便的。      

追问

服务端是我自己的  数据库密码正常  就是外在用工具连接不上  如果设置端口对外开放?   设置用户远程连接权限?      

追答

用命令行连接的方法可以参照下面这个方法:
新使用MySQL,说起来是个简单的事情,但是却费了些周折:
1、登陆服务器端,进入命令行,windows cmd;
2、设置用户、密码让指定的IP访问:mysql -u root -p 或安装的快捷方式进入:MySQL Command Line Client,使用grant命令:
grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by \'连接口令\';
例子:
mysql>grant select,insert,update,delete,create,drop on mydb.mytable to [email protected] identified by \'mypassword\';
给来自192.168.1.88的用户lzpddd分配可对数据库 mydb的mytable表进行select,insert,update,delete,create,drop等操作的权限,并设定口令为\'mypassword\';
mysql>grant all privileges on *.* to [email protected] identified by \'mypassword\';
给来自192.168.1.88的用户lzpddd分配可对所有数据库的所有表进行所有操作的权限限,并设定口令为\'mypassword\';
mysql>grant all privileges on *.* to lzpddd@\'%\' identified by \'mypassword\';
给来自任何IP地址的用户lzpddd分配可对所有数据库的所有表进行所有操作的权限限,并设定口令为\'mypassword\';
3、关闭服务器端防火墙或者开放3306端口(很重要);
(自己在防火墙,或是操作系统相关的地方进行设置。)
4、客户端连接:
进入命令行,windows cmd,连接:
mysql -u 用户名 -p密码 -h 服务器IP地址 -P 服务器端MySQL端口号 -D 数据库名
注意:
  (1)服务器端口标志-P一定要大些以区别于用户-p,如果直接连接数据库标志-D也要大写;
  (2)如果要直接输入密码-p后面不能留有空格如-pmypassword;
    (3)命令结束段没有\';\'分号。
例子:
mysql -u lzpddd -pmypassword -h 192.168.1.88 -P 3306 -D mydb