MySQL参考手册

Windows下安装MySQL(mysql-5.7.19-win32.zip/免安装版本)

  1. mysql官网下载mysql-5.7.19-win32.zip包,解压到指定目录

  2. (非管理员用户以管理员运行 CMD) DOS命令行进入mysql的目录

    进入mysql的bin目录

  3. 安装mysql服务mysqld -install

    安装mysql服务

  4. 初始化data目录mysqld --initialize-insecuremysqld --initialize

    安装mysql服务

    注:5.7版本解压后不含data文件;mysqld --initialize-insecure自动生成无密码的root用户,mysqld --initialize自动生成带随机密码的root用户。data文件夹不为空不能执行这个命令,需要先删除data目录。

  5. 新建配置文件my.ini
    [client]
    port=3306
    default-character-set=utf8
    [mysqld]
    port=3306
    character_set_server=utf8
    basedir=替换为你的mysql根目录
    datadir=替换为你的mysql data目录
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    [WinMySQLAdmin]
    C:\server\mysql-5.7.19-win32\bin\mysqld.exe
    

    my.ini下载地址 配置信息详解

    注:这个配置文件需要放到bin目录下!!!

  6. 启动mysql服务net start mysql

    停止MySQL服务

  7. 配置环境变量(将mysql到bin目录配置到mysql中)


Windows下卸载MySQL(mysql-5.7.19-win32.zip/免安装版本)

  1. 停止mysql服务net stop mysql

    停止服务

  2. 删除mysql服务sc delete mysql

    删除服务

  3. 删除mysql磁盘文件


重置MySQL密码(忘记密码)

  1. 停止mysql服务net stop mysql
  2. 输入mysqld --skip-grant-tables回车,启动MySQL服务的时候跳过权限表认证。

    注:刚才那个DOS窗口已经不能动了,再开一个DOS窗口,如果成功,将出现MySQL提示符 >。

  3. 输入use mysql回车,连接权限数据库。

  4. 改密码 update user set authentication_string=password("新密码") where user="root";

    安装mysql服务

  5. 刷新权限flush privileges;

  6. 退出quit

  7. 启动服务net start mysql

    注:如果无法启动,结束“mysqld.exe”进程,重新启动服务。


创建用户并给用户赋值对应数据库权限

  1. mysql 创建用户步骤: INSERT INTO mysql.user (HOST,USER,PASSWORD) VALUES('%','test', PASSWORD('test'));

    CREATE USER test@'%' IDENTIFIED BY 'test';

    增加一个test用户,密码为test,%表示不限制登录IP,可以加个IP表示只能在192.168.1.1上登录

  2. 给用户赋权限值: GRANT ALL PRIVILEGES ON test.* TO test@'%' IDENTIFIED BY 'test';

    给test用户赋值test库的所有权限,也可以只赋值select, insert, update, delete。

  3. 刷新权限 FLUSH PRIVILEGES;




MySQL基本操作
MySQL约束参考

#### MSYQL 锁 1.共享锁(读锁/S锁):允许多个连接并发的读取统一资源。 加锁方式:SELECT * FROM table LOCK IN SHARE MODE 释锁方式:COMMIT/ROLLBACK 2.排他锁(写锁/X锁):写的同时阻塞其他写或读操作,保证同一时刻只能有一个连接写入数据。 INSERT/DELETE/UPDATE默认加了X锁 加锁方式:SELECT * FROM table FOR UPDATE 释锁方式:COMMIT/ROLLBACK 3.意向共享锁(表锁/IS) 4.意向排他锁(表锁/IX) 5.锁策略 表锁: 行锁:

MYSQL 事务

事务并发引发的三大问题: 1.脏读:事务A读取到事务B更新回滚的数据。 2.不可重复读: 事务A两次去读的数据不一样(事务A第二次读取的是事务B修改后的数据)。 3.幻读:事务A第一次获取n条数据,事务B添加了m行数据,事务A第二次获取的数据是n+m条。 1.ACID特性 2.隔离级别 https://ask.qcloudimg.com/http-save/yehe-2728002/hdyvs2vd12.jpeg?imageView2/2/w/1620 1.READ UNCOMMITTED(未提交读):事务未提交的数据,对其他事务也是可见的,会出现脏读。 2.READ COMMITTED(提交读):一个事务开始之后,只能看见已提交事务做的修改,会出现不可重复读。 3.REPEATABLE READ(可重复读):同一事务中多次去读数据的结果是一样的,会出现幻读(除InDB外)。 4.SERIALIZABLE(可串行化):最高的隔离级别,强制所有事务串行执行。

参考:https://www.cnblogs.com/wangkaihua/archive/2019/01/03/10217490.html