Loading

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
    
posted @ 2022-05-28 17:40  nsfoxer  阅读(109)  评论(0编辑  收藏  举报