Linux创建mysql用户,赋权限
查看数据库实例中的用户权限信息
在Linux的mysql指令路径下执行./mysql -u root -p 登录mysql(root权限,需要有mysql.user查看权限的用户)
mysql.user表中所有的用户权限信息创建用户
mysql> create user 'noone'@'localhost' identified by '123456';
ps:
noone– 你将创建的用户名
localhost – 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%.
123456 – 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器.
修改用户密码:
mysql> set password for noone=password('123456');
删除用户:
mysql> drop user noone;
授权
mysql> grant all on *.* to noone ;
all :所有数据库权限,包括 select ,update ,insert ,delete
mysql> grant select,insert on leo.* to noone ;
leo: 数据库名,表示该用户只可对该数据库进行操作
* : 表名,表示该用户只可对该表进行操作
取消用户的权限
mysql> revoke select on leo .* from noone ;
查看用户权限:
mysql> show grants for noone ;
更新数据库
mysql> flush privileges;
所有操作必须执行命令立即生效
禁止MySQL root用户远程访问权限
use mysql;
update user set host = "localhost" where user = "root" and host = "%";
flush privileges;
1, 切换到mysql数据库;
2, 修改root用户的host属性,确保其为localhost,这表示只能本地访问;
3, 刷新。
打开MySQL root用户的远程访问权限:
use mysql;
update user set host = "%" where user = "root" and host = "localhost" ;
flush privileges;
最后,设置好了以后,要重启MySQL进程。
防火墙防止禁止远程连接
此处为阿里云防火墙设置,接受任何ip连接本地服务器
1.删除配置文件my.cnf中的bind-address参数取消绑定
2.执行 vim /etc/sysconfig/iptables
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
加入这句话就可以了, 注意这句话一定要加在最后一句话的上面. 否则不会生效.
同样如果是其它端口把"3306"换成相应端口即可.
然后重启一下防火墙
service iptables restart