欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySQL的安装和基本管理

程序员文章站 2022-06-23 17:12:29
MySQL的安装和基本管理 一、MySQL介绍 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Manag ......

mysql的安装和基本管理

一、mysql介绍

mysql是一个关系型数据库管理系统,由瑞典mysql ab 公司开发,目前属于 oracle 旗下公司。mysql 最流行的关系型数据库管理系统,在 web 应用方面mysql是最好的 rdbms (relational database management system,关系数据库管理系统) 应用软件之一。

mysql是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

  • mysql是开源的,所以你不需要支付额外的费用。
  • mysql支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
  • mysql使用标准的sql数据语言形式。
  • mysql可以允许于多个系统上,并且支持多种语言。这些编程语言包括c、c++、python、java、perl、php、eiffel、ruby和tcl等。
  • mysql对php有很好的支持,php是目前最流行的web开发语言。
  • mysql支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4gb,64位系统支持最大的表文件为8tb。
  • mysql是可以定制的,采用了gpl协议,你可以修改源码来开发自己的mysql系统。

由于其社区版的性能卓越,搭配apache和php以及python 可组成良好的开发环境。

mysql是什么?
总结:mysql就是一个基于socket编写的c/s架构的软件


二、应用环境

与其他的大型数据库例如 oracle、db2、sql server等相比,mysql [1] 自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,mysql提供的功能已经绰绰有余,而且由于 mysql是开放源码开放源码)软件,因此可以大大降低总体拥有成本。

linux作为操作系统操作系统,apache 或nginx作为 web 服务器,mysql 作为数据库数据库,php/perl/python作为服务器端脚本脚本解释器解释器。由于这四个软件都是免费或开放源码开放源码软件(floss),因此使用这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统网站系统,被业界称为“lamp“或“lnmp”组合。


三、数据库管理软件分类

分两大类:
  关系型:如sqllite,db2,oracle,access,sql server,mysql,注意:sql语句通用
  非关系型:mongodb,redis,memcache

总结两句话:
    关系型数据库需要有表结构
    非关系型数据库是key-value存储的,没有表结构

所以,现在我们使用关系型数据库管理系统(rdbms)来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。

rdbms即关系数据库管理系统(relational database management system)的特点:

1.数据以表格的形式出现

2.每行为各种记录名称

3.每列为记录名称所对应的数据域

4.许多的行和列组成一张表单

5.若干的表单组成database


rdbms 术语:
数据库: 数据库是一些关联表的集合。.

数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。

列: 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。

行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。

冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。

主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。

外键:外键用于关联两个表。

复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。

索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。

参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。


四、mysql的下载和安装

想要使用mysql来存储并保存数据,则需要做几件事情:

  a. 安装mysql服务端
  b. 安装mysql客户端
  b. 【客户端】连接【服务端】
  c. 【客户端】发送命令给【服务端mysql】服务的接受命令并执行相应操作(增删改查等)

下载地址:


五、windows版本

windows版本的安装与下载

  1. 去官网下载

    MySQL的安装和基本管理


  2. 针对操作系统的不同下载不同的版本

    MySQL的安装和基本管理


  3. 如果想要让mysql安装在指定目录,那么就将解压后的文件夹移动到指定目录,如:e:\program files


  4. 添加环境变量

    (以下以win10为例, win7操作大同小异)

    桌面 --> 右键单击‘此电脑’ --> 在快捷菜单中单击‘属性’命令 --> 在打开的文件夹中单击‘高级系统设置’命令 --> 在打开的对话框中选择‘高级选项卡’ --> 单击‘环境变量’按钮 --> 找到‘系统变量’列表框 --> 双击其中的path --> 将安装的mysql文件夹下的bin路径(例如:e:\program files\mysql-5.7.23-winx64\bin)添加进去 --> 单击'确定'按钮

    MySQL的安装和基本管理


  5. 初始化

    在cmd中输入以下指令

    mysqld --initialize-insecure


  6. 启动mysql服务端

    在cmd中输入以下指令

    mysqld
    # 启动mysql服务端


  7. 启动mysql客户端并连接mysql服务端(新开一个cmd窗口)

    mysql -u root -p # 连接mysql服务器


上一步解决了一些问题,但不够彻底,因为在执行【mysqd】启动mysql服务器时,当前终端会被hang住,那么做一下设置即可解决此问题,即将mysql服务制作成windows服务

注意:--install前,必须用mysql启动命令的绝对路径
# 制作mysql的windows服务,在终端执行此命令:
"e:\program files\mysql-5.7.23-winx64\bin\mysqld" --install

# 移除mysql的windows服务,在终端执行此命令:
"e:\program files\mysql-5.7.23-winx64\bin\mysqld" --remove


注册成服务之后,以后再启动和关闭mysql服务时,仅需执行如下命令:
# 启动mysql服务
net start mysql

# 关闭mysql服务
net stop mysql


windows下设置登录密码

管理员为root(拥有最高权限,管理员账号),密码为空,以无密码的方式登录了管理员账号,是非常危险的一件事情,所以要为管理员账号设置密码

假定为管理员root账号密码为123

c:\users\mjj>mysqladmin -uroot -p password "123"  #设置初始密码 由于原密码为空,因此-p可以不用 mysql版本的不同,可能执行这句指令不起作用,请使用update mysql.user set authentication_string =password('') where user='root'; 

MySQL的安装和基本管理

ps:⚠️不用管它。翻译为:在命令行界面使用密码不安全,暴露在终端当中。

再次启动mysql客户端并连接服务端:

MySQL的安装和基本管理


如果想将原始密码123,设置新密码为456

c:\users\mjj>mysqladmin -uroot -p"123" password "456"  #修改mysql密码,因为已经有密码了,所以必须输入原密码才能设置新密码


密码忘记 ---- 破解密码

跳过授权方式,直接登录!!

  1. 以管理员身份打开cmd

    MySQL的安装和基本管理


  2. 停掉mysql服务端

    c:\windows\system32>net stop mysql
    # mysql 服务正在停止.
    # mysql 服务已成功停止。


  3. 执行如下命令跳过授权表

    #跳过授权表
    c:\windows\system32>mysqld --skip-grant-tables
    # 2018-06-09 17:12:38 0 [warning] insecure configuration for --secure-file-priv: current value # does not restrict location of generated files. consider setting it to a valid, non-empty path.
    # 2018-06-09 17:12:38 0 [note] mysqld (mysqld 5.6.40) starting as process 6052 ...4.


  4. 再次查看

    MySQL的安装和基本管理


  5. 现在可以任意的更改密码,执行如下命令

     update mysql.user set authentication_string =password('') where user='root'; 


  6. 刷新权限,执行命令

    flush privileges;

    MySQL的安装和基本管理


  7. 退出mysql。执行命令:exit,


  8. 让用户去加载权限,以管理员身份进入cmd,查看当前mysql进程

    tasklist |findstr mysql  #查看当前mysql的进程

    MySQL的安装和基本管理


  9. 杀死当前的进程,执行如下命令

    taskkill /f /pid 6052  # 杀死当前的进程pid

    MySQL的安装和基本管理


  10. 再次执行如下操作,还原

    MySQL的安装和基本管理


windows下统一字符编码

进入mysql客户端,执行\s

MySQL的安装和基本管理

ps:因为我已经设置过了,所以显示的都是utf-8,不过打个码你们应该看不见(滑稽)



为了统一字符编码,请执行如下操作:

(1)my.ini文件是mysql的配置文件

在mysql安装路径下创建my.ini文件(例如:e:\program files\mysql-5.7.23-winx64 在这个位置下创建my.ini文件)

(2)打开my.ini文件将如下代码拷贝保存

[mysqld]
# 设置mysql的安装目录 **后面的路径一定是安装sql的目录(自己电脑的)**
basedir=c:\mysql-5.7.22-winx64\mysql-5.7.22-winx64
# 设置mysql数据库的数据的存放目录,必须是data
datadir=c:\mysql-5.7.22-winx64\mysql-5.7.22-winx64\data
# 如果想分组,则必须要设置全局的sql的模式为only_full_group_by
sql_mode=no_engine_substitution,strict_trans_tables,only_full_group_by

# mysql端口
port=3306
# 字符集
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

(3)以管理员身份重启服务,执行如下命令

c:\windows\system32>net stop mysql
# mysql 服务正在停止..
# mysql 服务已成功停止。

c:\windows\system32>net start mysql
# mysql 服务正在启动 .
# mysql 服务已经启动成功。

(4)在cmd中输入mysql进入mysql环境,执行\s,显示如下信息,表示成功

MySQL的安装和基本管理


六、linux版本

  1. 安装

    yum install mysql-server  
  2. 服务端启动

    mysql.server start
  3. 客户端连接

    连接:
        mysql -h host -u user -p
    
        常见错误:
            error 2002 (hy000): can't connect to local mysql server through socket '/tmp/mysql.sock' (2), it means that the mysql server daemon (unix) or service (windows) is not running.
    退出:
        quit 或者 control+d