MySQL安装与使用

Wesley13
• 阅读 599

1、下载mysqld

进入https://www.mysql.com/

在网页中依次点击:DOWNLOADS--->MySQL Community(GPL)Downloads---->MySQL Community Server

MySQL安装与使用

 这里以下载mysql-5.6.46-winx64.zip为例

下载成功后解压--->改名为mysql56

2、添加系统环境变量

把mysql56下bin文件的目录路径添加到系统的环境变量中

3、把mysql制作成系统服务

  注意:在制作之前要把mysqld关掉(在命令提示符中输入taskkill  /F  /PID xxxx ,xxx可以通过输入tasklist  |findstr mysqld查看)

  制作:在命令提示符中输入mysqld --install回车后就制作成功,可以通过在win+R中输入services.msc中查看制作成功(MySQL)

       此时可以通过双击MySQL启动

  可以在cmd中输入:net start mysql / net stop mysql 进行开启/关闭mysql

4、启动

启动服务端:

  mysqld

启动客户端:

  mysql  -uroot -p -h127.0.0.1 -p 3306           

如果在本机登陆mysqld客户端可以简写:

  mysql -uroot -p

5、修改密码

在系统命令提示符(以管理员身份运行)中输入mysqladmin -uroot -p password "123”,然后回车在回车就会把密码设置成123,如果再把密码改为456:

mysqladmin -uroot -p123 password "456" 回车就会修改成功

6、破解管理员密码

(1)先跳过密码登入:

#1 关闭mysql
#2 在cmd中执行:mysqld --skip-grant-tables

(2)打开新的cmd输入 mysql -uroot -p登入

(3)修改密码:update mysql.user set password=password("123") where user="root" and host="localhost";

         刷新:flush privileges

(4)在命令行中用taskkill  /F  /PID xxxx杀死mysqld服务,然后正常启动mysqld

7、统一字符编码

问题:以管理员的身份运行cmd--->mysql -uroot -p456--->\s:此时会发现表格数据中有多种编码(latinl、gbk),需要统一改为utf8

解决方法:在mysql56目录下新建文档,改名为my.ini,然后用Notepad++打开,进行如下配置:

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci

[client]
default-character-set=utf8

[mysql]
user="root"
password="2180736"
default-character-set=utf8

然后关闭再重启mysql,编码就会统一为utf8

8、创建用户以及授权

连接:

  默认:用户root

  创建:

    create user 'alex'@'192.168.1.1' identified by '123123';

              create user 'alex'@'192.168.1.%' identified by '123123';

    create user 'alex' @'%' identified by '123123';

  授权:

    用法:

    show grants for '用户'@'IP地址'                  -- 查看权限
    grant  权限 on 数据库.表 to   '用户'@'IP地址'      -- 授权
    revoke 权限 on 数据库.表 from '用户'@'IP地址'      -- 取消权限

    例如:

    grant select,insert,update on db1.t1 to 'alex'@'%';  用户在任何机器上都能对 db1数据库下面的t1做查看、插入、更新操作  

              grant all privileges on db1.t1 to 'alex'@'%';       给用户授权所有功能(用户授权给别人的功能除外)

 9、基本的SQL语句

1、文件夹(库)    增        create database db1 charset utf8;    改        alter database db1 charset gbk;    查        查看所有库的库名        show databases;        单独查看某一个库的信息        show create database db1;    删        drop database db1;2、文件(表)    首先切换文件夹:        use db1;        select database(); #查看当前所在的文件夹    增

     create table t1(id int,name char);
     create table t1(id int,name char)engine=innodb default charset=utf8;
     create table t3(id int auto_increment primary key,name char(10))engine=innodb default charset=utf8;  *****

       create table t1(
      列名 类型 null,
      列名 类型 not null,
      列名 类型 not null auto_increment primary key,
      id int,
      name char(10)
    )engine=innodb default charset=utf8;
      # innodb 支持事务,原子性操作
      # myisam myisam

      auto_increment 表示:自增 (一个表里面只能有一个自增列)
      primary key: 表示 约束(不能重复且不能为空); 加速查找 (一般与auto_increment 连用)
      not null: 是否为空

         MySQL安装与使用

数据类型:

1、数字:

    tinyint:-128127                                           0255
    int:-21474836482147483647                                 04294967295
    bigint:-9223372036854775808 ~ 9223372036854775807          0 ~ 18446744073709551615

    FLOAT
      0.00000100000123000123001230123   (数据不精准)
    DOUBLE
      0.00000000000000000000100000123000123001230123
      0.00000100000123000000000000000  (数据不精准)
    decimal
      注意:对于精度数值计算时需要用此类型,

         decimal能够储存精确值的原因在于其内部按照字符串储存
  2、字符串:
    char(m) 速度快()
    char数据类型用于表示固定长度的字符串,可以包含最多达255个字符。其中m代表字符串的长度,即使数据小于m长度,也会占用m长度

    varchar(10) 节省空间
    varchars数据类型用于变长的字符串,可以包含最多达255个字符。其中m代表该数据类型所允许保存的字符串的最大长度,只要长度小于该最大值的字符串都可          以被保存在该数据类型中。

    PS: 创建数据表定长列往前放,,,,char、varchar最多存255个字符

 3、text:
    上传文件:
      文件存硬盘
      db存路径

 4、时间类型:
    DATETIME: YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59 Y)

5、enum:枚举类型
 CREATE TABLE shirts (
       name VARCHAR(40),
       size ENUM('x-small', 'small', 'medium', 'large', 'x-large')
       );
       INSERT INTO shirts (name, size) VALUES ('dress shirt','large'), ('t-shirt','medium'),('polo shirt','small');

 6、set:集合类型

      CREATE TABLE myset (col SET('a', 'b', 'c', 'd'));
           INSERT INTO myset (col) VALUES ('a,d'), ('d,a'), ('a,d,a'), ('a,d,d'), ('d,a,d');

    create table t1(
      id int signed not null auto_increment primary key,
      num decimal(10,5),
      name char(10)
    )engine=innodb default charset=utf8;

改        alter table t1 modify name char(16);    查        查看当前库下所有的表名        show table        查看t1表的详细信息        show create table t1;        查看表结构        desc t1;

        清空
                  1、delete from t1;(自增情况下清空再插入数据,序号从上面递增)
        2、truncate table t1;(运行速度比上面的快 ,再插入数据序号从1开始)

删        drop table t1;3、文件的一行内容(记录)    增        insert into db1.t1(id,name) values        (1,'egon'),        (2,'alex'),        (3,'lxx');    改        update db1.t1 set name='sb' where id > 1;    查        select id,name from db1.t1;    删     delete from t1;(全部删除)        delete from db1.t1 where name = "SB" ; (有条件的删除)详见:https://www.cnblogs.com/wupeiqi/articles/5713323.html
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这