MySQL安装与基本配置

@

数据库的安装与配置windows

选择 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后面不加密码,那么回车后要求输入密码

Tags: