Mysql 是基于C/S端的管理文件的服务器软件.
Mysql简单分为两个软件:1服务器软件 2客户端软件
对于服务器软件中的socket服务器是一只开着的,客户端需要连接,并且还有创建文件删除文件等操作.
对于客户端软件中的socket客户端,我们的需要发送指令去命令socket服务端对文件进行操作.
安装和相关设置
mysql安装步骤:
1 下载mysql压缩包 官网地址: https://dev.mysql.com/downloads/mysql/
2解压mysql 的压缩包 到指定的盘或文件夹 (例如 解压到E盘下)
3 把解压包中的bin文件添加系统变量 (在系统环境变量中 path下编辑添加E:mysql-5.7.21-winx64in)
4 初始化软件 在CMD中以管理员身份开启 输入 mysqld --initialize-insecure 然后等待(该过程可能需要一些时间) 不要强制退出
5 初始化完成后 会在解压完成的文件夹中生成一个data文件夹 这就是我们以后操作mysql时 文件的存储位置
6 启动mysql服务 在cmd中输入 mysqld
7启动客户端并连接服务端 mysql -uroot -p
8上一步解决了一些问题,但不够彻底,因为在执行【mysqd】启动MySQL服务器时,当前终端会被hang住,那么做一下设置即可解决此问题,即将MySQL服务制作成windows服务
统一字符编码:
在Mysql软件的目录下新建一个my,ini 的文件 然后在文件中复制下面这段代码(相关路径需要根据自己文件解压位置进行更改)
[mysqld] # 设置mysql的安装目录 **后面的路径一定是安装sql的目录(自己电脑的)** basedir=C:mysql-5.7.22-winx64mysql-5.7.22-winx64 # 设置mysql数据库的数据的存放目录,必须是data datadir=C:mysql-5.7.22-winx64mysql-5.7.22-winx64data sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES # mysql端口 port=3306 # 字符集 [mysqld] character-set-server=utf8 collation-server=utf8_general_ci [client] default-character-set=utf8 [mysql] default-character-set=utf8
设置完成以后 重启mysql 服务端 net start mysql
查看mysql软件配置:
root客户端登录 mysql -uroot -p 进入以后输入 s;查看相关配置
window服务的安装:
1 在cmd中以管理员身份运行
2 输入mysqld --install 安装window服务
3 移除 mysqld --remove 移除window服务 一般不用
使用:
net start mysql:开启服务端
net stop mysql :关闭服务端
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
注意:--install前,必须用mysql启动命令的绝对路径 # 制作MySQL的Windows服务,在终端执行此命令: "c:mysql-5.6.40-winx64inmysqld" --install # 移除MySQL的Windows服务,在终端执行此命令: "c:mysql-5.7.16-winx64inmysqld" --remove 注册成服务之后,以后再启动和关闭MySQL服务时,仅需执行如下命令: # 启动MySQL服务 net start mysql # 关闭MySQL服务 net stop mysql
忘记密码:
忘记密码怎么办?
(1) 先关闭掉之前的mysql服务器的进程 net stop mysql
(2) 跳过授权表开启mysql的服务端 mysqld --skip-grant-tables (开启服务端的 约束条件跳过授权)
(3) 客户端连接 mysql -uroot -p
(4) 更改密码:update mysql.user set authentication_string =password('') where User='root';
(5) 刷新权限 flush privileges;
查看进程号 :tasklist |findstr mysql
杀死进程:taskkill/F /PID进程号
创建用户:
1 管理员登录
管理员为root(拥有最高权限,管理员账号),密码为空,以无密码的方式登录了管理员账号,是非常危险的一件事情,所以要为管理员账号
C:Usersmjj>mysqladmin -uroot -p password "123" #设置初始密码 由于原密码为空,因此-p可以不用 注意这句话不起作用, 请使用update mysql.user set authentication_string =password('') where User='root'
如果想将原始密码123,设置新密码为456
C:Usersmjj>mysqladmin -uroot -p"123" password "456" #修改mysql密码,因为已经有密码了,所以必须输入原密码才能设置新密码
2 进入到mysql数据库下 use mysql
3对新用户增删改
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1.创建用户: # 指定ip:192.118.1.1的mjj用户登录 create user 'mjj'@'192.118.1.1' identified by '123'; # 指定ip:192.118.1.开头的mjj用户登录 create user 'mjj'@'192.118.1.%' identified by '123'; # 指定任何ip的mjj用户登录 create user 'mjj'@'%' identified by '123'; 2.删除用户 drop user '用户名'@'IP地址'; 3.修改用户 rename user '用户名'@'IP地址' to '新用户名'@'IP地址'; 4.修改密码 set password for '用户名'@'IP地址'=Password('新密码');
4 对当前用户的授权管理
#查看权限 show grants for '用户'@'IP地址' #授权 mjj用户仅对db1.t1文件有查询、插入和更新的操作 grant select ,insert,update on db1.t1 to "mjj"@'%'; # 表示有所有的权限,除了grant这个命令,这个命令是root才有的。mjj用户对db1下的t1文件有任意操作 grant all privileges on db1.t1 to "mjj"@'%'; #mjj用户对db1数据库中的文件执行任何操作 grant all privileges on db1.* to "mjj"@'%'; #mjj用户对所有数据库中文件有任何操作 grant all privileges on *.* to "mjj"@'%'; #取消权限 # 取消mjj用户对db1的t1文件的任意操作 revoke all on db1.t1 from 'mjj'@"%"; # 取消来自远程服务器的mjj用户对数据库db1的所有表的所有权限 revoke all on db1.* from 'mjj'@"%"; 取消来自远程服务器的mjj用户所有数据库的所有的表的权限 revoke all privileges on *.* from 'mjj'@'%';
mysql备份命令行操作:
# 备份:数据表结构+数据 mysqdump -u root db1 > db1.sql -p # 备份:数据表结构 mysqdump -u root -d db1 > db1.sql -p #导入现有的数据到某个数据库 #1.先创建一个新的数据库 create database db10; # 2.将已有的数据库文件导入到db10数据库中 mysqdump -u root -d db10 < db1.sql -p
数据库概念
数据库服务器:运行数据库管理软件 (相当于一台计算机)
数据库管理软件:管理-数据库 (mysql软件)
数据库:即文件夹,用来组织文件/表 (文件夹)
表:即文件,用来存放多行内容/多条记录 (文件)
记录: 即具体数据 1 小明 男 26岁 (具体写入的数据)