mysql 基础
mysql -h 127.0.0.1 -P 3306 -u root -p
忘记密码,修改#
win安装mysql5.7#
Mysql5.7地址:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.19-winx64.zip
1)解压,设置bin目录为环境变量
2)新建文件夹my.ini
[client]
port=3306
default-character-set=utf8
[mysqld]
# 设置为自己MYSQL的安装目录
basedir=D:\..\..\
# 设置为MYSQL的数据目录
datadir=D:\..\..\data\
port=3306
character_set_server=utf8
#跳过安全检查
skip-grant-tables
3)管理员运行CMD , 打开 D: cd到目录
4)打开mysql服务:mysqld -install ------------ 与之相反是 删除服务:sc delete mysql
5)初始化数据库: mysqld --initialize-insecure --user=mysql
6)启动mysql 服务: net start mysql 【停止mysql服务指令 net stop mysql】
7)进入mysql 管理终端: mysql -u root -p 【当前root 用户密码为 空】
8)修改root 用户密码:use mysql;update user set authentication_string=password('新密码') where user='root' and Host='localhost';
9)刷新权限:flush privileges;
10)修改my.ini:#skip-grant-tables
注意
安装报错 如果找不到文件2:win+R regedit --》 计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL 改一下上面的imagepath路径
Linux安装mysql8.0#
一、先卸载MariaDB
rpm -qa | grep -i mariadb(检查有没有mariadb)
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64(不检查依赖直接卸载)
二、检查是否有mysql残留(如有最好也卸载干净,下面重新安装)
rpm -qa | grep mysql
三、下载mysql库(要连网)
wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
四、安装mysql库
yum -y install mysql80-community-release-el7-3.noarch.rpm
五、重新获取mysql的GPG(不执行的话下一步yum安装会报错)
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
六、安装mysql(默认安装mysql8.0)
yum -y install mysql-community-server
七、开启mysql服务
systemctl start mysqld
八、检查mysql运行状态(非必要操作)
systemctl status mysqld(如没运行,执行systemctl start mysqld)
九、查看默认密码(非必要操作)
cat /var/log/mysqld.log | grep password
十、进入mysql -uroot -p,修改初次密码
alter user 'root'@'localhost' identified by 'Root@123456';
十一、把密码权限调低后可以改任意密码
set global validate_password.policy=0;
set global validate_password.length=1;
十二、给远程地址授权登陆
# 创建用户并设置密码
create user 'root'@'%' identified with mysql_native_password by '123456';
# 授权远程访问
grant all privileges on *.* to 'root'@'%' with grant option;
# 修改加密规则(mysql8.0版本)
ALTER USER 'root'@'%' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;
# 刷新
flush privileges;
在DOS中备份数据库为.sql文件#
数据库三层结构#
mysql约束#
1)primary key :主键,一张表只能有唯一 一个主键,可以复合主键,not null
+ unique
= primary key
2)auto_increment : 自增长
2)unique : 值唯一,没有与not null 搭配时,可以有多个null存在
3)foreign key: 约束在 primary key 或 unique 上,
foreign key (外键名) references 主键表(id)
4)check : 像是添加限制,示例如下 (包括5.7之前都用不了)
索引 (优化)#
原理:生成二叉树、B树之类的排序
注意
: 主键 primary key 天然就是索引
管理mysql登录账户#
数据库语句分类#
DDL(Data Definition Language):数据库定义语言,操作数据库和数据表的语言 create#
DML(Data Manipulation Language): 数据操纵语言,对数据表的数据进行增删改的语言 insert update delete#
DQL(Data Query Language): 数据查询语言,用来查询记录(数据)select#
DCL(Data Control Language): 数据控制语言,用来设置/更改数据库用户权限,常用关键字有 GRANT、REVOKE 。#
库#
表#
数据 CRUD#
SELECT#
order by(排序)#
求一列的值,count()、sum()、avg()#
group by(求值..后分组), having(分组后筛选)#
limit (分页公式)#
优先级#
时间#
★★ 多表查询#
联表查询
自连接
子查询
复制结构、插入复制数据 + distinct 实现去重#
union 俩表相加#
事务#
特性
:#
a 原子性(事务里要么全生效,要么全失效)
c 一致性(关联数据之间的数据保证正确与完整)
i 隔离性 (多用户并发访问数据库时,每个用户开启的事务互不影响)
d 持久性(事务一旦commit后,就不会丢失数据)
隔离级别
:#
Read uncommitted、Read committed、Repeatable read、Serializable
1)查看当前会话隔离级别
select @@tx_isolation;
2)查看系统当前隔离级别
select @@global.tx_isolation;
3)设置当前会话隔离级别 (为可重复读)
set session transaction isolation level repeatable read;
4)设置系统当前隔离级别
set global transaction isolation level repeatable read;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本