Python学习—数据库篇之初识mysql
一、下载与安装
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
想要使用MySQL来存储并操作数据,则需要做几件事情:
a. 安装MySQL服务端
b. 安装MySQL客户端
c. 【客户端】连接【服务端】
d. 【客户端】发送命令给【服务端MySQL】服务的接受命令并执行相应操作(增删改查等)
地址: http:
//dev.mysql.com/downloads/mysql/
1.根据自己计算机系统的相关版本,下载压缩包,解压到任意目录
2.服务器端运行起来
a.一直进入解压目录到bin文件夹的cmd窗口,执行命令:mysqld (如果报找不到data文件夹错误,在与bin文件夹同级建立data文件夹)
b.建立好data文件夹后,重新进入bin目录的cmd窗口中,执行初始化mysql命令:mysqld --initialize-insecure (data文件夹中会多出许多文件)
初始化后会创建一个默认用户root,无登录密码
c.在当前窗口执行启动服务器命令:mysqld (此时会hold住一个窗口,mysql服务器启动成功)
3.客户端实现连接
重开一个到bin文件夹目录的cmd窗口,执行命令:mysql -u root -p (-u代表用户名,-p代表密码,此时为初始化时创建的root用户,无密码)
Enter password 时直接回车,就能进入mysql客户端界面
输入show databases;就可以看到mysql内部的相关数据库
4.制作mysql的windows服务
在使用mysql时,需要先起一个服务器,再起一个客户端连接使用,如果关闭了服务器窗口,mysql也将无法使用;所以为了方便使用,可以将制作一个mysql的windows服务器,就可以随时使用mysql了。
a.配置环境变量:【右键计算机】
-
-
》【属性】
-
-
》【高级系统设置】
-
-
》【高级】
-
-
》【环境变量】
-
-
》【在第二个内容框中找到 变量名为Path 的一行,双击】
-
-
> 【将MySQL的
bin
目录路径追加到变值值中,用 ; 分割】
;
b.进入bin目录的cmd窗口,执行命令:mysqld --install (如果要移除MySQL的Windows服务,执行此命令:mysqld --remove)
c.注册成服务之后,以后再启动和关闭MySQL服务时,仅需执行如下命令:net start mysql net stop mysql
二、用户管理
此前在初始化mysql时,我们创建了一个root用户,该用户实际上为超级管理员的角色,拥有最高的权限;我们可以通过操作mysql数据库中user表来对用户进行管理。使用root用户登录数据库后执行以下操作:
show databases; ----- 查看mysql的所有数据库
use mysql; ----- 使用mysql数据库
show tables; ----- 查看当前数据库所有的表
desc user; ----- 查看user表中的所有属性
select host,user from user; ----- 查看user表中的host和user属性值
可以看到,我们使用的root用户其实早已经记录在user表中了;那么如果我们想添加用户或者对原有的用户信息进行修改,是否可以直接使用sql语句中操作表的语句来实现呢?答案是可以的,但是考虑到user表的重要程度,一旦破坏了表中原有的数据,可能会对用户使用造成影响,因此,mysql有专门用于用户管理的特殊命令,且只对user表生效。
1.创建用户:
create user
用户名
@
IP地址
identified by
'密码'
;
我们分别使用cdc用户和cdcy用户进行登录验证
可以看到,cdc账号登陆成功,而cdcy账号登陆失败,其实原因就在于两者的host不同,如果在登录时不特意强调ip地址,都会默认为是本机登陆,因此对于不是本机的账号必 须声明其host地址
2.删除用户:drop user
用户名'
@
'IP地址;
3.修改用户:rename user
用户名
@
IP地址
to
新用户名
@
IP地址
;
4.修改密码:set password
for
用户名
@
IP地址
= Password(
'新密码'
)
5.用户授权
我们分别使用root和alex登陆并查看数据库中的信息:
(root用户下)
(alex用户下)
可以看到,alex账号所查询到的信息并没有root用户所查询到的多,那是因为相比root用户,alex的权限较低。root用户可以将相关的权限授予其他用户。
例:将t对est数据库中class表的查询权限授予alex用户
(root用户下授权)
(alex用户下)
show grants for '用户'@'IP地址' -- 查看权限
grant 权限 on 数据库.表 to '用户'@'IP地址' -- 授权
revoke 权限 on 数据库.表 from '用户'@'IP地址' -- 取消权限
all privileges 除grant外的所有权限
select 仅查权限
select,insert 查和插入权限
...
usage 无访问权限
alter 使用alter table
alter routine 使用alter procedure和drop procedure
create 使用create table
create routine 使用create procedure
create temporary tables 使用create temporary tables
create user 使用create user、drop user、rename user和revoke all privileges
create view 使用create view
delete 使用delete
drop 使用drop table
execute 使用call和存储过程
file 使用select into outfile 和 load data infile
grant option 使用grant 和 revoke
index 使用index
insert 使用insert
lock tables 使用lock table
process 使用show full processlist
select 使用select
show databases 使用show databases
show view 使用show view
update 使用update
reload 使用flush
shutdown 使用mysqladmin shutdown(关闭MySQL)
superPython学习—数据库篇之初识mysql的更多相关文章
- Python学习—数据库篇之SQL语句
一.数据库级别 1.显示数据库 show databases; 默认数据库: mysql - 用户权限相关数据 test - 用于用户测试数据 information_schema - MySQL本身 ...
- Python学习—数据库篇之SQL补充
一.SQL注入问题 在使用pymysql进行信息查询时,推荐使用传参的方式,禁止使用字符串拼接方式,因为字符串拼接往往会带来sql注入的问题 # -*- coding:utf-8 -*- # auth ...
- Python学习—数据库篇之索引
一.索引简介 索引,是数据库中专门用于帮助用户快速查询数据的一种数据结构.类似于字典中的目录,查找字典内容时可以根据目录查找到数据的存放位置,然后直接获取即可,对于索引,会保存在额外的文件中.在mys ...
- Python学习—数据库篇之pymysql
一.pymysql简介 对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql是Python中操作MySQL的模块,其使用方法和MySQ ...
- Python学习—数据库篇之练习题
Mysql测试题 一.表关系 请创建如下表,并创建相关约束 二.操作表 0.在成绩表中同时显示出对应的课程名和学生名 1.自行创建测试数据 2.查询“生物”课程比“物理”课程成绩高的所有学生的学号: ...
- Python学习—框架篇之初识Django
什么是web框架? 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表演. 对于所有的W ...
- python、第一篇:初识数据库
一 数据库管理软件的由来 基于我们之前所学,数据要想永久保存,都是保存于文件中,毫无疑问,一个文件仅仅只能存在于某一台机器上. 如果我们暂且忽略直接基于文件来存取数据的效率问题,并且假设程序所有的组件 ...
- MySQL数据库篇之初识数据库
主要知识点: 一.数据库概述 二.mysql安装与基本管理 1️⃣ 数据库概述 1.什么是数据(Data)? 描述事物的符号记录称为数据,描述事物的符号既可以是数字,也可以是文字.图片,图像.声音. ...
- python自动化测试入门篇-jemter连接mysql数据库
jmeter对数据库的操作主要包括以下几个步骤:1.导入mysqlde jdbc的jar包:2.创建数据库连接配置:3.线程组添加jdbc request;4.启动按钮,添加查看结果树 一.准备好驱动 ...
随机推荐
- JavaScript 高级特性
1. 原型Prototype 1.1 构造函数 所谓"构造函数",其实就是一个普通函数,但是内部使用了this变量.对构造函数使用new运算符,就能生成实例,并且this变量会绑定 ...
- .Net Core跨平台应用研究-HelloDDNS(动态域名篇)
.Net Core跨平台应用研究-HelloDDNS -玩转DDNS 摘要 为解决自己搭建的内网服务器需要域名而因没有超级用户密码不能开启光猫内置DDNS功能的问题,自己动手,基于.net core, ...
- 6.824 LAB1 环境搭建
MIT 6.824 LAB1 环境搭建 vmware 虚拟机 linux ubuntu server 安装 go 官方安装步骤: 下载此压缩包并提取到 /usr/local 目录,在 /usr/l ...
- 红米手机5 Plus完美刷成开发版获取root权限的教程
小米的设备不同手机型号通常情况小米官方都提供两个不同系统,可分为稳定版和开发版,稳定版没有提供ROOT超级权限管理,开发版中就提供了ROOT超级权限,较多时候我们需要使用的一些功能强大的工具,都需要在 ...
- MFC如何添加bmp文件和ICO文件
1.添加BMP格式文件如下图所示: 2.添加ICO格式文件如下图所示:
- ES6 实战项目构建 ES6+glup+express
ES6推出已经有几个年头了,平时也有学过一些基本语法,无奈实践经验太少.而且前端早已脱离了刀耕火种的时代,一些自动化构建工具像gulp.webpack等也需要熟练掌握.最近刚签了三方,闲暇之余就找了个 ...
- 1. 通过DHCP服务器动态获取IP地址之后无法上网的解决方法
故障:内网正常,在同一个局域网内的其它PC端通过DHCP获取IP地址并且可以正常上网. 1.通过wireshark抓包,使用ipconfig /renew时,wireshark内出现DHCP请求服务, ...
- js通过formData上传文件,Spring后台处理
1.前端 var formData = new FormData(); formData.append('file', $("#file").val()); $.ajax({ ur ...
- 使用plot_importance绘制特征重要性曲线
代码如下所示: # -*- coding: utf-8 -*- #导入需要的包 import matplotlib.pyplot as plt from sklearn import datasets ...
- 如何用Fiddler手机抓包
截获智能手机发出的HTTP包有什么用? 用处一: 手机软件程序员利用Fiddler,可以截获手机发出的HTTP包, 从而调试程序: 用处二: 软件测试人员用于测试智能手机上的软件: 用处三: 可以用来 ...