ERROR 1044: Access denied for user: '@127.0.0.1' to database 'mysql'
的错误。
说明你没有将权限下放到远端连接帐户上,由于mysql的安全性在不断的提高,权限设置默认是拒绝的,你必须自己开放权限。
在服务器上用mysql -h 192.168.0.1 -u root -p mysql命令登录mysql数据库
然后用grant命令下放权限。
GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY 'root-password' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO root@127.0.0.1 IDENTIFIED BY 'root-password' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY 'root-password' WITH GRANT OPTION;
例如:
GRANT ALL PRIVILEGES ON *.* TO root@'%' identified by '123456'
注意:自己根据情况修改以上命令中的 “用户”“ip地址”“密码”。
参考方法二
给新加的几个数据库备份,在执行mysqldump的时候,居然报mysqldump: Got error: 1044: Access denied for user 'jpzen'@'localhost' to database 'information_schema' when using LOCK TABLES,网上一搜,觉得有可能是权限问题,马上查看mysql里操作记录,执行tail -n 40000 .mysql_history|grep GRANT,发现只给SELECT,INSERT,UPDATE,DELETE这几个权限,为了在不改动权限的情况下,那只能用下面的方法.
那可能是你用来备份的数据库用户没有lock table的权限,可以换一个权限更高的用户,或者使用mysqldump的另一个选项:--single-transaction
mysqldump -uyourusername -pyourpassword --single-transaction yourdb > yourdb.sql //phpfensi.com
解决一:加上-skip-lock-tables选项即可,即:
[root@xok.la]# mysqldump -u dbuser -ppass db --skip-lock-tables > db.sql
解决2:使用root账户备份.
ps:在导出时,加上--skip-lock-tables选项即可,但这个方法在数据量过大的话,会出现卡死,所以最好经常检查下sql备份,避免在要使用备份的时候杯具.