mariadb.md
mariadb
一、用户新建与权限
- 新建用户(管理员权限)
#查看用户列表 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;
- 授权
# 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数据库查看用户
- MariaDB查看当前登录用户
# 方法1 MariaDB [(none)]> select user(); # 方法2 MariaDB [(none)]> select current_user; # 方法3 MariaDB [(none)]> select current_user();
- MariaDB中如何显示所有用户?
MariaDB [(none)]> select User,Host,Password from mysql.user;
- 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数据库撤销用户权限
- 命令
REVOKE privileges ON databasename.tablename FROM 'username'@'host';
- 参数
#privileges: 用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所的权限则使用ALL. #databasename: 数据库名 #tablename: 表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*.
- 示例
# 假如你在给用户授权的时候是这样的: 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数据库一般用法
-
创建数据表
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'); -
创建唯一索
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] -
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;
-
修改表字段数据类型
# 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
本文作者:nsfoxer's blog
本文链接:https://www.cnblogs.com/nsfoxer/p/16321406.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步