MySQL的安装及创建(windows下操作)
一、MySQL的下载
下载地址:https://dev.mysql.com/downloads/mysql/
二、MySQL的安装
1、解压:将下载的压缩包解压到指定目录,如:D:\MySQL\mysql-8.0.20-winx64,解压后在根目录下的bin文件夹有两个文件:mysql.exe和mysqld.exe,
前者是客户端,后者是服务端,先运行服务端再运行客户端。
2、初始化:打开CMD终端,进入MySQL所在的路径下的bin文件夹,如:D:\MySQL\mysql-8.0.20-winx64\bin\,输入:
mysqld –initialize-insecure 按回车,初始化成功,默认创建一个用户名为root,密码为空的账户。
3、检查MySQL是否安装成功:
打开CMD终端,输入安装路径,如:D:\MySQL\mysql-8.0.20-winx64\bin\mysqld,按回车(注意bin路径后面跟\mysqld服务端),此时服务端以启动,等待客户端连接;
再打开一个CMD终端,输入安装路径,如:D:\MySQL\mysql-8.0.20-winx64\bin\mysql -u root -p,按回车(注意bin路径后面跟\mysql客户端)root为用户名,-p是用户密码,默认为空,直接回车,此时会出现Enter password:没有密码直接回车,如果出现以下界面表示安装成功,并已连接上服务端
三、添加MySQL环境变量
因为MySQL安装好以后每次都需要进入安装路径打开两个终端很麻烦,此时我们只需要添加环境变量就可以不用进入安装路径启动MySQL了。
1、分别执行以下操作:
我的电脑——右键——属性——高级系统设置——高级——环境变量——系统变量里找到path双击——把MySQL的bin目录路径添加到变量值末尾,用;分割——点击确定,此时环境变量就添加成功
四、开启windows服务
开启windows服务的意思是:以后只要Windows服务开启就不用同时运行服务端和客户端,就只需要运行客户端就可以了,服务端在后台运行,不需要时随时可以关闭
步骤如下:
# 制作MySQL的Windows服务,在终端执行此命令:
D:\MySQL\mysql-8.0.20-winx64\bin\mysqld --install
# 移除MySQL的Windows服务,在终端执行此命令:
D:\MySQL\mysql-8.0.20-winx64\bin\mysqld --remove
# 启动MySQL的Windows服务,在终端执行此命令:
net start MySQL
# 关闭MySQL的Windows服务,在终端执行此命令:
net stop MySQL
五、MySQL的基本操作
一、用户管理
创建用户:create user 'name'@'192.168.1.1' identified by '123456'; #创建一个名为'name',密码为'123456'的用户,且只能在指定IP登录
create user 'name'@'192.168.1.%' identified by '123456'; #创建一个名为'name',密码为'123456'的用户,只能在IP范围内登录
create user 'name'@'%' identified by '123456'; #创建一个名为'name',密码为'123456'的用户,能在所有电脑上登录
删除用户:drop user 'name'@'IP地址';
修改用户:rename user 'name'@'IP地址' to 'newname'@'IP地址';
修改密码:set password for 'name'@'IP地址' = password('新密码')
二、文件夹操作
1 show databases; #显示当前目录文件夹(数据库)
2 use db1; #进入db1文件夹(数据库)
3 show tables; #显示当前文件夹(数据库)的所有文件
4 create databases db1 default charset utf8; #创建一个名为db1的文件夹(数据库)
5 drop database db2; #创建名为db2的文件夹(数据库)
三、文件操作
1 创建数据:
create table t1(id int,name char(10)) default charset=utf8; #创建t1文件(id列int(整数)类型,name列char(字符串)类型限定10个字符)
create table t1(列名 类型 null,
列名 类型 not null,
列名 类型 not null auto_increment primary key,
id int,
name char(10))
engine=innodb default charset=utf8;
#innodb(引擎) 支持事务,原子性操作(突发情况会退回操作前的状态),默认使用innodb
#myisam(引擎) 支持全局索引,速度更快
#auto_increment:表示自增(一个表只能有一个自增列),类似序号自动+1
#primary key:表示约束(不能重复且不能为空);加速查找
2 查看数据:select * from db1; #查看db1文件下的所有内容
select name,age,id from db1; #查看db1下的name,age,id列
select * from t1; #查看t1数据
3 插入数据:insert into t1<id,name> values<1,egon>;
4 删除数据:delete from t1 where id<6; #把id小于6的数据都删了
5 修改数据:update t1 set age=18;
update t1 set age=18 where age=17; #把age为17的统一修改为18
4 清空表:delete from t1;(清空后自增列不变继续原来基础上+1)
truncate table t1;(速度快,自增列从头开始)
5 删除表:drop table t1;
6 mysql数据库user表
use mysql;
select user,host from user; #可以看到所有mysql用户名及权限
四、数据类型
数字:tinyint
int
bigint
float
double
decimal
字符串:char(10) #不管有没有10个都占10个,查询速度快
varchar(10) #最多能占10个,占几个算几个,节省空间
PS:创建数据表定长列往前放
text:保存变长的大字符串
时间类型:date: YYYY-MM-DD(1000-01-01/9999-12-31)
time: HH:MM:SS('-838:59:59'/'838:59:59')
year: YYYY(1901/2155)
datetime:YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59)
timestamp:YYYYMMDD HHMMSS(1970-01-01 00:00:00/2037 年某时)
PS:比较常用的是datetime
六、权限管理
关于授权: grant select,insert,update on db1.t1 to 'name'@'%'; #对name用户授权,可以对db1文件夹下的t1文件,执行查看和插入权限 grant all privileges on db1.t1 to 'name'@'%'; #对name用户授权,可以对db1文件夹下的t1文件,执行除授权外的所有权限
grant 权限 on 数据库.表 to '用户'@'IP地址'
未完待续……