Redhat7 环境安装mysql

一、搭建mysql数据库服务器

官网下载MySQL安装包

1.1 删除系统自带mariadb mysql数据库软件

#rpm   -qa  |  grep   -i  mariadb
#systemctl  stop  mariadb
#rpm   -e  --nodeps   mariadb-server   mariadb
#rm  -rf  /etc/my.cnf
#rm  -rf  /var/lib/mysql

1.2 安装mysql软件

tar  -xf  mysql-5.7.17-1.el7.x86_64.rpm-bundle.tar
#  yum   -y   install    perl-JSON   
#  rpm  -Uvh    mysql-community-*.rpm
#  rpm  -qa   | grep  -i   mysql

1.3 启动服务

#systemctl   start  mysqld
# systemctl   enable  mysqld

二、数据库服务的基本使用

2.1 使用初始密码在本机连接数据库服务

# pass=$(grep password /var/log/mysqld.log)
# mysql   -hlocalhost   -uroot   -p'$pass'

2.2 重置本机连接密码

两行配置分别为:
1、只检查密码的长度,不检查复杂度
2、密码长度不能小于6个字符

mysql>set global validate_password_policy=0;
mysql>set global validate_password_length=6;
mysql>alter  user   root@"localhost"  identified by ‘123456’;
mysql>quit

或者

SET PASSWORD FOR ‘username’@‘hostname/IP’ = PASSWORD(‘yinzhengjie’);”
让密码策略永久生效
 #vim /etc/my.cnf
 [mysqld]
 validate_password_policy=0
 validate_password_length=6
 :wq
 #systemctl restart mysqld

2.3 管理数据库的sql命令

数据库的命名规则
- 可以使用数字/字母/下划线,但不能纯数字
- 区分大小写、具有唯一性
- 不可以使用指令关键字、特殊字符

管理表的 sql命令
查看 mysql> show tables;
创建 mysql> create table gamedb.stuinfo(
-> name char(10),
-> addr char(20)
-> );
删除 drop table 库名.表名 ;

查看表记录 select * from 库名.表名 ;
查看表结构 desc 库名.表名 ;

2.4 管理表的 sql命令

查看 mysql> show tables;
创建 mysql> create table gamedb.stuinfo(
-> name char(10),
-> addr char(20)
-> );
删除 drop table 库名.表名 ;
查看表记录 select * from 库名.表名 ;
查看表结构 desc 库名.表名 ;

2.5 管理记录的sql命令

查看 select * from 库名.表名 ;
插入 insert into 库名.表名 values(字段值列表);
insert into gamedb.stuinfo values (“tom”,“beijing”);
insert into gamedb.stuinfo values (“bob”,“beijing”);

修改 update 库名.表名 set 字段名=值 where 条件;
update gamedb.stuinfo set addr=“shanghai” where name=“tom”;
删除
delete from 库名.表名;
delete from gamedb.stuinfo;

三、mysql数据类型

数据类型是用来比较方式(排序方式),存储空间(取值范围),能够参与的运算等等,这些功能都是由数据类型来确定的。

数值型:体重、身高、成绩、工资
字符型:姓名、工作单位、通信地址
枚举型:兴趣爱好、性别
日期时间型:出生日期、注册时间

数值类型图:

MySql包含在哪个安装包_表名

整数型的字段

  • 使用unsigned修饰时,对应的字段只保存正数
  • 数值不够指定宽度时,在左边空格补位
  • 宽度仅是显示宽度,存数值的大小由类型决定
  • 使用关键字zeroofill 时,填0代替空格补位
  • 数值超出范围时,报错。

使用 desc 或describe 查看表结构

MySql包含在哪个安装包_mysql_02

浮点型字段

  • 定义格式:float(总宽度、小数位数)
  • 当字段值与类型不匹配时,字段值作为0处理
  • 数值超出范围时,仅保存最大/最小值

字符类型字段

  • 定长:char(字符型)
    – 最大长度255字符
    – 不够指定字符数时,在右边用空格补齐
    – 字符数超出时,无法写入数据
  • 变长:varchar(字符型)
    – 按数据实际大小分配存储空间
    – 字符数超出时,无法写入数据
  • 大文本类型: txt/blob
    – 字符数大于65535存储时使用

日期时间类型字段

  • 日期时间,DATETIME
    – 占用8个字节
    – 范围1000-01-01 00:00:00.000000
    ~ 9999-12-31 23:59:59.999999
  • 日期时间,TIMESTAMP
    – 占用4个字节
    – 范围 1970-01-01 00:00:00.000000
    ~ 2038-01-19 03:14:07.9999
  • 日期,DATE
    – 占用4个字节
    – 范围:0001-01-01 ~ 9999-12-31
  • 年份,YEAR
    – 占用1个字节
    – 范围:1991 ~ 2155
  • 时间,TIME
    – 占用3个字节
    – 格式:HH:MM:SS

关于日期时间类型字段(绪1)

  • 日期字段默认值
    – 当为给TIMESTAMP赋值时,自动以当前系统时间赋值,而DATETIME字段默认赋值为 NULL
  • YEAR年份默认值
    – 默认用4位数字表示
    – 当只用2位数字赋值时,01 ~ 69视为2000 ~ 2069 ,而70 ~ 79 视为1970 ~ 1999

日期时间类型(绪2)

  • 创建一个学生表
    – 包括姓名、入学年份、生日、培训时间段

时间函数

MySql包含在哪个安装包_表名_03

  • 时间函数无需库、表,可直接调用
    – 使用SELECT指令输出函数结果

枚举类型字段

  • 从给定值几何中选择单个值,ENUM
    – 定义格式:enum(值1,值2,…,值N)
  • 从给定值集合中选择一个或多个值,SET
    – 定义格式:set(值1,值2,…,值N)