1.flush privileges刷新MySQL的系统权限
flush privileges 什么意思
mysql> update mysql.user set password=PASSWORD(‘新密码’) where User=’root’;
mysql> flush privileges;
mysql> quit
答:
mysql 新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效。
具体例子:
1.用户root用户进入mysql再打开mysql数据库(use mysql)后
create user xh identified by ‘xh’; //创建一用户xh并添加密码为xh
exit; //退出测试
2.返回C目录下用新用户重新进入mysql
mysql -uxh -pxh //进入成功
3.重新使用root用户进入mysql并打开mysql数据库
update user set password=password (‘monkey’) where user=’xh’; //更改xh用户密码为monkey
exit; //再次退出测试
4.直接以用户XH身份进入,用新密码进入看是否成功
mysql -uxh -pmonkey; //报错,密码不正确
5. 重新以ROOT 用户登陆并进入mysql数据库,重新修改用户密码
update user set password=password (‘monkey’) where user=’xh’; //更改xh用户密码为monkey
flush privileges; //刷新MySQL的系统权限相关表
exit;
6.再次退出,并以xh用户monkey密码进入,测试成功!
2.创建账号设置权限
//添加账号
create user 'dev_dev'@'%' IDENTIFIED by '123456';
//受于增、删、改、查的权限
grant ALL PRIVILEGES ON *.* TO 'dev_wxj'@'%';
示例:
mysql>grant select,insert,update,delete,create,drop on vtdc.employee to joe@10.163.225.87 identified by ‘123′;
给来自10.163.225.87的用户joe分配可对数据库vtdc的employee表进行select,insert,update,delete,create,drop等操作的权限,并设定口令为123。
mysql>grant all privileges on vtdc.* to joe@10.163.225.87 identified by ‘123′;
给来自10.163.225.87的用户joe分配可对数据库vtdc所有表进行所有操作的权限,并设定口令为123。
mysql>grant all privileges on *.* to joe@10.163.225.87 identified by ‘123′;
给来自10.163.225.87的用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。
mysql>grant all privileges on *.* to joe@localhost identified by ‘123′;
给本机用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。
//更新登录IP限制
update user set host = ’%’ where user = ’root’;
3.mysql防火墙关闭,解决远程无法连接
1.使用 iptables -nvL --line-number 检查mysql 端口 一般为3306
2. iptables -D INPUT 2 删除对应关闭mysql的序号