MySQL数据库详细安装(Windows、Liunx)

MySQL 数据库详细安装(Windows、Liunx)

MySQL 介绍

MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

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

MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 MySQL 作为网站数据库。

Windows 安装 MySQL

下载 MySQL

官网安装

下载 MySQL,地址:https://dev.mysql.com/downloads/installer/

mysql 官网上提供了两种安装方式,第一种是在线版联网安装,第二种是本地安装。二者的区别是前者是联网安装,当安装时必须能访问互联网,后者是离线安装使用的,一般建议下载离线安装使用的版本。
在这里插入图片描述

以上两种安装方法均为图形界面向导方式安装,优点是可以比较清晰地看到整个 mysql 安装过程,并且可以选择性的安装所需的功能。缺点是安装过程中会出现一些环境依赖问题,导致安装失败。

本地压缩包安装

压缩包下载地址:https://dev.mysql.com/downloads/mysql/5.5.html#downloads在这里插入图片描述

解压下载好的压缩包文件:

在这里插入图片描述

MySQL 本地配置

  1. 打开已下载的 MySQL 文件,内容如下:

在这里插入图片描述

  1. 配置电脑的系统环境变量,找到 Path 变量;

    在这里插入图片描述

  2. 添加 MySQL 安装的 bin 文件目录的路径,如下图所示:

在这里插入图片描述

  1. 环境配置完成后,打开文件夹,创建一个新的文件后缀名为 .ini 的 my.ini 空白文件。

在这里插入图片描述

  1. 编辑创建好的 my.ini 文件,用于初始化 MySQL 数据库,tips:路径必须为 \ 的形式。

    [mysql]
    # 设置 mysql 客户端默认字符集
    default-character-set=utf8
    [mysqld]
    # 设置 3306 端口
    port = 3306
    # 设置 mysql 的安装目录
    basedir = D:\\tools\\mysql-8.0.30-winx64
    # 设置 mysql 数据库的数据的存放目录
    datadir = D:\\tools\\mysql-8.0.30-winx64\\data
    # 允许最大连接数
    max_connections=20
    # 服务端使用的字符集默认为 8 比特编码的 latin1 字符集
    character-set-server=utf8
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
    # 创建模式
    sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    

    注意 MySQL 的安装目录路径是否填写正确

    在这里插入图片描述

  2. 快捷键Windows + R 输入 cmd,进入本地 Windows 命令行窗口,然后通过命令行 进入 MySQL 下的 bin 文件夹。

    在这里插入图片描述

    或者直接在该文件下路径上输入 cmd ,然后回车确认即可。

在这里插入图片描述

在这里插入图片描述

  1. 输入mysqld --initialize 进行初始化 MySQL。

在这里插入图片描述

输入上述命令,按回车,会发现文件夹下会多出一个新的文件夹 data。

在这里插入图片描述

等待初始化完成会生成一个后缀名为.err 的文件,里面存放的是初始化登录 MySQL 的密码;

在这里插入图片描述

打开.err 文件:找到下图中所示的 root 账户和 root 密码;

在这里插入图片描述

  1. 注意:如果先前在电脑中装过 MySQL,请在 cmd 命令窗口输入sc delete mysql 删除之前的 MySQL 服务。第一次安装请忽略 , 如下图所示:

    在这里插入图片描述

  2. 打开 cmd 窗口,输入mysqld --install 命令;

    我这边已经装过了,所以显示为已存在; 第一次安装成功会提示:Service successfully installed

    在这里插入图片描述

    注意:如果出现 Install/Remove of the Service Denied! 错误的话。

    解决办法一:

    使用管理员身份运行 cmd,如下图:

在这里插入图片描述

接上,通过命令方式开启 MySQL 服务;

  • 开启服务: net start mysql
  • 关闭服务:net stop mysql

提示:

  • Redhat Linux 支持 service command,
    启动:# service mysqld start
    停止:# service mysqld stop
    重启:# service mysqld restart
  • Windows 下不能直接重启 (restart),只能先停止,再启动。

在这里插入图片描述

解决办法二:

两种打开服务的方式:

  1. 手动启动 MySQL 服务,本机电脑打开管理面板;

在这里插入图片描述

  1. Windows 键 + R 键 打开本地命令行窗口,输入services.msc快速打开电脑 “服务”,检查 MySQL 服务,如下图所示:

在这里插入图片描述

找到 MySQL 服务,如未开启,可手动开启服务;

在这里插入图片描述

设置 MySQL 服务启动类型为:“ 自动 ”,启动服务。

在这里插入图片描述

  1. 使用 root 账户和刚刚文件里查看的密码进行登录;

    命令:mysql -uroot -p7lb7hWyuj!se

    在这里插入图片描述

    出现以下界面说明 MySQL 登录成功;

    注意:这里我的密码已经修改过了;

    在这里插入图片描述

  2. 修改 MySQL root 账户密码:使用命令:alter user 'root'@'localhost' identified with mysql_native_password by ' **这里填写新密码** ';

    注意:这里是在 MySQL 中进行操作的;

    在这里插入图片描述

连接第三方工具

为了更便捷地使用数据库,可以选择连接 MySQL 数据库客户端 navicat 工具:

在这里插入图片描述

测试连接:

在这里插入图片描述

Linux 安装 MySQL

1、卸载 MySQL

  1. 查看是否已经安装 MySQL
rpm -qa|grep -i mysql

这里我的服务已经装过了,如下图所示:

在这里插入图片描述

  1. 停止 MySQL 服务

    1、使用 service 启动:service mysqld start

    2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start

  2. 删除 MySQL

    rpm -e 文件名
    

    在这里插入图片描述

    可能会遇到的问题:

    • error: Failed dependencies

      通过 YUM 查询和卸载:

      查询:yum list installed mysql*    
      卸载:yum remove mysql*
      
  3. 删除 mysql 的目录文件和库

shell> find / -name mysql  #查找所有 mysql 相关的文件
/usr/share/mysql
/etc/selinux/targeted/active/modules/100/mysql
/var/lib/mysql
/var/lib/mysql/mysql

shell> rm -rf /usr/share/mysql #删除命令
shell> rm -rf /etc/my.cnf #卸载后 /etc/my.cnf 不会删除,需要进行手工删除

  1. 再次查看是否存有 mysql
rpm -qa|grep -i mysql

无结果,说明已经卸载彻底、接下来直接安装 mysql 即可

2、安装 MySQL

  1. 本次安装 MySQL 完整版本为:5.7.10, 如需安装其他版本,可以去官网:https://repo.mysql.com/ 选择其他的 RPM 替换下面命令中的链接地址即可。
wget -i -c http://dev.mysql.com//mysql57-community-release-el7-10.noarch.rpm

在这里插入图片描述

如果安装有提示:Cannot write to ‘mysql57-community-release-el7-10.noarch.rpm’ (No such file or directory),那就是权限不够

可以输入 su root 来解决,然后重新下载。

  1. 安装 MySQL 包

    yum -y install mysql57-community-release-el7-10.noarch.rpm
    

    在这里插入图片描述

  2. 安装 MySQL

    yum -y install mysql-community-server
    

    在这里插入图片描述

    如果执行命令过程中提示:Unable to find a match: mysql-community-server

    则可以通过命令解决

    yum module disable mysql
    
  3. 启动 MySQL 服务

    systemctl start mysqld.service
    

    如果没有报错,进入下一步,

    如果执行报错,多半是没有权限,执行下面语句赋予权限,然后重试

    chown mysql:mysql -R /var/lib/mysql
    
  4. 查看 MySQL 运行状态

    service mysqld status
    

    看见这个绿色就表示启动成功了

    在这里插入图片描述

  5. 查看初始密码(红色部分为初始密码 )

    grep 'password' /var/log/mysqld.log
    

    在这里插入图片描述

    如果能正常查看到,则 OK;如果查看不到,则表示没有密码。

  6. 进入数据库

    mysql -u root -p
    

    输入命令后,点击回车,会让你输入密码,然后输入刚刚的初始密码(输密码的时候不可见),当然支持粘贴,你可以复制初始密码后,然后粘贴。如果没有密码,直接回车即可。

    在这里插入图片描述

    注: 如果显示数据库无法访问

    修改 MySql 配置文件 my.cnf,新增 skip-grant-tables

    find / -name my.cnf
    

    在这里插入图片描述

    修改文件之前记得先关闭 mysql 服务

    service mysqld stop
    

    通过 vi 指令进入文件

    vi /etc/my.cnf
    

    新增 skip-grant-tables , 添加 skip-grant-tables,这样 mysql 可以免密登录。

    在这里插入图片描述

    重启服务

    service mysqld start
    

    再次连接 MySql,重置密码

    mysql -u root -p
    

    任意密码就可以进入了

    在这里插入图片描述

    通过 show databases;

     show databases;
    

    在这里插入图片描述

    切换到 MySQL 数据库

    在这里插入图片描述

    重置密码(为 123456)

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

    修改配置文件 my.cnf,删除 skip-grant-tables,重启,再登录

    删除 skip-grant-tables

    在这里插入图片描述

    重启服务

    service mysqld start
    

    根据指令进入 MySQL 数据库

    mysql -uroot -p123456
    

    在这里插入图片描述

    再次使用新密码登录即可至此!Linux 下 Mysql 安装到使用讲解完成!

3、Navicat 无法连接

  1. 服务器的防火墙 mysql 端口 3306 是否开放

    查看防火墙是否已开放3306端口
    firewall-cmd --query-port=3306/tcp
    

    设置3306端口为永久开放
    firewall-cmd --add-port=3306/tcp --permanent

    查看 firewalld 状态,发现当前是 dead 状态,即防火墙未开启
    systemctl status firewalld

    关闭防火墙
    systemctl stop firewalld

    重启防火墙(设置了新的端口记得先关闭,再重启)
    systemctl status firewalld

  2. 如果是阿里云服务器,记得查看云安全组规则是否开放了 3306 端口,如果没有,记得加上

    在这里插入图片描述

  3. 如果链接提示如下,则是没有允许远程登录

1130-host ... is not allowed to connect to this MySql server

解决办法:

登录服务器 mysql 数据库

--1. 进入 mysql 数据库:
use mysql;

--2. 查看 mysql 数据库中所有的表:
show tables;

--3. 查看 user 表中的数据:
select Host, User,authentication_string from user;

--4. 修改 user 表中的 Host:
update user set Host='%' where User='root';

--5. 最后刷新一下:
flush privileges;

重新在 Navicat 中测试一下 ,连接成功。

在这里插入图片描述


随笔:“真的想做成某件事,如果可以的话,就从现在开始,不是明天,不是下个月,就此刻,然后坚持。即使今天跟明天之间,也隔着很多意外,所以不要等。”