MySQL安装与基本配置


目录
  • Mysql 选择5.6.48版本

    将服务端和客户端一并下载到本地

    服务端和客户端都在本地启动,后期到了公司服务端会有专门的服务器,所有人基于网路连接服务端操作
    在这里插入图片描述找到mysql安装位置: 如下图在这里插入图片描述

    解压完成后,在bin目录下

    服务端 mysqld.exe
    
    客户端 mysql.exe
    

    在这里插入图片描述
    在这里插入图片描述

    注意:

    前期在配置MySQL时,cmd终端以管理员身份运行
    Win+R 输入cmd,进入的是普通用户终端,有一些命令是无法执行的
    

    前期启动服务端:

    • cmd,管理员身份切换到mysqld所在的bin目录下,然后终端输入mysqld,回车
    • 保留cmd窗口重新打开一个cmd作为客户端,然后切换到bin目录下,输入mysql -h 127.0.0.1 -P 3306 -uroot -p
    • 刚开始是没有密码的,直接回车就可
      image.png
    
    """常用软件默认端口号"""
    Mysql 3306
    redis 6379
    mongodb 27017
    django 8000
    flask 5000
    
    """
    MySQL第一次以管理员身份运行是没有密码的,直接回车即可
    """
    

    SQL语句初始

    • Mysql中 的sql语句是以分号作为结束的标志
    • 基本命令:
    """查看所有的数据库库名"""
    show databases;  
    

    在这里插入图片描述

    """客户端连接服务端命令""":
    mysql -h 127.0.0.1 -P 3306   -uroot -p
    可以简写成  mysql    -uroot -p
    
    """当输入的命令不对,又不想让服务器执行并返回报错信息,可以用 \c 取消"""
    
    """客户端退出""": 
    退出命令加不加分号都可以
    	quit 
    	exit 
    
    """
    当在连接服务端的时候,
    发现只输入mysql的时候也能连接 ,
    但是不是管理员身份,
    只是一个游客模式
    """
    

    环境变量配置及系统服务制作

    知识补充

    1.查看当前具体进程
    tasklist
    tasklist |findstr mysqld
    2.杀死具体进程 (在管理员cmd窗口才可以)
    taskkill /F /PID PID号
    

    环境变量配置

    • 每次启动mysqld需要先切到对应的文件路径下才可以,这样就太繁琐,可以把bin 目录添加到系统变量Path下。那么再次启动MySQL服务端的时候就不需要去换到对应的路径下,直接输入mysqld,就启动了,再启动一个cmd客户端,输入mysql -uroot -p,来连接服务端
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
    • 但是经过上面的设置,每次都需要启用两个cmd窗口,我们可以将mysql服务端制作成系统服务(开机自动启用)
    """查看当前计算机的运行进程数 """
    	services.msc
    
    """将musqld制作为系统服务"""
    	mysqld --install
    """将mysqld移除系统服务"""
    	mysqld --remove
    

    我这个是已经安装过了,
    在这里插入图片描述
    安装完成后,查看任务管理器,点击服务选项,找到Mysql
    在这里插入图片描述
    系统服务好之后,想要连接服务端,首先不需要切路径,也不需要在cmd里面手动输入mysqld去启动了,只需要输入mysql -uroot -p,直接回车

    设置密码

    """密码设置"""
    mysqladmin -uroot -p原密码 password 新密码
    直接在终端输入就可以
    
    """测试"""
    mysqladmin -uroot -p123 password 132456
    
    

    忘记密码重置密码

    """可以将mysql获取用户名和密码校验功能看成是一个装饰器,
    装饰在了客户端请求访问的功能上"""
    
    #1.关闭当前mysql服务端
    命令行方式启动(让mysql跳过用户名密码验证功能)
    mysqld --skip-grant-tables
    #2.直接以无密码的方式连接
    重新打开一个cmd终端,输入
    mysql -uroot -p 直接回车
    #3.修改当前用户的密码
    修改的是安装目录  """D:\mysql\mysql-5.6.48-winx64\data\mysql\user.frm"""
    
    update mysql.user set password=password(123456) where user='root' and host='localhost';
    """
    真正存储用户表的密码字段  存储的是密文
    只有用户知道明文是什么,其他人不知道,这样更加安全
    密码比对也只能比对密文
    """
    #4. 立刻将修改数据刷到硬盘
    flush privileges;
    #5.关闭当前服务端,然后以正常校验授权表的形式启动
    mysql -uroot -p  回车,输入新密码
    
    • 上面重置密码第三步修改当前用户的密码修改的就是user.frm表
      在这里插入图片描述

    统一编码

    进入myqsl,输入\s查看数据库的字符编码
    image.png

    mysql默认配置文件

    在这里插入图片描述

    my-default.ini
    ini结尾的一般都是配置文件
    
    """程序启动会先加载配置文件中的配置后才真正的启动"""
    [mysqld] #一旦服务器启动立刻加载下面的配置
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
    [client]#其他客户端
    

    my-default.ini不能更改,需要自己创建一个my.ini的配置文件
    验证配置是否自动加载

    """测试模拟""
    [mysql]
    print('hello world')
    #修改配置文件后一定要重启服务才生效
    

    在这里插入图片描述

    统一编码的配置

    新创建的my.ini配置文件中重新写入

    [mysqld]
    character-set-server=utf8
    collation-server=utf8_general_ci
    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8
    """#修改配置文件后一定要重启服务才生效"""
    

    不想输入账户和密码,可以将管理员的用户名和密码添加到配置文件中

    #这样不用每次都输入账号密码了
    [mysqld]
    character-set-server=utf8
    collation-server=utf8_general_ci
    [client]
    default-character-set=utf8
    [mysql]
    user="root"
    password="123456"
    default-character-set=utf8
    

    在这里插入图片描述

    配置好后\s再次查看字符编码

    image.png

    • 配置完成后,cmd直接输入mysql,不再需要输入账户密码,就可以直接以管理员身份运行。方便快捷!!!

    数据库安装与配置Linux下

    • MySQL服务端(在linux系统)

      • 下载安装
        • sudo apt-get install mysql-server
      • 启动服务
        • sudo service mysql start
      • 查看服务是否启动
        • ps ajxlgrep mysql
        • sudo service mysql status
      • 停止服务
        • sudo service mysql stop
      • 重启服务
        • sudo service mysql restart
    • 配置

      • 配置问加你目录为 /etc/mysql/mysql.conf.d
      • 进入目录,打开mysqld.cnf,可以看到配置项
      • bind-address 表示服务器绑定的ip,默认为127.0.0.1
      • port表示端口,默认是3306
      • datadir表示数据库目录,默认为/var/lib/mysql
      • general/ogfile表示普通日志,默认为/var/log/mysql/mysql.log
      • log_error表示错误日志,默认为/var/log/mysql/error.log
      #查询user所对应的host服务
      select user,host from user ;
      #修改密码
      update user set authentication_string="13467205064" where user="root";
      #配置允许远程访问
      update user set host="%" where user="root" and host="localhost" LIMIT 1;
      
      
      flush privileges;#修改完密码后要重新加载以下
      
    • MySQL 客户端

      • 客户端为开发人员使用,常用的命令行客户端,navicat图形界面客户端等
      • 下载安装命令行客户端
        • sudo apt install mysql-client
      • 连接数据库
        • mysql -u root -p123456
          • -u后面跟的是数据库的账户名,-p密码, -p与密码之间不能有空格
          • 如果-p后面不加密码,那么回车后要求输入密码