一、数据库概念
MySQL:用于管理文件的一个软件(两个程序)
服务端软件
socket服务器
本地文件操作
解析指令
客户端软件
socket客户端
发送指令
解析指令
mysql只是一种能够帮助我们管理数据的软件,还有其他类似的软件也是通过发送指令来帮你管理数据库
其他类似软件:
关系型数据库:sqlite,db2,oracle,sql server,access,MySQI
菲关系型数据库:mongodb,redis
总结:mysql就是帮助我们远程在文件上做相应操作的
二、MySQL的安装
mysqld服务端
mysql客户端
软件目录结构初识
终端最好以管理员身份运行
切换到mysql目录下启动mysqld服务端(阻塞,监听地址,固定的ip和端口)
cd D:mysql56
D:
新开cmd窗口启动mysql客户端
链接mysql:
mysql -h 127.0.0.1 -P 3306 -uroot -p 密码不输,直接回车
如果是在本机登录mysqld服务器,可以简写为mysql -uroot -p
客户端服务端请求流程分析
show databases诠释文件夹和库概念
环境变量配置
系统服务制作(制作之前一定要先把mysql关闭)
# 查看mysqld进程 tasklist |findstr mysqld # 杀死mysqld进程 taskkill /F /PID 'PID号'
将mysqld这款软件做成系统服务软件
mysqld --install
查看计算机当前运行程序数
services.msc
三、修改密码与破解管理员密码
mysqladmin -uroot -p password "123" # 第一次修改完密码以后,之后还修改密码需要 mysqladmin -uroot -p123 password "123456" # 为了后续调试方便,这里把密码设为空值 mysqladmin -uroot -p123 password "新密码"
破解密码
先关闭mysqld服务器
以跳过授权表的方式在命令行中启动mysqld服务端
mysqld --skip-grant-tables
客户端直接
mysql -uroot -p
修改管理员密码
update mysql.user set password=password("123") where user="root" and host="localhost"; flush privileges; # 刷新权限
命令行杀死mysqld服务
tasklist |findstr mysqld taskkill F PID 'PID'
服务管理正常启动mysqld
四、统一字符编码
mysql命令:"s"查看编码
修改配置文件,执行时会自动查找my.ini文件
mysql不输用户名和密码,会默认以游客模式登陆,不好!
# my.ini配置文件特点 [mysql] #终端输入mysql打头的命令就会加载下面的配置 username='root' # 演示确实加载改文件,但是username叫user才正确 password = '123' [mysqld]
通用配置
[mysqld] character-set-server=utf8 collation-server=utf8_general_ci [client] default-character-set=utf8 [mysql] default-character-set=utf8
mac系统
finder中切换到默认安装路径下/usr/loacl/mysql
下面就是一大堆文件目录
配置文件是my.cnf,没有int等windows上的配置文件
五、基本sql语句
对数据的增删改查
sql书写错误,只要没加分号,可以加c使前面的sql语句失效
针对文件夹的(库)
# 增 create database db1 charset utf8; # 改 alter database db1 charset gbk; # 查 show databases; show create database db1; # 删 drop database db1;
针对文件的(表)
文件首先需要在文件夹下面,所以在操作文件之前,应该先确定操作的是哪个文件夹下面的文件
# 切换文件夹 use db1; select database(); # 查看当前所在的库 # 增 create table t1(id int,name char); # 创建出来的可能是多个文件,解耦管理 # 改 alter table t1 modify name char(16); # 查 show tables; show create table t1; # 查看表的详细信息 describe t1; == desc t1; # 查看表结构 # 删 drop table
针对(记录)
# 增 insert into db1.t1 values (1,'egon'),(2,'kevin'),(3,'jason'); # into可加可不加,db1可以不指定,默认就是在当前库下 # 改 update db1.t1 set name='DSB' where id > 1; update db1.t1 set name='DSB' where id = 2 or id = 3; # 查 select id,name from db1.t1; # db1可不指定,默认当前库下 select * from t1; # 删 delete from db1.t1 where id >3; delete from db1.t1 where name='egon' # 这里注意如果少了一个引号,后面无论敲什么都没有用了需要将引号补全