python开发mysql:mysql安装(windows)&密码找回&存储引擎简介&库表的增删改查

一,mysql安装

 1 下载地址 https://dev.mysql.com/downloads/file/?id=471342
 2 解压后,将目录C:\mysql-5.7.19-winx64\bin添加到计算机环境变量中
 3
 4 用CMD命令行执行,mysqld --initialize-insecure 初始化数据库,这样C:\mysql-5.7.19-winx64
 5 这个目录下就会产生data的目录,里面包含的就是初始化的东西,配置文件,用户密码信息
 6 -insecure 这个参数就是告诉数据库登陆的时候以本地管理员的身份登陆,不需要密码
 7
 8 用CMD命令行执行,mysqld,启动mysql,然后通过mysql -uroot -p 登陆到数据库里,退出是quit
 9 用CMD命令行执行,tasklist |findstr mysql  查看mysql运行状态,PID
10                  taskkill /PID 16504 /F    终止msyql运行
11 在计算机搜索栏,services.msc打开系统服务,查看有没有mysql这个服务,可以通过服务来控制开启和关闭
12 注意,这里需要用管理员身份来运行这个CMD
13 用CMD命令行执行,mysqld --install 来添加这个服务,之后你就可以通过系统服务来控制启动,关闭
14 用CMD命令行执行,mysqld --remove  移除这个服务
15 用什么方式启动,就用什么方式停止
16
17 因为现在没有密码,咱们设置个密码
18 mysqladmin -uroot passwor 123  密码是123

二,密码找回

 1 mysqld --skip-grant-tables  跳过授权表启动mysql,可以通过空密码登陆
 2 在数据库里面更改密码
 3 update mysql.user set authentication_string=password(‘456‘) where user=‘root‘ and host=‘localhost‘;
 4 flush privileges;
 5 解释:
 6 password 这个是将你的密码存储的时候存储的不是明文,在5.6之前,密码叫做password,5.7叫做authentication_string
 7 where后面接条件,user是用户,host是哪台机器
 8
 9 第二种方式,先停止mysql,跳过配置文件跳过授权表
10 在C:\mysql-5.7.19-winx64目录下创建一个,my.ini文件,里面写
11 [mysqld]
12 skip-grant-tables
13 然后起mysql,会加载这个配置文件
14 用CMD命令行执行mysql,就可以空进去

三,配置文件

 1 [mysqld]
 2 default-storage-engine=INNODB  默认的存储引擎,默认就是
 3 innodb_file_per_table=1  每一个表都有一个自己的数据文件,很早以前只有一个表结构,数据都放在一起,不安全
 4 ;skip-grant-tables  跳过授权表
 5 port=3306 默认端口
 6 character_set_server=utf8  设置默认字符编码,创建数据库的时候都是这个编码了
 7 #mysql的安装目录
 8 basedir=C:\mysql-5.7.19-winx64
 9 #data数据目录
10 datadir=C:\mysql-5.7.19-winx64,默认是安装的目录,也可以自己指定
11 在ini文件里面,# ;都是注释的意思
12 如果改变数据目录,一定要重新初始化,那么之前的密码配置都会变成默认
13 注意,上面的操作一定是新安装的时候才可以,如果有数据了,这样做你的数据也没了
14
15 注意,配置文件my.ini需要用pycharm写,用windows写有问题
16 配置文件
17 [mysqld]    #针对mysqld这个命令
18 pass
19
20 [client]    全局客户端
21 user=root
22 password=‘‘ 密码,有的话就写,没有话就是空,在登陆的时候,可以直接mysql就可以了
23
24 [mysql]        局部客户端,针对mysql客户端,这个命令
25 user=root
26 password=‘‘
27 配置文件做如上更改的话,用mysql就可以直接登录
28 如果有mysql,就会用mysql里面账号登录,没有的话用client
29 这个配置不需要重启,只是针对命令,但是如果是mysqld有变动,就需要重启了

四,存储

1 innodb引擎支持事务回滚,存储数据更安全,库下面存放表结构,数据
2 myisam引擎速度快,不支持失误回滚,不安全,库下面存放表结构,数据,索引   **用这个引擎的表,插入数据跟innodb一样,性能上有差异
3 memory引擎速度快,数据存储在内存,库下面只有表结构              **用这个引擎的表,插入数据跟innodb一样,重启mysql之后就没了
4 blackhole引擎,黑洞,垃圾数据可以往里面加,库下面只有表结构     **用这个引擎的表,插入数据就会没有,被当垃圾回收

五,创建账号

 1 select user(); 查看当前用户在哪里登录
 2 help create;查询帮助 help create user;查看创建用户的帮助
 3
 4 服务端创建账号
 5 创建本地账号
 6 cteate user ‘egon‘@‘localhost‘ identified by ‘123‘;
 7 创建远程账号
 8 cteate user ‘egon‘@‘%‘ identified by ‘123‘;
 9 创建网段账号
10 cteate user ‘egon‘@‘192.168.20.‘ identified by ‘123‘;
11
12
13 客户端登录账号
14 mysql -uegon -p123
15 mysql -h192.168.20.97 -uegon -p123  -h服务端地址
16
17 如果输入错误在最后面加入 \c就是取消了,不需要加;
18 create databse ‘db;
19 这样的输入错误,\c是结束不了,需要先‘\c这样,因为引号是成对

六,简单增删改查

 1 数据库操作,都是在mysql里面操作
 2 create database db1; 创建数据库,这样data目录下就会有个db1的目录
 3 create database db1 charset utf8; 在创建数据库的时候指定字符编码
 4 show  create database db1; 查看单个数据库信息
 5 show  databases; 查看所有数据库
 6 drop database db1; 删除数据库
 7 alter database db1 charset utf8; 修改数据库字符编码
 8 user db2; 切换数据库
 9 select database(); 返回当前在哪个数据库下
10
11 表操作,切换到数据库下
12 create table t1(id int,name char)engine=innodb;  创建表
13 t1是表名,括号里面是字段,int,整形 char,字符串,engine=innodb指定存储引擎,默认就是innodb,可不加
14 t1.frm 表结构,t1.ibd 数据  ib就是InnoDB引擎
15 show create table t1; 查看表
16 show tables; 查看当前数据库下的表
17 drop table t1; 删除表
18
19 插入数据,如果表的字段有三个,那我插的时候也是三个,就是按位置传参数,少一个不行
20 insert into t1 values(1,‘egon‘,18);
21 insert into t1(id) values(1,‘egon‘);  这样报错,传入的参数多
22 insert into t1(id) values(1);  这样就是传一个,其他字段就是空
23 查表数据
24 select id,name,age from t1;  可以用*代表id,name,age就是所有

详细的增删改查,对于表操作

 1 首先要创建表
 2 create table t1(id int,name char(10))engine=innodb default charset utf8;
 3 插入数据,可以多插入
 4 insert into db1.t1 values(1,‘egon1‘),(2,‘egon2‘),(3,‘egon3‘);
 5 insert into db1.t1(name) values(‘egon1‘),(‘egon2‘),(‘egon3‘);这样的话,id就是空
 6 查看信息
 7 select * from db1.t1;
 8 select name,id from db1.t1;
 9 修改信息
10 update db1.t1 set name=‘sb‘ where id=4; 条件这块写name=‘egon3‘;
11 也可以,等号字符后面有空格可以忽视,前面的话就不成功
12 删除信息
13 delete from t1 where id=4; 删除id=4这行
14 delete from t1;  清空表
15 truncate t1;  清空表,大数据比上面快,delete删除会一条一条删除,要判断
16
17 3.2 插入递增数据
18 create table t1(id int not null,name char(10));  id这块不能为空,如果在插入数据没有id的时候就会报错
19 create table t1(id int primary key auto_increment,name char(10));
20 create table t1(id int not null unique auto_increment,name char(10));
21 primary key  主键,不为空,而且是唯一的
22 not null unique  主键,不为空,而且是唯一的
23 auto_increment  递增
24 insert into t1(name) values(‘egon1‘),(‘egon2‘),(‘egon3‘); 插入数据,id递增
25 select * from t1 where id>2; 利用主键查询速度快
26 如果用delete from t1; 清除表,id还是递增的,用truncate t1; 清空表,就是从1开始
27
28 约束可通过desc t1查看 pri就是主键
29
30 3.3 拷贝表
31 create table t2 select * from t1;  拷贝出来的是表结构和数据,但是主键,约束没有拷贝过来
32 create table t2 select * from t2 where 1=2;  拷贝表结构,因为后面条件不成立
33
34 3.4 修改主键
35 desc t2,没有主键,我们创建这个主键,其实是修改
36 alter table t2 modify id int primary key auto_increment;  修改字段增加主键
37
38 3.5 删除记录
39 delete 删除的是一条记录
40 delete from t1 where id=1;  删除一条记录
41 update t1 set name=‘‘ where id=1;
42 如果删除字段值,其实就是修改,不加where 就是修改这个表所有的该段记录

七 授权权限,insert,delete,update,select

 1 先创建账号
 2 create user ‘lin‘@‘localhost‘ identified by ‘123‘;
 3 级别1,对所有库下所有表下的所有字段
 4 grant select on *(所有库).*(所有表) to ‘lin‘@‘localhost‘;
 5 可以合并授权加创建账号
 6 grant select on *(所有库).*(所有表) to ‘lin‘@‘localhost‘ identified by ‘123‘;
 7
 8 级别2,对db1下所有表的所有字段
 9 grant select on db1.*(所有表) to ‘lin‘@‘localhost‘ identified by ‘123‘;
10
11 级别3,对db1.t1表下的所有字段
12 grant select on db1.t1 to ‘lin‘@‘localhost‘ identified by ‘123‘;
13
14 级别四,对db1.t1表下的id,name字段
15 grant select (id,name) on db1.t1 to ‘lin‘@‘localhost‘ identified by ‘123‘;
16 select id,name from t1;
17 grant select (id,name),update(name) on db1.t1 to ‘lin‘@‘localhost‘ identified by ‘123‘;
18 可以修改这个name这个字段
19 update t1 set name=‘Egon‘ where id=1;
20
21 flush privileges; 授权完需要刷新这个权限
22
23 移除权限
24 revoke select on db1.* from ‘egon‘@‘localhost‘;  移除权限
25 help revoke
26
27 msyql库下,这些表掌控的就是权限表
28 user 所有库级别权限就是root权限
29 db     单个库权限
30 tables_priv  单个表权限
31 columns_priv  字段权限

八 字符编码

 1 默认是latin文,是没有办法插入中文,你就需要更改这个表的字符集
 2 show create table t1;
 3 alter table t1 charset utf8;
 4 但是还是插入不进去,因为有些字段可能还是latin文,所以要针对这个字段做些更改
 5 alter table t1 modify name char(10);  我这里重新定义一下这个字段,那么他就会按照表的字符编码设置了
 6 配置文件这块修改默认字符集,需要用Pycharm修改,本地修改不生效
 7 [client]
 8 default-character-set=utf8
 9 [mysql]
10 default-character-set=utf8
11 [mysqld]
12 character_set_server=utf8   5.7版本修改参数
13 ;default-character-set=utf8  老版本
14 重启生效
15
16 \s 查看数据库一些配置信息,能看到服务端,数据库,客户端,客户端连接所有字符编码是不是utf8
时间: 2024-12-25 21:31:29

python开发mysql:mysql安装(windows)&密码找回&存储引擎简介&库表的增删改查的相关文章

mysql 数据表的增删改查 目录

mysql 表的增删改查 mysql 表的增删改查 修改表结构 mysql 复制表 mysql 删除表 原文地址:https://www.cnblogs.com/mingerlcm/p/10502647.html

MySQL数据库之表的增删改查

目录 MySQL数据库之表的增删改查 1 引言 2 创建表 3 删除表 4 修改表 5 查看表 6 复制表 MySQL数据库之表的增删改查 1 引言 1.MySQL数据库中,数据库database就是硬盘上的一个文件夹,表table就是文件夹里面的一个文件 2.表中的一条记录就相当于文件中的一行内容,与excel表类似,表table中有不同的标题,称之为字段 3.本节对表结构做增删改查,即创建表.删除表.修改表.查看表结构,至于表中数据的增删改查日后单独总结 2 创建表 1.创建一张表,需要建一

MySQL数据库学习笔记(十一)----DAO设计模式实现数据库的增删改查(进一步封装JDBC工具类)

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4059514.html 联系方式:[email protected] [正文] 一.DAO模式简介 DAO即Data Access Object,数据访问接口.数据访问:故名思义就是与数据库打交道.夹在业务逻辑与数据库资源中间. DAO模式实际上是两个模式的组合,即Data Accessor (数据

Windows平台使用C语言在用户模式下注册表的增删改查

一.Wiodws注册表介绍 Windows操作系统提供了一个称为“注册表”的中心存储设施作为系统的配置和管理中心.应用程序和内核通过访问注册表来读写各种配置.Windows同时提供了一些API供应用程序访问注册表,这些API函数在接到注册表访问请求后会将他们转发给内核的系统服务.然后内核会做出相应的处理. Widows注册表是一个树状结构,每一个节点是一个键或值.键是一个容器,好比文件系统中的文件夹,值存储的是数据,相当于文件系统的文件,键可以包含其它的键(目录)或值(文件).注册表的根目录称为

mysql操作入门基础之对数据库和表的增删改查

一.数据库管理-- 1.登陆数据库 1 mysql -u root -p; -- 2.查看数据库服务器所有数据库 1 SHOW DATABASES; -- 3.创建数据库 CREATE DATABASE MyDATA; -- 4.创建带有设置字符集的数据库 CREATE DATABASE MYDATA DEFAULT CHARACTER SET UTF8; -- 5.删除数据库 DROP DATABASE MYDATA; -- 6.查看默认字符集 SHOW CREATE DATABASE MYD

MySQL数据库2表的增删改查

[TOC] 一.数据表(文件): 1.1增 1.1.1列表的创建: create table 表名(字段名 列约束 [可选的参数] , ### 记住加逗号 字段名 列约束 [可选的参数] , ### 记住加逗号 字段名 列约束 [可选的参数] ### 最后一行不加逗号 )charset=utf-8; ### 后面加分号 例子: create table t1( id int, name char(5) )charset=utf-8; 1.1.2增加数据: insert into 表明 (列1,,

MYSQL基础操作之单表的增删改查

一.添加数据. -- 1.创建表,并插入一定的数据. 1 CREATE TABLE STUDENT( 2 ID INT, 3 USERNAME VARCHAR(20), 4 SERVLET INT, 5 JSP INT, 6 ADDRESS VARCHAR(30) 7 ); 8 INSERT INTO STUDENT VALUES (1,'张三',23,84,'京口区'); 9 INSERT INTO STUDENT VALUES (2,'李四',36,74,'润州区'); 10 INSERT

mysql表数据增删改查、子查询

//操作数据表中的记录 create table user2( id smallint unsigned primary key AUTO_INCREMENT, username varchar(20) not null, password varchar(20) not null, age tinyint not null default 10, sex boolean ) --insert-- insert user2 values(null,'孙千','123',25,1);//自增序列可

MySQL代码建表、增删改查(CRUD)

一.建表 create table Student ( number int auto_increment primary key,//定主键不一定勾上自增,但勾上自增一定得是主键. name varchar(10) not null,//设计界面,非空约束 sex bit, height decimal(8,2),//共8位数,小数点后2位数 birthday datetime ) 小数型 float double decimal 字符串型 varchar--------考虑长度 其他的不用,