Day 33 初识数据库/mysql的安装和设置
初识数据库
什么是数据
描述事务的符号记录称为数据,描述事务的符号既可以是数字,也可以是文字,图片,图像,声音,语言等,数据有多种表现形式,它们都可以经过数字化后存入计算机
在计算机中描述一个事物,就需要抽取这一事务的典型特征,组成一条记录,就相当于文件里的一行内容
什么是数据库
数据库即存放数据的仓库,只不过这个仓库是在计算机存储设备上的,而且数据是按一定的格式存放的
数据库是长期存放在计算机内,有组织,可共享的数据即可
数据库中的数据按一定的数据模型组织,描述和存储,具有较小的冗余度,较高的数据独立性和易扩展性,并可为各种用户共享
什么是数据库管理系统
了解了数据和数据库的概念后,如何科学的组织和存储数据,如何高效获取和维护数据成立关键
这就用到了一个系统软件---数据库管理系统
如MySQL, Oracle, SQLite, Access, MS SQL Server
mysql注意用于大门户,例如搜狗,新浪等,它主要的优势就是开放源代码,因为开放源代码,所以这个数据库是免费的
Oracle主要用于银行,铁路,飞机等,该数据库功能强大,软件费用高
sql server是微软公司的产品,主要应用于中大型企业,如联想,方正等
数据库服务器,数据管理系统,库,表与记录的关系
数据库服务器: 运行数据库管理软件
数据库管理软件: 管理-数据库
数据库: 即文件夹,用来组织文件/表
表: 即文件,用来存放多行内容/多条记录
数据库分类
关系型数据库
关系型数据库需要有表结构,有数据类型的约束
关系型数据库管理软件: mysql, db2, oracle, access, sql server, sqlite
非关系型
非关系型数据库是key-value存储的,没有表结构
非关系型数据库管理软件: mongodb, redis, memcache
MySQL介绍
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle旗下公司.MySQL是目前最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System)应用软件之一
什么是MySQL
mysql就是一个基于socket编写的C/S架构的软件
下载安装
windows版本
#1、下载:MySQL Community Server 5.7.16
http://dev.mysql.com/downloads/mysql/
#2、解压
如果想要让MySQL安装在指定目录,那么就将解压后的文件夹移动到指定目录,如:C:\mysql-5.7.16-winx64
#3、添加环境变量
【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【将MySQL的bin目录路径追加到变值值中,用 ;分割】
#4、初始化
mysqld --initialize-insecure
#5、启动MySQL服务
mysqld # 启动MySQL服务
#6、启动MySQL客户端并连接MySQL服务
mysql -u root -p # 连接MySQL服务器
# 上一步解决了一些问题,但不够彻底,因为在执行【mysqd】启动MySQL服务器时,当前终端会被hang住,那么做一下设置即可解决此问题:
# 将MySQL服务制作成windows服务
# 注意:--install前,必须用mysql启动命令的绝对路径
# 制作MySQL的Windows服务,在终端执行此命令:
"c:\mysql-5.7.16-winx64\bin\mysqld" --install
# 移除MySQL的Windows服务,在终端执行此命令:
"c:\mysql-5.7.16-winx64\bin\mysqld" --remove
# 注册成服务之后,以后再启动和关闭MySQL服务时,仅需执行如下命令:
# 启动MySQL服务
net start mysql
# 关闭MySQL服务
net stop mysql
windows下设置密码
登录之后:
update user set authentication_string=password("123456") where user="root";
windows下忘记密码
方式一:
#1 关闭mysql
#2 在cmd中执行:mysqld --skip-grant-tables
#3 在cmd中执行:mysql
#4 执行如下sql:
update mysql.user set authentication_string=password('') where user = 'root';
flush privileges;
#5 tskill mysqld #或taskkill -f /PID 7832
#6 重新启动mysql
方式二:
#1. 关闭mysql,可以用tskill mysqld将其杀死
#2. 在解压目录下,新建mysql配置文件my.ini
#3. my.ini内容,指定
[mysqld]
skip-grant-tables
#4.启动mysqld
#5.在cmd里直接输入mysql登录,然后操作
update mysql.user set authentication_string=password('') where user='root and host='localhost';
flush privileges;
#6.注释my.ini中的skip-grant-tables,然后启动myqsld,然后就可以以新密码登录了
windows下为mysql服务指定配置文件
#在mysql的解压目录下,新建my.ini,然后配置
#1. 在执行mysqld命令时,下列配置会生效,即mysql服务启动时生效
[mysqld]
;skip-grant-tables
port=3306
character_set_server=utf8
default-storage-engine=innodb
innodb_file_per_table=1
#解压的目录
basedir=E:\mysql-5.7.19-winx64
#data目录
datadir=E:\my_data #在mysqld --initialize时,就会将初始数据存入此处指定的目录,在初始化之后,启动mysql时,就会去这个目录里找数据
#2. 针对客户端命令的全局配置,当mysql客户端命令执行时,下列配置生效
[client]
port=3306
default-character-set=utf8
user=root
password=123
#3. 只针对mysql这个客户端的配置,2中的是全局配置,而此处的则是只针对mysql这个命令的局部配置
[mysql]
;port=3306
;default-character-set=utf8
user=egon
password=4573
#!!!如果没有[mysql],则用户在执行mysql命令时的配置以[client]为准
统一字符编码
#1. 修改配置文件
[mysqld]
default-character-set=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
#mysql5.5以上:修改方式有所改动
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
#2. 重启服务
#3. 查看修改结果:
\s
show variables like '%char%'