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数据类型
数据类型是用来比较方式(排序方式),存储空间(取值范围),能够参与的运算等等,这些功能都是由数据类型来确定的。
数值型:体重、身高、成绩、工资
字符型:姓名、工作单位、通信地址
枚举型:兴趣爱好、性别
日期时间型:出生日期、注册时间
数值类型图:
整数型的字段
- 使用unsigned修饰时,对应的字段只保存正数
- 数值不够指定宽度时,在左边空格补位
- 宽度仅是显示宽度,存数值的大小由类型决定
- 使用关键字zeroofill 时,填0代替空格补位
- 数值超出范围时,报错。
使用 desc 或describe 查看表结构
浮点型字段
- 定义格式: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)
- 创建一个学生表
– 包括姓名、入学年份、生日、培训时间段
时间函数
- 时间函数无需库、表,可直接调用
– 使用SELECT指令输出函数结果
枚举类型字段
- 从给定值几何中选择单个值,ENUM
– 定义格式:enum(值1,值2,…,值N) - 从给定值集合中选择一个或多个值,SET
– 定义格式:set(值1,值2,…,值N)