zoukankan      html  css  js  c++  java
  • mysql用户操作、权限分配、远程登录设置

    对最近mysql的常用运维命令进行整理

    查看使用的哪个配置文件启动的mysql

    1.  ps aux|grep mysql|grep 'my.cnf'
    如果启动的命令中选择了配置文件,则可以查询出来,也可能查询不到。
    
    
    2.  mysql --help|grep 'my.cnf'
    输出:
    order of preference, my.cnf, $MYSQL_TCP_PORT,
    /etc/my.cnf /etc/mysql/my.cnf /opt/app/mysql/etc/my.cnf ~/.my.cnf 
    启动时选择配置文件的默认顺序从前到后。
    
    3.  locate my.cnf命令可以列出所有的my.cnf文件,或者使用find命令也可以
    
    

    账户的创建修改和设置权限

    1.查看当前已有用户

        连接mysql的通用方式,可以省略其中一部分参数 :
        mysql -uroot -h 127.0.0.1 -P 3306 -p
    
        注意:大写P是端口  小写p是密码
        
    

    2. create user创建用户和修改密码和删除

    2.1 创建用户:

    CREATE USER 'username'@'host' IDENTIFIED BY 'password';

    
    例子:
    
        CREATE USER 'vinter'@'localhost' IDENTIFIED BY '123456';
        注意
        用户名和host必须加引号否则不能运行
        create user vinter;
        此种写法账户无密码,可以在任意客户端任意ip下登录
        
    
    2.2 修改密码:
    2.2.1 最容易记住的,就是直接update user表,update成功后要使用 flush privileges;更新

    例如

     update user set password = password('111111') where user = 'vinter';
     
     flush privileges;
    
    2.2.2 使用mysqladmin语法:mysqladmin -u用户名 -p旧密码 password 新密码
    mysqladmin -u vinter -p 123 password 456;
    
    2.2.3 使用set password 语句修改

    SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
    如果是当前登陆用户用SET PASSWORD = PASSWORD("newpassword");

        set password forr 'vinter'@'%'=password('haojia');
    
    2.3 删除用户:
    DROP USER username@localhost;
    

    3.使用grant语句设置权限

    1. 赋予权限:

    格式语句:
    grant 权限1,权限2,...权限n on 数据库名称.表名称 to 用户名@用户地址 identified by '连接密码' [with grant option];

    权限取值如下:

    select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等

      数据库名和表名可以使用通配符来表示所有,比如 dbname..
     
    例子:

    grant all privileges on testdb.* to '‘'vinte'r@'127.0.0.1' identified by '111111';
    
    grant insert,delete,select,update on testdb.* to vinter@127.0.0.1 identified by '111111';
    
    identified by 可以不写,如果写会更改密码为新密码。
    

    注:如果带了 with grant option则被授予权限的人,可以把此权限再转授权(传递)给其他用户。

    2. 撤销权限

    语法:REVOKE 权限列表 ON db.table FROM 'username'@'localhost';

    REVOKE ALL PRIVILEGES ON *.* FROM 'vinter'@'%';
    
    revoke update on *.* from 'vinter'@'%' ;
    

    设置远程登录

    我们先说一下实现远程登录mysql的条件
    首先mysql必须设置相关的权限,允许该账户远程登录,第二需要防火墙设置了3306端口的远程访问。

    1. mysql设置远程访问

    可以使用grant语句,可以直接更新user表中相关项。

    例子中用户为vinter,ip为192.168.1.111
    //固定ip:
    grant all privileges on *.* to 'vinter'@'192.168.1.111' identified by '123' with grant option;
    
    insert into user (host,user,password) values('192.168.1.111','vinter',password('123'));
    
    
    //不限制ip
    grant all privileges on *.* to 'vinter'@'%' identified by '123' with grant option;
    
    insert into user (host,user,password) values('%','vinter',password('123'));
    
    

    2. 防火墙设置(centos7)

    常用的如下几个其他的见文后附录:

    • 添加一个端口

    firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)

    • 重新载入

    firewall-cmd --reload

    • 查看

    firewall-cmd --zone=public --query-port=80/tcp

    • 查看所有打开的端口

    firewall-cmd --zone=public --list-ports

    附录 firewalld基本操作

    1、firewalld的基本使用

    启动: systemctl start firewalld

    关闭: systemctl stop firewalld

    查看状态: systemctl status firewalld

    开机禁用 : systemctl disable firewalld

    开机启用 : systemctl enable firewalld

    2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。

    启动一个服务:systemctl start firewalld.service

    关闭一个服务:systemctl stop firewalld.service

    重启一个服务:systemctl restart firewalld.service

    显示一个服务的状态:systemctl status firewalld.service

    在开机时启用一个服务:systemctl enable firewalld.service

    在开机时禁用一个服务:systemctl disable firewalld.service

    查看服务是否开机启动:systemctl is-enabled firewalld.service

    查看已启动的服务列表:systemctl list-unit-files|grep enabled

    查看启动失败的服务列表:systemctl --failed

    3.配置firewalld-cmd

    查看版本: firewall-cmd --version

    查看帮助: firewall-cmd --help

    显示状态: firewall-cmd --state

    查看所有打开的端口: firewall-cmd --zone=public --list-ports

    更新防火墙规则: firewall-cmd --reload

    查看区域信息: firewall-cmd --get-active-zones

    查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0

    拒绝所有包:firewall-cmd --panic-on

    取消拒绝状态: firewall-cmd --panic-off

    查看是否拒绝: firewall-cmd --query-panic

    添加端口

    firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)

    重新载入

    firewall-cmd --reload

    查看

    firewall-cmd --zone=public --query-port=80/tcp

    删除

    firewall-cmd --zone=public --remove-port=80/tcp --permanent

  • 相关阅读:
    快速排序——中位数
    DataGridView 在下拉框添加下来事件
    VS2015 调试时 编辑并继续不可用
    用soapUI测试webservice
    SQL Server 2008 表变量 临时表
    mvc 返回值
    asp.net 页面上的点击事件
    C# SQL 面试题自我总结
    cf contest 1458
    【CFR#655】F Omkar ans Modes
  • 原文地址:https://www.cnblogs.com/vinter/p/10522802.html
Copyright © 2011-2022 走看看