day01 mysql
一.认识mysql
关系型数据库:
最流行的关系型数据库管理系统,支持大型数据库,处理上千万条记录
关系型: oracle, sql_server, mysql: sql语句通用; 需要有表结构
非关系型: mongodb, redis, memcache; key-value形式, 没有表结构
应用环境:
lamp, lnmp
mysql是什么:
一个基于socket编写的c/s架构的软件
常用术语:
数据库服务器 #服务器(对内存要求较高)
数据库管理系统 #如: mysql软件开源 oracle收费 sql_server收费
数据库 #存放数据的仓库
表
记录 #一行数据
字段
数据 #描述事物的符号记录称为数据, 经过数字化后存入计算机
冗余 #存储两倍数据,降低了性能,但提高了安全性
主键 #是唯一的
外键 #用于关联两个表
索引 #加快查询, 是一种数据结构
参照完整性 #要求关系中不允许引用不存在的实体, 目的: 保持数据的一致性
二.mysql的安装(window版本)
server端:
1.官网下载 https://dev.mysql.com/downloads/mysql/
版本: 5.7.28 64位软件, mysql5.5 - mysql5.7 语法基本差不多
2.解压
可以安装在指定目录:D:\mysql-5.7.28-winx64, 直接指定D盘, 安装目录解压可自动创建
3.添加环境变量
将安装目录下的bin目录路径,D:\mysql-5.7.28-winx64\bin添加到系统的环境变量中
4.初始化
mysqld --initialize-insecure #(initialize 初始化; insecure 不安全的)
普通用户没有权限? 右击左下角按钮, 选择"window powershell(管理员)",进去cmd管理员模式
在安装目录下生成data目录,目录下有以下库
mysql:授权库
performance_schema (性能架构:)
sys:系统库
test:测试库,有的初始化后有这个库
5.开启服务
mysqld :命令行会夯住, 说明已经开启. 任务管理器可以看到mysql进程
client端:
1.连接mysql server, 第一次连接没有密码, password:提示的时候, 直接回车进入
# mysql -uroot -p
2.查看数据库:
> show databases;
3.创建数据库:
> create database db1;
4.查看数据库的版本信息等(端口号,字符集,)
> \s;
5.退出数据库
> exit
6.管理员查看mysql进程
# tasklist #查看windows所有进程
# tasklist | findstr mysql (task 任务)
7.管理员杀掉mysql进程, 根据上面命令找的PID
# taskkill /F /PID 366824
mysql服务: (window上添加mysqld服务)
1.管理员安装mysqld服务
# mysqld --install
2.管理员卸载mysqld服务
# mysqld --remove
3.管理mysqld服务
方式一.点来点去
可以在window"服务"里,找到mysqld,启动,停止,暂停,重启
方式二.管理员在命令行操作
# net start mysql
# net stop mysql
mysqld设置密码:
1.查看当前登录的用户账号
> select user(); #mysql 的函数user()
2.设置密码:
方式一:命令行设置, 或修改密码, 123456暴露了不安全, 所以一般不用这种方法,而且设置的时候也会提示warning insecure
# mysqladmin -uroot -p password "123456" //不暴露老密码: 当第一次设置时,提示password直接回车, //若之前有密码,当提示password时,输入原密码
# mysqladmin -uroot -p"123456" password "123" //暴露老密码: -p后面没有空格,否则报错,这两个password后面的是新密码
方式二:sql语句设置
> update mysql.user set authentication_string=password('123') where User='root'; #注意修改user表后, 不会立即生效(authentication 身份验证)
> flush privileges; #刷新权限,使user表立刻生效(不然,只能等重启mysql时才会生效)
#用password()函数给mysql.user表的某个用户所在记录的'身份验证字段'赋值新的密码字符串
3.忘记密码?
root用户可跳过授权登录服务器, 然后重置密码即可:
步骤一:root用户登录"以跳过授权表的方式开启的mysql服务器",先停掉之前的"以授权方式登录的mysql服务器"
# net stop mysql
跳过授权方式一:
命令行启动服务时加参数,如下
# mysqld --skip-grant-tables
跳过授权方式二:
写入配置文件: my.ini的 [mysqld] 下追加一行: skip-grant-tables
然后启动服务: 注意使用这个方式的时候, 修改完密码,一定要把配置文件中的这个参数去掉
> mysql -uroot -p
步骤二: 用sql语句设置密码,命令行的设置密码此时无法使用
> update mysql.user set authentication_string=password('123') where User='root'; #authentication_string字段和之前mysql版本不一样, 需注意,老的是password关键字
> flush privileges;
步骤三:退出"跳过授权方式的mysqld", 重新开启mysqld服务
> tasklist | findstr mysql
> taskkill /F /PID 382352
# net start mysql
统一字符编码
1.查看默认字符集,
> \s;
Server characterset: latin1 //默认字符集部分
Db characterset: latin1
Client characterset: gbk
Conn. characterset: gbk
2.创建mysql的配置文件, 在安装目录下创建 my.ini
[mysqld]
# 设置mysql的安装目录
basedir=D:\mysql-5.7.28-winx64
# 设置mysql数据库的数据的存放目录,必须是data
datadir=D:\mysql-5.7.28-winx64\data
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES #(strict 强制,严格)
# mysql端口
port=3306
# 字符集
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
3.重启mysql服务: 加载配置文件
4.连接mysql,查看字符集
> \s;
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
创建mysql用户和用户授权
1.创建用户名和设置密码
create user 'bajie'@'192.168.150.%' identified by ''; //% 号为通配符,代表.* , _号代表. , by后面''填写密码, 新用户默认无任何权限(identified 鉴定)
2.删除用户
drop user 'bajie'@'192.168.150.%';
3.修改用户名
rename user 'bajie'@'192.168.150.%' to 'bajie'@'%'; //可以修改用户名和登录的地址
4.修改用户密码
set password for 'bajie'@'%'=password('123');
5.给用户授权
grant select,insert,update on db1.* to 'wukong'@'%';
grant all privileges on *.* to 'wukong'@'%'; //授所有权限, 但不包括授权的权限
6.取消用户权限
revoke all privileges on *.* from 'wukong'@'%';
7.查看某个用户的授权
show grants for 'wukong'@'%';
建库建表
> create database db1;
> create table db1.t1(id int,name char(10));
> create table db1.t1(id int,name char(10)) default charset='utf8'; //指定编码创建表
> show databases;
> show tables;
> desc db1.t1; //查看表结构
> insert into db1.t1(id,name) values(1,'tongxue'); //插入一条记录
> insert into db1.t1(id,name) values(2,'tongxue'),(3,'悟空'); //插入多条记录
> show create table db1.t1; //查看当时是如何创建这个表的
> drop table db1.t1; //删除表
内容总结
1.mysql是基于c/s架构的软件
2.如何安装mysql
3.安装mysql服务
# mysqld --install
# mysqld --remove
# net start mysql
# net stop mysql
4.破解密码
# mysqld --skip-grant-tables
5.统一字符编码
my.ini
> \s;
6.创建用户
> create user 'username'@'hostname' identified by 'password';
7.给用户授权
> grant all privileges on *.* to 'username'@'hostname';
8.撤销用户权限
> revoke all privileges on *.* from 'username'@'hostname';
9.sql语句
> select user();
> show databases;
> create database db1;
> create table db1.t1(id int,name char(10));
> insert into db1.t1(id,name) values(1,'bajie'), (2,'wukong');
- mysql 免安装配置 数据库修改密码和远程IP登陆
MySQL Windows安装包说明: 1.mysql-5.5.20-win32.msi:Windows 安装包,图形化的下一步下一步的安装. 2.mysql-5.5.20.zip,这个是window ...
- MySQL初次安装配置及修改密码
安装前的准备工作: 下载完后,我们将 zip 包解压到相应的目录,这里我将解压后的文件夹放在 C:\mysql-8.0.11 下. 接下来我们需要配置下 MySQL 的配置文件 打开刚刚解压的文件夹 ...
- 阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7)
阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7) 1.效果图 1 2. 部署步骤 1 1. mysql安装附加(centos7) 7 ...
- Mysql主从安装配置
Mysql主从安装配置 环境: 主从服务器上的MySQL数据库版本同为5.1.34 主机IP:192.168.0.1 从机IP:192.168.0.2 一. MySQL主服务器配置 1.编辑配置 ...
- 在win2003上安装配置win 服务 遇到的问题
在win2003上安装配置win 服务 win服务安装后启动不起来 .. 没有装.net framework4.0 要装这个版本 mysql-connector-net-6.3.4.zip ...
- mysql主从复制安装配置
mysql主从复制安装配置 基础设置准备 #操作系统: centos6.5 #mysql版本: 5.7 #两台虚拟机: node1:192.168.182.111(主) node2:192.168.1 ...
- 记一次 mysql主从复制安装配置 过程
mysql主从复制安装配置 1.centos安装及准备 去centos官网下载相应source版本的镜像文件并在vmware中安装,安装中会遇到填写installation source,输入以下即可 ...
- [mysql]brew 安装 配置 操作 mysql(中文问题)
mac 下卸载mysqldmg mac下mysql的DMG格式安装内有安装文件,却没有卸载文件--很郁闷的事. 网上搜了一下,发现给的方法原来得手动去删. 很多文章记述要删的文件不完整,后来在stac ...
- 基于【CentOS-7+ Ambari 2.7.0 + HDP 3.0】搭建HAWQ数据仓库——安装配置NTP服务,保证集群时间保持同步
一.所有节点上使用yum安装配置NTP服务yum install ntp -y 二.选定一台节点作为NTP server, 192.168.58.11修改/etc/ntp.conf vim /etc/ ...
随机推荐
- CVE-2019-14287_sudo权限提升
影响范围 sudo是linux下普通用户使用root权限的命令,sudo配置文件中使用 ALL 语句,可以使普通账号通过vim执行root权限命令. 影响 sudo 1.8.28 之前的所有版本. 漏 ...
- python发送微信及企业微信消息
1.发送微信消息 直接使用第三方库 itchat,其文档中有详细使用方式:https://itchat.readthedocs.io/zh/latest/ 如下实例为 发送群聊信息 # -*- cod ...
- android5.1 隐藏状态栏
修改frameworks/base/core/res/res/values/dimens.xml文件中 <!-- Height of the status bar --> <!-- ...
- teb教程4
障碍物避障以及机器人足迹模型 简介:障碍物避障的实现,以及必要参数的设置对于机器人足迹模型和其对应的影响 1.障碍物避障是怎样工作的 1.1 惩罚项 障碍物避障作为整个路径优化的一部分.显然,优化是找 ...
- SVN版本管理与大型代码上线方案(一)
SVN版本管理与大型代码上线方案(一) 链接:https://pan.baidu.com/s/1A3Iq3gGkGS27L_Gt37_I0g 提取码:ncy2 复制这段内容后打开百度网盘手机App,操 ...
- 【CSS】text-align:justify 的使用
工作需要写一个全是文本的网页,规范格式的时候发现很多css属性不是很熟悉,比如text-align:justify. 这个是两端对齐,css3中新增了text-justify属性 语法:text-ju ...
- Cesium导出PDF
首先安装 html2Canvas 和 jspdf npm i html2Canvas - S npm i jspdf - S 然后在vue页面引入 import html2Canvas from 'h ...
- flexbox布局一
flexbox布局是一种新的css布局,flex是flexible的简写,所以flexbox就可以理解为可伸缩布局.而可伸缩性也是flexbox布局的亮点,至于如何可伸缩,看完下面的介绍大家应该就会有 ...
- Kylin-2.6.2集群部署
1. 集群节点规划与说明 rzx1 all rzx2 query rzx3 query 说明: Kylin节点角色有三种: all: 包含query和job query: 查询节点 job: 工作节点 ...
- 思维——cf1238C
听思维的一道题,网上大多直接模拟,感觉有点麻烦,其实只要把连续段求出来,然后处理一下统计答案就行 两个注意点:1.除了第一个连续段,其余段长度都要+1 2.因为目的地是0,所以最后一段要特判一下 #i ...