Linux-数据库服务器安装

安装

yum -y install mariadb*
// 安装mariadb开头的所有
systemctl { start | stop | status | restart } mariadb
systemctl { enable | disable }  mariadb

初始化

mysql_secure_installation
输入当前root密码,直接回车
set root password y 
remove anonymous users y        // 删除匿名用户
disallow root login remotely y  // 不允许root远程登陆 是的
remove test database and access to it y  // 删除test的数据库 都可以
reload privilege table       y  // 重新加载权限表

登陆并使用

mysql -u root -p
输入密码

查看数据库: show databases ;
创建数据库: create  database [数据库名];
使用数据库: use [数据库名];
删除数据库: drap database [数据库名];

查看表: show tables;
创建: create tables [表名] (字段1 约束,字段2 约束);
复制: creata tables [表名] like [要复制的表名];
删除: drap tables [表名]
修改: olter tables [表名] [add 添加字段/drap 删除字段/ change 修改];
查看表结构: describe [表名]

数据库对象操作:
DDL数据定义语言[创建:create/修改:alter/删除:drap]
DML数据操纵语言[添加:insert/修改:updata/删除:delete/查看:select] 
添加: insert into [表名](字段1,字段2) values (' ',' ',' ')
删除: delete from [表名] where [条件]
查看: select * from [表名] where [条件]
更新: update [表名] set [字段]=['值'] where [条件]

用户管理

创建用户
CREATE USER [用户名] IDENTIFIED BY '[密码]';
修改密码
SET PASSWORD FOR [用户名]=PASSWORD('[密码]');
删除用户
drop user [用户名] ;
查看用户
select user,host from mysql.user;
// 在mysql数据库中可以不加mysql

授权

grant命令的格式:
grant 权限级别 [(字段名)]  on  数据库名.表名  to 用户名@域名或IP地址 [ identified by '[密码]']  [with grant option];
例如:MariaDB [none]>grant all privileges on [数据库].[表名]  to user1@'localhost' indentified by '1234' with grant option;
说明:
all privileges:
// 表示所有权限,也可以使用select、update等具体权限。
on:
// 用来指定权限针对的数据库和表。
[数据库].[表名]:
// 如果使用*表示所有。
to:
// 表示将权限赋予某个用户。
user1@'localhost':
// 表示user1用户,@后面接限制的主机,可以是IP、IP段、域名、以及%,%表示任何地方(远程登录)。(用户不存在则创建用户)
identified by:
// 指定用户的登录密码。
with grant option:
// 表示该用户可以将自己拥有的权限授权给别人。

刷新权限
使用flush命令可以使权限生效,尤其是当权限表做了update或者delete更新等操作时。
MariaDB [none]>flush  privileges;

查看权限
1.查看当前用户权限
MariaDB [none]>show  grants;
2.查看user1用户权限
MariaDB [none]>show  grants for 'user1'@'localhost';

撤销权限
revoke命令的格式:
revoke权限级别 [(字段名)]  on  数据库名.表名  from 用户名@域名或IP地址;
例如:收回user1的本地删除权限
MariaDB [none]>revoke delete on [数据库].[表名]  from user1@'localhost' ;

数据库的备份与恢复
1.备份
// 在数据库管理的实际工作中,数据库的定期备份是一件至关重要的事情。通常管理员以批处理的方式进行数据库的自动备份,这样一旦数据库发生故障或者误操作时,可以进行数据库的恢复来保证服务器的正常运行。
// mysqldump命令可以用于数据库的备份。
mysqldump命令格式:
mysqldump  [备份数据库]  --user=用户名 --password=密码>备份的文件名 
例如:备份数据库student,备份文件db01.sql
\#mysqldump  student --user=root --password=1234>db01.sql
// 备份地址可以写路径,直接写名字会放在当前执行命令的地方
2.恢复
mysql -u 用户名 -p 数据库名 < 备份文件
注意:恢复数据库之前,首先确保此数据库存在,然后再恢复。

拓展:
如果出现ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
编辑/etc/my.cnf,在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程。重新设置mysql_secure_installation 。
1.开启MySQL的InnoDB引擎,要不然当你使用“alter table 表名 type=InnoDB”时会提示错误。
修改MySQL的配置文件my.ini:
#default-storage-engine=INNODB    ----去掉前面的“#”
skip-innodb                                       -----注释掉这句话,在前面加“#”
2.修改表的type属性,如果你的表不是InnoDB引擎的话。
alert table 表名 type=InnoDB
3.如果外键还是没起作用,请开启外键检测。
set foreign_key_checks=1;

常用字段类型

类型描述
INT整型,4个字节
FLOAT浮点型,4个字节
DOUBLE双精度浮点型,8个字节
DATE日期型,3个字节
CHAR(M)字符型,M个字节,0<=M<=255 不可变
VARCHAR(M)字符串型,L+1个字节,其中L<=M且0<=M<=65535 可变
BLOB可变二进制型,L+2个字节,其中L<216
TEXT最大长度为65535个字符的字符串

字段约束用来进一步对某个字段所允许输入的数据进行约束,如表所示为常用的字段约束。

约束描述
Null(或Not Null)允许字段为空(或不允许字段为空),默认为Null
Default指定字段的默认值
Auto_Increment设置Int型字段能够自动生成递增1的整数 

表级约束用于指定表的主键、外键、索引和唯一约束,如表所示。

约束描述
PRIMARY KEY为表指定主键
FOREIGN KEY…REFERENCES为表指定外键
INDEX创建索引
UNIQUE为某个字段建立索引,该字段的值必须唯一
FULLTEXT为某个字段建立全文索引
阅读剩余
THE END