数据库连接成功,但是操作时(我的操作是建库)报错:Access denied for user…
网上查查改改搞了半天,还是不行,而且我远程桌面进入服务器,在dos里面也没有办法创建数据库。那终于找到原因了:用户无权限创建数据库。。。我用的是bt面板,bt默认可能是把所有新建的用户权限都修改了,上网查到的修改权限语句如下:
1. 执行:flush privileges;(更新账号权限)
--更新账号权限
flush privileges;
2. 执行:grant all privileges on *.* to ‘账号’@’%’ identified by ‘密码’ with grant option;(修改账号权限)
--修改账号权限
grant all privileges on *.* to '账号'@'%' identified by '密码' with grant option;
all privileges:表示将所有权限授予给用户。也可指定具体的权限,如:SELECT、CREATE、DROP等。
on:表示这些权限对哪些数据库和表生效,格式:数据库名.表名,这里写“*”表示所有数据库,所有表。如果我要指定将权限应用到test库的user表中,可以这么写:test.user
to:将权限授予哪个用户。格式:”用户名”@”登录IP或域名”。%表示没有限制,在任何主机都可以登录。比如:”yangxin”@”192.168.0.%”,表示yangxin这个用户只能在192.168.0IP段登录
identified by:指定用户的登录密码
with grant option:表示允许用户将自己的权限授权给其它用户
3. 执行:flush privileges;(更新账号权限)
--更新账号权限
flush privileges;
还有一种方法,慎用,这样很不安全,除非你根本不打算用数据库保存数据,或者只是用来练语法的(像我这样的。。。)
方法如下:
1.打开MySQL目录(如果是在自己电脑装的MySQL,那文件就在C:\Program Files (x86)\MySQL\MySQL Server 5.5)下的my.ini文件,编辑,在文件的最后添加一行“skip-grant-tables”,保存并关闭文件。
2.切记,修改MySQL或者作为Apache模块的任何配置文件,修改完成后都要记得重启服务,win+R输入services.msc找到MySQL服务(这个服务名字在安装MySQL时可以自己修改,当时改成什么就找什么,默认是MySQL),右键重启,OK了。
skip-grant-tables这行语句是跳过权限检查,可以用来忘记密码时修改密码,上面的修改权限问题就更不在话下了。