一、创建一个用户
create user xxxxx@localhost identified by 'xxxxxxx';
二、开启mysql远程连接
2.1 进入mysql
mysql -u root -p mysql # 第1个mysql是执行命令,-u 用户名 -p root密码
2.2在mysql控制台执行:
grant all privileges on *.* to 'test'@'%' identified by 'xxxxxxx' with grant option; # 下面会详细介绍grant 命令 # test是用户名,%代表任意主机,'xxxxxxx'指定的登录密码(这个和本地的root密码可以设置不同的,互不影响) flush privileges;# 重载系统权限
2.3 允许3306端口
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 3306-j ACCEPT # 查看规则是否生效 iptables -L -n # 或者: service iptables status # 此时生产环境是不安全的,远程管理之后应该关闭端口,删除之前添加的规则
2.4 上面iptables添加/删除规则都是临时的,如果需要重启后也生效,需要保存修改:
service iptables save # 或者: /etc/init.d/iptables save vi /etc/sysconfig/iptables # 加上下面这行规则也是可以的 -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT /usr/bin/mysqladmin -uroot password "xxxxxxxx' /usr/bin/mysql_secure_installation
三、创建用户权限
3.1
grant select on dmc_db.* to admin; 赋予用户查询权限 dmc_db是库名称 * 可以指定表的权限 admin 是用户 这句户就是说给 admin这个用户赋予 dmc_db 这个库所有的查询权限 grant update on dmc_db.* to admin; 赋予用户更新权限 grant insert on dmc_db.* to admin; 赋予用户插入权限 grant delete on dmc_db.* to admin; 赋予用户删除权限 grant select,update,insert,delete on dmc_db.* to admin; 一次性赋予增删改查权限 grant select,update,insert,delete on dmc_db.* to 'test'@'%' identified by 'xxxxxxx'; # 这句户是指 开启远程主机 并且指定密码
四、 回收远程主机的权限
revoke all privileges on *.* from test; update user set authentication_string=password('123qwe') where user='root' and Host = 'localhost'; # mysql5.7 修改root密码
参考文章
结束语
本文有任何错误,或有任何疑问,欢迎留言说明。
网友最新评论