Mysql的安装部署及简单操作介绍

Mysql

MySQL介绍

特点及应用

  • 主要特点
    • 适用于中小规模的关系型数据库系统
    • 支持Linux Unix Windows等多种操作系统
    • 支持Python Java Perl PHP等编程语言
  • 典型应用环境
    • LAMP平台, 与Apache HTTP Server 组合
    • LNMP平台, 与Nginx组合

常见的MySQL管理工具

类型 界面 操作系统 说明
mysql 命令行 跨平台 MySQL官方bundle包自带
MySQL-Workbench 图形 跨平台 MySQL官方提供
MySQL-Front 图形 Windows 开源,轻量级客户端软件
Navicat 图形 Windows 专用 功能强大 商业版
phpMyAdmin 浏览器 跨平台 开源,需LAMP平台

安装部署MySQL

	tar -xf mysql-5.7.17.tar 
	yum -y install mysql-community*
	systemctl start mysqld 				# 启动服务
	systemctl enable mysqld				# 开机运行
	systemctl status mysqld 				# 查看状态
	netstat -ntulp | grep :3306 			# 查看服务信息
	ps -C mysqld								# 查看进程

Mysql 相关参数

软件安装后自动创建相关目录与文件

文件 说明
/etc/my.cnf 主配置文件
/var/lib/mysql 数据库目录
默认端口号 3306
进程名 mysqld
传输协议 TCP
进程所有者 mysql
进程所属组 mysql
错误日志文件 /var/log/mysqld.log

MySQL初始配置

初始密码登录

  • 数据库管理员名为 root
    • 默认仅允许root本机连接
    • 首次登录密码在安装软件时随机生成
    • 随机密码存储在日志文件 /var/log/mysqld.log 里
    • 连接命令 : mysql -h数据库地址 -u用户 -p密码
	grep 'password' /var/log/mysqld.log 		# 查看随机密码
	mysql -u root -p密码
  • 修改root密码
    • 使用alter user 命令修改登录密码
    • 新密码必须满足密码策略
    • 管理员 root 使用新密码连接服务

密码策略

策略名称 验证方式
0 or LOW 长度
1 or MEDIUM(默认) 长度; 数字, 小写/大写, 和特殊字符
2 or STRONG 长度; 数字, 小写/大写, 和特殊字符; 字典文件
	# 进入数据库后
	show variables like "%password%"; 			# 查看变量
	set global validate_password_policy=0; 	# 修改密码策略
	set global validate_password_length=6; 	# 修改密码长度
	# 修改密码
	alter user user() identified by "密码";
	set password for root@localhost=password("密码");

	# 配置永久密码策略
	vim /etc/my.cnf
		... ...
		[mysqld]
		validate_password_policy=0
		validate_password_length=6

连接mysql服务

  • 连接方式 :

    • 客户端连接MySQL服务的方法
      • 命令行
      • WEB页面
      • 安装图形软件
      • 编写脚本(php java python)
    • 使用mysql命令
      • mysql -h服务器IP -u 用户名 -p密码 [数据库名]
      • quit或exit退出
  • 数据库存储流程

    • 客户端把数据存储到数据库服务器上的步骤
      • 连接数据库服务器
      • 建库(类似于文件夹)
      • 建表(类似于文件)
      • 插入记录(类似于文件内容)
      • 断开连接
  • MySQL管理环境

    • SQL命令使用规则
      • SQL命令不区分字母大小写(密码、变量值除外)
      • 每条SQL命令以 ; 结束
      • 默认命令不支持Tab键自动补全
      • \c 终止sql命令
    • 常用SQL命令分类(管理数据库使用SQL 结构化查询语言)
      • DDL 数据定义语言 如 : create alter drop
      • DML 数据操作语言 如 : insert update delete
      • DCL 数据控制语言 如 : grant revoke
      • DTL 数据事务语言 如 : commit rollback savepoint

MySQL基本操作

库管理命令

  • 库 类似于文件夹, 用来存储表
    • 可以创建多个库, 通过库名区分
    • 库命名规则
      • 仅可以使用数字、字母、下划线、不能纯数字
      • 区分字母大小写, 具有唯一性
      • 不可使用指令关键字、特殊字符
	show databases; 			# 显示已有的库
	select user(); 				# 显示连接用户
	use 库名; 						# 切换库
	select database 库名; 		# 显示当前所在的库
	create database 库名;		# 创建新库
	show tables; 				# 显示已有的表
	drop database 库名; 		# 删除库 

表管理命令

	# 建表 表类似于存储数据的文件
	create table 库名.表名(
		字段名1 类型(宽度) 约束条件,
		字段名2 类型(宽度),
		....)DEFAULT CHARSET=utf8; 		# 指定中午字符集, 可以给字段赋值中文
	desc 库名.表名;			# 查看表结构
	drop table 库名.表名;	# 删除表

记录管理命令

	# 查看表记录
	select * from 库名.表名;
	# 插入表记录
	insert into 库名.表名 values(值列表);
	insert into db1.stuinfo values("jim","usa"),("lilei","china");
	# 修改表记录
	update 库名.表名 set 字段=;
	update db1.stuinfo set homeaddr="beijing";
	# 删除表记录
	delete from 表名;

MySQL 数据类型

常见信息种类

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

字符类型

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

数字类型

  • 整数型
类型 名称 有符号范围 无符号范围
tinyint 微小整数 -128~127 0~255
smallint 小整数 -32768~32767 0~65535
mediumint 中整型 -2^23 ~ 2^23 -1 0~2^24 -1
int 大整型 -231~231 -1 0~2^32 -1
bigint 极大整型 -263~263-1 0~2^64-1
unsigned 使用无符号存储范围
  • 浮点型
    • 格式1 : 字段名 类型;
    • 格式2 : 字段名 类型(总宽度,小数位数)
类型 名称
float 单精度
double 双精度

日期时间类型

  • 日期时间datetime

    • 范围 : 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
    • 格式 : yyyymmddhhmmss
  • 日期时间timestamp

    • 范围 : 1970-01-01 00:00:00 ~ 2038-01-19 00:00:00
    • 格式 : yyyymmddhhmmss
  • 日期 date

    • 范围 : 0001-01-01 ~ 9999-12-31
    • 格式 : yyyymmdd
  • 年 year

    • 范围 : 1901 ~ 2155
    • 格式 : yyyy
  • 时间 time

    • 格式 : HH:MM:SS
  • 关于日期时间自段

    • 当未给timestamp字段赋值时, 自动以当前系统时间赋值, 而 datetime 值为NULL
  • year类型

    • 要求使用4位数赋值
    • 当使用两位数赋值时 :
      • 01~69 视为 2001 ~ 2069
      • 70~99 视为 1970 ~ 1999
  • 时间函数

    • MySQL服务内置命令
      • 可以使用时间函数给字段赋值
类型 用途
curtime() 获取当前的系统时间
curdate() 获取当前的系统日期
now() 获取当前系统日期和时间
year() 获取年
month() 获取月
day() 获取日
date() 获取日期
time() 获取时间

枚举类型

  • enum 单选

    • 格式 : 字段名 enum(值1,值2,值N)
    • 仅能选择一个值
    • 字段值必须在列表里选择
  • set 多选

    • 格式 : 字段名 set(值1,值2,值N)
    • 选择一个或多个
    • 字段值必须在列表里选择
发布了25 篇原创文章 · 获赞 24 · 访问量 7918

猜你喜欢

转载自blog.csdn.net/qq_40023447/article/details/103638025