MySQL:入门
一、前言
MySQL :是用于管理数据的软件
MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
分为服务端和客户端(也是基于C/S架构的程序)
服务端:
- socket服务端
- 本地文件操作
- 解析指令(SQL语句)
客户端:
- socket客户端
- 发送指令
- 解析指令(SQL语句)
需要掌握
- 安装服务端和客户端 https://www.mysql.com
- 连接
- 学习SQL语句规则,指示服务端做相应的操作
其他了解
类似软件
- 关系型数据库:SQLLITE,DB2,ORACLE,ACCESS,SQL SERVER,MYSQL
- 非关系型数据库:MONGODB,REDIS 等等
二、MySQL安装
在LINUX上可RPM或者yum install 。。。即可安装上
在windows上:
1、可执行文件
MySQL Installer 链接地址:mysql执行文件


下载完成之后,下一步 下一步即可 具体可访问此地址查看
2、压缩包(zip)形式
Windows (x86, 64-bit), ZIP Archive 访问地址:官网地址


压缩包形式好处是可以放置任意目录
下载完成之后,比如放到windows上的D盘

1、解压之后 如上图
2、初始化工作
以管理的身份运行CMD DOS窗口

例如 路径为 D:\mysql-5.7.23-winx64\mysql-5.7.23-winx64
就需要在dos窗口 敲 D:\mysql-5.7.23-winx64\mysql-5.7.23-winx64\bin\mysqld --initialize-insecure 此时即可完成初始化操作
默认生成一个root用户 密码为空
3、启动服务端
D:\mysql-5.7.23-winx64\mysql-5.7.23-winx64\bin\mysqld 在dos窗口执行此行 会出现socket (accept,recv)阻塞 或者 while 循环 input 的效果
4、客户端连接
D:\mysql-5.7.23-winx64\mysql-5.7.23-winx64\bin\mysql -u root -p 密码为空 回车即可进入
发送 show databases ; 指令

3、 环境变量的配置
打开计算机属性,高级系统设置,环境变量,系统变量框下的path项点击编辑,将指针移到开头加上 ; ,然后在分号前面输入mysql的bin目录路径即可。
这样每次在dos窗口就不需要加路径这么长的前缀了 只需要输入 mysql -u root -p 等等 就行了
但是系统一关机再开机之后 mysql这个服务是没有自启动的,每次重启机器后 都需要 在管理员dos窗口运行一次 mysqld
这样每次都需要手动执行一遍mysqld 太麻烦了 这里就可以制作成windows服务
4、制作windows服务


可在图形中点击启动按键
也可在dos(管理员)输入 net start MySQL 启动
net stop MySQL 停止
三、MySQL软件管理
1、在windows下指定配置文件
ps:配置文件中的注释可以有中文,但是配置项中不能出现中文
#在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]为准
my.ini
2、统一字符集
#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%';
四、连接SQL
数据库的结构大致也分为
文件夹【数据库】
文件【表】
数据行【行】
这样的结构
SQL语句 概括即为(CURD)增改查删
默认的用户 超级管理员 : root
初始状态下,管理员root,密码为空,默认只允许从本机登录localhost
设置密码
mysqladmin -uroot password "123" 设置初始密码 由于原密码为空,因此-p可以不用
mysqladmin -uroot -p"123" password "456" 修改mysql密码,因为已经有密码了,所以必须输入原密码才能设置新密码
设置密码
show databases;
use 数据库名称; show tables; select * from 表名; select name,age,id from 表名; mysql数据库user表
use mysql;
select user,host from user;
用户管理
创建用户
create user '用户名'@'IP地址' identified by '密码';
删除用户
drop user '用户名'@'IP地址';
修改用户
rename user '用户名'@'IP地址'; to '新用户名'@'IP地址';;
修改密码
set password for '用户名'@'IP地址' = Password('新密码') PS:用户权限相关数据保存在mysql数据库的user表中,所以也可以直接对其进行操作(不建议)
创建用户和授权
创建用户:
create user '用户名'@'IP地址' identified by '密码';
create user '用户名'@'192.168.1.%' identified by '密码';
create user '用户名'@'%(代表任意)' identified by '密码';
show grantsfor'用户'@'IP地址'-- 查看权限授权:
grant select,insert,update on 库名.表名 to '用户名'@'%';
grant all privileges(代表除授权外的所有权限) on db.表名 to '用户名'@'%'; 解除权限 revoke all privileges on db.表名 from '用户名'@'%'; 实际情况(DBA: 用户名密码 会给对应表 或 库 的相应权限用户)
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)
superMySQL:入门的更多相关文章
- 21分钟 MySQL 入门教程(转载!!!)
21分钟 MySQL 入门教程 目录 一.MySQL的相关概念介绍 二.Windows下MySQL的配置 配置步骤 MySQL服务的启动.停止与卸载 三.MySQL脚本的基本组成 四.MySQL中的数 ...
- MySQL入门02-MySQL二进制版本快速部署
在上篇文章 MySQL入门01-MySQL源码安装 中,我们介绍了MySQL源码安装的方法. 源码安装虽然有着更加灵活和更加优化等诸多优势.但源码编译安装部署的过程相对复杂,而且整个过程所花费的时间很 ...
- MYSQL入门全套(第三部)
MYSQL入门全套(第一部) MYSQL入门全套(第二部) 索引简介 索引是对数据库表中一个或多个列(例如,employee 表的姓名 (name) 列)的值进行排序的结构.如果想按特定职员的姓来查找 ...
- MySQL入门(三)
写了两篇<MySQL入门>以后我发现,写书的人还是都挺有本事的,起码人家知道怎么编排自己想讲的知识点,我实在是不知道该先说那里后说哪里,那我就想到什么讲什么吧. 一 写SQL 其实我是不想 ...
- MySQL入门笔记
MySQL入门笔记 版本选择: 5.x.20 以上版本比较稳定 一.MySQL的三种安装方式: 安装MySQL的方式常见的有三种: · rpm包形式 · 通用二进制 ...
- MySQL入门转载
21分钟 MySQL 入门教程 http://www.cnblogs.com/mr-wid/archive/2013/05/09/3068229.html 目录 一.MySQL的相关概念介绍 二.Wi ...
- mysql 入门 基本命令
MYSQL入门学习之一:基本操作 1.登录数据库 www.2cto.com 命令:mysql -u username –p (mysql -h主机地址 -u用户名 -p用户密码) ...
- MySQL入门笔记(一)
一.数据类型 1. 整型 2. 浮点型 3. 字符型 4. 日期时间型 二.数据库操作 1. 创建库 CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_nam ...
- MySQL入门(上)
1 课程回顾 自定义标签&编码实战 1)自定义标签步骤: 1.1 编写标签处理器类,继承SimpleTagSupport类,覆盖doTag方法 1.2 在WEB-INF目录下建立tld文件,在 ...
- 第二章 MySQL入门篇
第一章 MySQL入门篇 一.MySql简介 简言: 和SQL Server数据库相同,MySQl也是一个关系型数据库管理系统.由瑞典的MySQL AB公司开发,2008年被SUN公司收购,2009年 ...
随机推荐
- [转] Foobar2000 DSP音效外挂元件-Part4
[转] Foobar2000 DSP音效外挂元件-Part4 在第1部分的文章里主要介绍了foobar2000预设的DSP音效调整,这些则示要介绍几个比较会用到的DSP外挂元件,在foobar2000 ...
- 安装openssl-devel
安装openssl-devel 0.操作系统为 RHEL6.7 1.描述:当开发人员需要调用openssl的库文件时,需要安装openssl-devel包 2.当根目录(即挂载点为 )的利用率为10 ...
- unittest测试框架和测试报告的输出实例(一)
我们整个自动化才是报告的环节基本上分为三个部分: 1.测试用例的准备 2.测试用例的执行 3.测试报告的输出 1.测试用例的准备: 那我们就以搜孤网页做一个简单的用例: from selenium i ...
- 10分钟教你用Python打造微信天气预报机器人
01 前言 最近武汉的天气越来越恶劣了.动不动就下雨,所以,拥有一款好的天气预报工具,对于我们大学生来说,还真是挺重要的了.好了,自己动手,丰衣足食,我们来用Python打造一个天气预报的微信机器人吧 ...
- 初识gulp
之前一段时间学习使用了gulp自动化构建工具,并在现在使用的项目上部署使用,同时在这做个笔记进行小结,以便加深记忆,如有理解错误的地方请不吝赐教 gulp 的解释我就不多说了 这里引用官网的一句话 ...
- maven项目在eclipse启动报错:java.lang.ClassNotFoundException
问题: 用eclipse创建maven项目的时候,pom.xml中相关的依赖jar已经导入进去,还会报java.lang.ClassNotFoundException的错误,提示找不到相关的jar包, ...
- 何在不联网的情况下ping通主机与虚拟机
选择NAT模式,VM对windows选择ping操作时选择VMnet8的IP地址.
- Developer Friendly | 基础设施即代码的事实标准Terraform已支持京东云!
Developer Friendly | 基础设施即代码的事实标准Terraform已支持京东云! Chef.Puppet.Ansible.SaltStack 都可以称为配置管理工具,这些工具的主要目 ...
- [LibreOJ #2341]【WC2018】即时战略【交互】【LCT】
Description 有一棵n个点的结构未知的树,初始时只有1号点是已被访问的. 你可以调用交互库的询问函数explore(x,y),其中x是已访问的点,y是任意点. 它会返回x向y方向走第一步的点 ...
- Array flat的实现
if (!Array.prototype.flat) { Array.prototype.flat = function (num = 1) { if (!Number(num) || Number( ...