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