zoukankan      html  css  js  c++  java
  • mariadb.md

    mariadb

    一、用户新建与权限

    1. 新建用户(管理员权限)
    #查看用户列表
    select host,user,authentication_string from mysql.user;
    
    #新建用户
    insert into mysql.user(user,host,password) values('ggo','localhost',password('1234'));
    insert into mysql.user(user,host,password) values('ggo','%',password('1234'));
    #删除用户
    drop user 'deepin'@'127.0.0.1'; #‘%’表示远程
    
    #刷新
    flush privileges;
    
    1. 授权
    # GRANT privileges ON databasename.tablename TO 'username'@'host';
    #privileges:
    #    用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL.
    #databasename:
    #    数据库名
    #tablename:
    #    表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*.
    
    # 授权Ann拥有db1数据库的所有???(选择)权限,允许在localhost登录
    MariaDB [(none)]> grant select on db1.* to ann@localhost;
    MariaDB [mysql]> flush privileges;
     
    # 授权Jack拥有db1数据库的所有权限,允许在192.168.13.34登录
    MariaDB [(none)]> grant all on db1.* to jack@'192.168.13.34';
    MariaDB [mysql]> flush privileges;
     
    # 授权Steven拥有db1数据库的所有权限,允许从任意远程主机登陆,
    # 注意你授权时用%,你创建用户时,必须也是%,要对应,否则报错.
    MariaDB [(none)]> grant all on db1.* to steven@'%';
    MariaDB [mysql]> flush privileges;
    
    #授予权限并且可以授权
    MariaDB [mysql]>grant all privileges on *.* to username@'hostname' identified by 'password' with grant option;
    
    #授权部分参数值:
    #all privileges,all
    #select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file
    

    二、MariaDB数据库查看用户

    1. MariaDB查看当前登录用户
    # 方法1
    MariaDB [(none)]> select user();
    # 方法2
    MariaDB [(none)]> select current_user;
    # 方法3
    MariaDB [(none)]> select current_user();
    
    1. MariaDB中如何显示所有用户?
    MariaDB [(none)]> select User,Host,Password from mysql.user;
    
    1. MariaDB显示所有的用户(不重复)
    MariaDB [mysql]> select distinct user from mysql.user;
    

    三、MariaDB数据库删除用户

    # 5.1 删除用户'jack'
    MariaDB [mysql]> delete from user where user='jack';
    # 5.2 删除用户'steven'
    MariaDB [(none)]> delete from mysql.user where user='steven' and host='%';
    # 5.3 删除用户'john'
    MariaDB [(none)]> drop user 'john'@'192.168.13.34';
    

    四、MariaDB数据库撤销用户权限

    1. 命令
    REVOKE privileges ON databasename.tablename FROM 'username'@'host';
    
    1. 参数
    #privileges:    用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL.
    #databasename:    数据库名
    #tablename:    表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*.
    
    1. 示例
    # 假如你在给用户授权的时候是这样的:
    grant select on db1.user to jack@'%';
    # 执行下面sql语句
    revoke select on *.* from jack@'%';
    # 并不能撤销该用户对db1数据库中user表的SELECT操作. 
    
    # 假如你在给用户授权的时候是这样的:grant select on *.* to jack@'%';
    # 执行下面sql语句
    revoke select on db1.user from jack@'%';
    # 并不能撤销该用户对db1数据库中user表的SELECT操作.
    

    6.4 查看授权信息

    MariaDB [(none)]> show grants for 'jack'@'192.168.13.34';
    

    6.5 撤销用户Jack所有权限

    revoke ALL PRIVILEGES ON `db1`.* from 'jack'@'192.168.13.34'
    

    五、mysql数据库一般用法

    1. 创建数据表

      create table stu10( id int(10) primary key auto_increment, name varchar(20) not null, age varchar(10) not null, address varchar(20) not null default '0');
      
    2. 创建唯一索

      create table stu10( id int(10) primary key auto_increment, name varchar(20) not null unique key, age varchar(10) not null, address varchar(20) not null);
      
      create table stu10( id int(10) primary key auto_increment, name varchar(20) not null, age varchar(10) not null, address varchar(20) not null, primary key ('id'), unique key ('name'));
      

      在标准的SQL语句中,一次插入一条记录的INSERT语句只有一种形式。

      INSERT INTO tablename(列名…) VALUES(列值);
      

      而在MySQL中还有另外一种形式。

      INSERT INTO tablename SET column_name1 = value1, column_name2 = value2,…;
      

      第一种方法将列名和列值分开了,在使用时,列名必须和列值的数一致。

      更新数据

      UPDATE table_name SET field1=new-value1, field2=new-value2 [WHERE Clause]
      
    3. sql语句格式

      • 添加外键约束:
      # alter table 从表 add constraint 外键(形如:FK_从表_主表) foreign key (从表外键字段) references 主表(主键字段);
      

      如果mysql报错:Error Code: 1215. Cannot add foreign key constraint (foreign keys)

      检查 主从表两个字段的属性是否一致

      • 级联删除,即在删除t_item表中的记录时同时删除t_bid表中的相关记录 。
      alter table 从表 add constraint 外键 foreign key(i从表外键字段) references 主表(主键字段) on delete cascade;
      

    img

    • 修改表字段数据类型

      # alter table 表名 modify colimn 字段名 数据包类型 
      alter table `PriMessage` modify column pmdate char(14);
      
    • 删除数据

      # DELETE FROM table_name [WHERE Clause]
      delete from `PriMessage` where pmmessage='null';
      
    • 查看某表的字段类型

      # select column_name,column_comment,data_type from information_schema.columns where table_name='查询表名称' and table_schema='数据库名称'
      select column_name, data_type from information_schema.columns where table_name = 'SecMessage' and table_schema='web';
      
    • 增加字段

      alter table table1 add transactor varchar(10) not Null;
      

    六、mariadb初始化安装

    • 安装 mariadb 软件包之后,你必须在启动 mariadb.service 之前运行下面这条命令:
    # mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
    
    • 启动mariadb服务

      # systemctl start mariadb.service
      
    • 用下面这个命令启动数据库级别的安全配置助手,来配置一些必要的安全选项:

      # mysql_secure_installation
      
  • 相关阅读:
    (三)openwrt主Makefile解析
    (二)我的Makefile学习冲动&&编译过程概述
    openwrt修改flash大小
    (一)openwrt源码目录概述
    git_sop 脚本使用说明
    Openwrt LuCI模块练习详细步骤
    openwrt简单ipk生成及Makefile解释
    oracle中比较两表表结构差异和数据差异的方法
    C#泛型集合之Dictionary<k, v>使用技巧
    SQL语句添加,删除主键
  • 原文地址:https://www.cnblogs.com/nsfoxer/p/14348079.html
Copyright © 2011-2022 走看看