Mysql5.7和8.0版本的文件夹版安装教程 基础语法和权限设置等(整合版,超详细)

安装Mysql(5.7版本)

  1. 下载地址在这里可以自选版本,找到合适的版本进行下载

  2. 解压安装包

  3. 配置环境变量

    1. win+r 输入 sysdm.cpl

    2. 点击高级

      1. 点击环境变量

      1. 新建一个系统变量

      1. 变量名为MYSQL_HOME,变量值为你Mysql解压后的路径

      1. 编辑Path

      1. 在path上添加一个%MYSQL_HOME%\bin

  4. 配置my.ini文件

    在你的mysql根目录下新建一个my.ini文件(注意替换路径位置)

    [mysqld]
    basedir=D:\mysql-5.7.19-winx64
    datadir=D:\mysql-5.7.19-winx64\data
    port = 3306
    skip-grant-tables

    需要注意的事项:

    port:你使用mysql链接的端口号

    basedir:是mysql-5.7.19-winx64的基础目录 使用你安装mysql的根目录就可以了

    datadir:是mysql-5.7.19-winx64的基础目录 + \data

  5. 启动管理员模式下的cmd 并将路径切换到mysql下的bin目录 然后输入mysqld -install

    出现下图的Service successfully installed.则安装成功,但是有些电脑会提示缺少微软的某些dll文件 在网上下载一个微软常用运行库即可

    然后输入mysqld --initialize,cmd中不会返回任何数据 等他跑完就可以 这个命令是用于初始化你的mysql数据文件,并将你的my.ini填写的那个data目录补全

  6. 启动mysql(net start mysql),这个时候我们可以进任务管理器的服务页面看到mysql的服务已经正常启动了

  7. 我们再输入mysql -u roop -p进入mysql管理页面(密码可为空)(mysql需要启动成功)

    这里Enter password:直接点回车就可以了

    输入use mysql

    再输入命令行update user set authentication_string=password("123456") where user="root" and Host = 'localhost';【123456是你自己设置的密码,也可以改为其他好记的密码,sql语句后面一定要加分号!】

    最后输入flush privileges;刷新权限

  8. 再重新进入my.ini文件注释掉最后一句skip-grant-tables(注释掉跳过密码认证)

  9. 输入quit退出mysql命令行模式

  10. 重启mysql服务

  1. 再重新进入mysql 密码使用123456看看是不是可以正常使用mysql -u root -p123456,如果出现这个样子就安装好了(-p后面不要加空格)

安装Mysql(8.0版本)

  1. Mysql下载:自选版本点这里(不带最新版本) 最新版本点这里

    我这里用的是最新版本的那个网址 但具体操作是一样的 也看你自己选择的版本

    这是最新版本的下载出现的网页

    如果出现这个点下面红框的地方就行,这个是让你登录和注册Oracle账号

  1. 下载会出现一个zip的压缩包然后解压到你所需要的文件夹

    在这个目录下新建一个my.ini文件,具体内容如下:

    [mysqld]
    # 设置3306端口
    port=3306
    basedir=D:\mysql-8.0.27-winx64
    datadir=D:\mysql-8.0.27-winx64\data
    # 允许最大连接数
    max_connections=200
    # 允许连接失败的次数。
    max_connect_errors=10
    # 服务端使用的字符集默认为utf8mb4
    character-set-server=utf8mb4
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
    # 默认使用“mysql_native_password”插件认证
    #mysql_native_password
    default_authentication_plugin=mysql_native_password
    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8mb4
    [client]
    # 设置mysql客户端连接服务端时默认使用的端口
    port=3306
    default-character-set=utf8mb4

    和5.7版本一样需要注意的事项:

    port:你使用mysql链接的端口号

    basedir:是mysql的基础目录 使用你安装mysql的根目录就可以了

    datadir:是mysql的基础目录 + \data

  2. 启动管理员模式下的cmd 并将路径切换到mysql下的bin目录(cd /d “你需要跳转的路径”) 然后输入mysqld --initialize --console

    输入之后会产生多条数据,其中下面红框标注的部分就是mysql自动生成的密码,因为我们之后需要通过这个去修改密码,所以一定要把这个复制下来记清楚(:后面有一个空格,不需要复制,我这里的密码就是VHjdotdBY2>C

    输入mysqld --install mysql来安装mysql,显示Service successfully installed.则安装成功

    使用net start mysql来启动mysql

    使用mysql -uroot -p,点击回车,输入密码(最好是自己手动输入,我粘贴的时候出现了一点问题),出现下面的页面则成功进入了mysql命令行

    输入以下代码修改密码:ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';,修改成功输入exit退出mysql命令行,我这里的123456就是你要修改的密码

  3. 配置环境变量

    1. win+r 输入 sysdm.cpl

    2. 点击高级

    3. 点击环境变量

    4. 新建一个系统变量

    5. 变量名为MYSQL_HOME,变量值为你Mysql解压后的路径

    6. 在path上添加一个%MYSQL_HOME%\bin,点击确定,mysql8就安装成功了

使用mysql可视化软件

(自行选择sqlyog或者Navicat)[我这里使用的是Navicat]

打开Navicat,点击连接,点击Mysql

按照下图所输入的东西输入(密码就是你刚刚使用的密码)

测试连接如果连接成功则点击确定即可

Mysql基本语法

-- 创建数据库
Create DATABASE 数据库名;

-- 如果数据库不存在才创建数据库
CREATE DATABASE IF NOT EXISTS 数据库名;

-- 删除数据库
drop database 数据库名;

-- 如果数据库存在才删除数据库
DROP DATABASE IF EXISTS April_1;

-- 使用数据库
-- 如果你的表名/字段名是一个特殊字符 就需要带上``,例如说`sys`
use 数据库名;

-- 插入数据
INSERT INTO students(id, name, class) VALUES('1', 'April', 'class126');
INSERT INTO students VALUES('2', 'April', 'class126', 14);

-- 修改数据
UPDATE students SET name=’April1’, age=’20’ WHERE age<50 AND classname='class126';

-- 删除数据
DELETE FROM students WHERE name=’April’ OR age < 18;

-- 删除表
DELETE FROM students;

-- 删除表(彻底删除)
-- truncate 是先DROP TABLE,再CREATE TABLE。而且TRUNCATE删除的记录是无法回滚的,但DELETE删除的记录是可以回滚的
TRUNCATE TABLE stu;

-- 创建用户
create user '用户名'@'IP地址' identified by '密码';    # 语法
create user '用户名'@'localhost' identified by '密码';   # 本地可用账号
create user '用户名'@'192.168.12.1' identified by '密码'; # 具体哪个ip可用账号
create user '用户名'@'192.168.12.%' identified by '密码'; # 具体哪个网段可用账号
create user '用户名'@'%' identified by '密码';      # 所有ip都可用账号

-- 删除用户
drop user '用户名'@'IP地址';

-- 修改用户
rename user '用户名'@'IP地址' to '新用户名'@'IP地址';

-- 修改密码
set password for '用户名'@'IP地址' = password('新密码');

-- 授权
grant 权限 on 数据库.表 to '用户'@'IP地址' # 授权语法
grant select on db.* to 'zekai'@'%'; # db下所有表授予select权限
grant select on *.* to 'zekai'@'%'; # 所有数据库都授予select权限
grant select,insert on *.* to 'zekai'@'%'; # 授予多个权限
grant all privileges on *.* to 'zekai'@'%'; # 授予全部权限,除了创建用户

-- 创建与授权联合使用
grant all privileges on *.* to "账号名"@"%" identified by "密码" with grant option;

-- 每次授权完之后,一定要刷新授权
flush privileges;

-- 授权例子(所有权限)
GRANT all PRIVILEGES on filecollect.* to 'zzh01'@'localhost'

-- 设置编码方式
-- 例子:private String url="jdbc:mysql://localhost:3306/bookbd?useUnicode=true&characterEncoding=utf8";
-- ?useSSL=true&amp;useUnicode=true&amp;characterEncoding=utf8?useSSL=true&useUnicode=true&characterEncoding=utf8

-- 默认值约束
alter table 表名 alter column 字段名 drop default; (若本身存在默认值,则先删除)
alter table 表名 alter column 字段名 set default 默认值;(若本身不存在则可以直接设定)

-- 唯一约束
alter table 表名 add unique key(字段名);

-- 清除表内数据,保存表结构,用 truncate
truncate table 表名

Mysql的权限

权限名字权限说明在数据库中使用的位置/地址
CREATE 允许创建新的数据库和表 数据库、表或索引
DROP 允许删除现有数据库、表和视图 数据库、表或视图
GRANT OPTION 能够把自己获得的权限转赠给其他用户一个副本 数据库、表或存储过程
LOCK TABLES 允许使用显式锁表的语句锁表,前提是你必须有SELECT权限 数据库
REFERENCES MySQL 5.7.6之前引用特权是未使用的。5.7.6,创建一个外键约束需要引用父表的特权。 数据库或表
EVENT The EVENT privilege is required to create, alter, drop, or see events for the Event Scheduler. 数据库
ALTER 允许修改权限或重命名表
DELETE 允许从表中或数据库中删除行
INDEX 允许创建或删除索引表
INSERT 允许在表和数据库中插入行 表或列
SELECT 允许在表和数据库这查询行 表或列
UPDATE 允许在表和数据空中更新行 表或列
CREATE TEMPORARY TABLES 允许创建和使用临时表
TRIGGER 允许使用触发器相关,前提是你必须拥有这个表的CREATE、DROP、EXECUTE或者Display权限
CREATE VIEW 允许使用CREATE VIEW语句 视图
SHOW VIEW 允许使用SHOW VIEW语句 视图
ALTER ROUTINE ALTER ROUTINE允许你修改存储过程(过程或函数)前提是你需要在存储过程上拥有ALTER或DROP权限 存储过程
CREATE ROUTINE ALTER ROUTINE允许你创建存储过程(过程或函数)前提是你需要在存储过程上拥有ALTER或DROP权限 存储过程
EXECUTE 允许你执行存储过程(过程或函数) 存储过程
FILE 文件读写权限允许你文件在服务器主机上使用LOAD DATA INFILE and SELECT 语句以及LOAD DATA()函数 服务器主机上的文件访问
CREATE TABLESPACE 允许创建表空间,前提是你需要CREATE、ALTER OR DROP tablespaces 以及属于log file 组 服务器管理
CREATE USER 允许使用ALTER USER, CREATE USER, DROP USER, RENAME USER, and REVOKE ALL PRIVILEGES 语句 服务器管理
PROCESS 允许使用SHOW PROCESSLIST or mysqladmin processlist看到线程属于其他账户,你总能看到自己的线程。PROCESS权限还允许使用SHOW ENGINE语句 服务器管理
PROXY(代理)   服务器管理
RELOAD 允许使用FLUSH语句,以及mysqladmin命令中对于FLUSH的操作例如:flush-hosts, flush-logs, flush-privileges, flush-status, flush-tables, flush-threads, refresh, and reload. 服务器管理
REPLICATION CLIENT 是否有权限去请求复制相关主数据库产生的事件的,允许显示的使用SHOW MASTER STATUS, SHOW SLAVE STATUS, and SHOW BINARY LOGS语句 服务器管理
REPLICATION SLAVE 是否能够创建连接以复制的方式,连接至数据库服务器端 服务器管理
SHOW DATABASES 允许使用SHOW DATABASES来查看所有数据库列表,如果没有这个权限则只能查看规定数据库 服务器管理
SHUTDOWN 允许使用SHUTDOWN语句,mysqladmin shutdown命令,以及mysql_shutdown()API函数 服务器管理
SUPER 超级特权可以用于终止其他会话或改变服务器运行。属于特别高级别的一类权限 服务器管理
USAGE 无权限,当您想要创建一个没有权限的用户时,可以指定USAGE 服务器管理
ALL PRIVILEGES 所有权限: ALL PRIVILEGES,可以简写为ALL 服务器管理

授权方式

GRANT 权限名字(多个权限用","号隔开)ON 数据库名.表名TO '用户名'@'允许登录的ip地址'[ IDENTIFIED BY '密码'];

举例:

GRANT ALTER,DELETE,INDEX,INSERT,SELECT,UPDATE ON April.Stu TO 'April' @ '192.168.10.116' IDENTIFIED BY '123456' ;

查看用户获得的授权

SHOW GRANTS FOR 'April' @ '192.168.10.116' ;
posted @   April-四月一  阅读(871)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示