• linuxcentos7虚拟机安装mysql5.7详细教程(tar包安装)


    写在前面:目前网络上大多数的安装教程采用的是rpm的方式,此种方式是需要虚拟机联网完成的,我介绍的是使用tar包的方式安装mysql5.7的方法。

    ❗️首先要注意的一点是,在输入命令的时候你一定要注意你是在哪个文件夹下输入的命令,因为不同的文件夹下有些命令可能执行是完全错误的。

    ❗️还需要注意的一点,我的mysql文件叫做mysql57,我的mysql57是安装在/usr/local/文件夹下的,你当然可以按照自己的喜好去选择位置,选择名字,但是最好可以和我统一一下,可以避免很多不必要的麻烦。

    准备工作

    要安装,必不可少的肯定是安装包了,你当然可以去mysql官网下载tar包,但是我也贴心的准备了百度云盘资源:

    链接:https://pan.baidu.com/s/1nbtmEI-27ruuJgzZF9OZhQ?pwd=aqar
    提取码:aqar

    下载完成后还有一步,就是你如果是本地下载的话是需要上传到linux虚拟机的,有些虚拟机是可以直接通过拖拽的方式将文件传输进去。但有些是不可以的。我是安装了lrzsz工具完成的上传。

    具体操作可以查看这篇文章:xshell上传本地文件到linux虚拟机,下载虚拟机文件到本地

    最好上传到 /usr/local/ 这里面,因为我的程序就是在这个目录下安装,不统一的话可能又会导致很多问题。

    😄 完事具备,我们就开始安装之路吧。

    开始安装

    1. 卸载系统自带的Mariadb

    [root@ ~]# rpm -qa|grep mariadb
    mariadb-libs-5.5.44-2.el7.centos.x86_64  #显示这个就意味着有mariadb你是需要卸载的。
    [root@ ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
    
    
    • 1
    • 2
    • 3
    • 4

    2.卸载etc目录下的my.cnf文件

    这个文件就是mysql的配置文件,就好比Windows下的my.ini文件。

    [root@ ~]# rm /etc/my.cnf   
    rm: cannot remove ?etc/my.cnf? No such file or directory  #这个提示就是没有此文件,我们就可以进行接下来的操作了
    
    
    • 1
    • 2
    • 3

    3.检查mysql是否存在

    [root@ ~]# rpm -qa | grep mysql   #没有内容就代表着没有安装
    
    • 1

    如果你已经安装了mysql,那就需要卸载后再考虑安装。

    4. 检查mysql组和用户是否存在,如无创建

    [root@ ~]# cat /etc/group | grep mysql
    [root@ ~]# cat /etc/passwd | grep mysql
    
    • 1
    • 2

    如果两条命令输入后没有反馈就代表不存在,就需要新建

    5.创建mysql用户组

    [root@ ~]# groupadd mysql
    
    • 1

    6.创建mysql用户,并加入mysql用户组

    [root@ ~]# useradd -g mysql mysql
    
    • 1

    7.设置mysql用户的密码

    要注意这里设置的是mysql这个用户的密码,和一会数据库的密码不是一回事。

    [root@ ~]# passwd mysql
    
    • 1

    8.解压安装

    ⚠️这里开始就算比较重要且容易出错误的地方了。

    上面不是把 mysql-5.7.46-2.7-x86_64.tar.gz 这个压缩包放到 了/usr/local/的里面了,(注意是在local里面,不是local同一级)

    我们就在local文件夹下这里进行解压安装。

    root@ local]# tar -zxvf mysql-5.7.46-2.7-x86_64.tar.gz   #这一步就是解压安装文件
    [root@ local]# mv mysql-install/ mysql57  # 这步是把解压后的文件进行一个改名的操作
    
    #更改所属的组和用户
    [root@ local]# chown -R mysql mysql57/
    [root@ local]# chgrp -R mysql mysql57/
    [root@ local]# cd mysql57/
    
    [root@ mysql57]# mkdir data  #创建一个data文件夹存放数据
    
    [root@ mysql57]# chown -R mysql:mysql data
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    9.在etc下新建配置文件my.cnf

    我们在第二步的时候不是删除了配置文件,此时这里我们需要重新配置一个。

    touch my.cnf
    
    • 1

    先新建my.cnf这个文件,然后vi进去修改内容,具体内容如下:

    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8
    [mysqld]
    skip-name-resolve
    #设置3306端口
    port = 3306
    # 设置mysql的安装目录
    basedir=/usr/local/mysql57
    # 设置mysql数据库的数据的存放目录
    datadir=/usr/local/mysql57/data
    # 允许最大连接数
    max_connections=200
    # 服务端使用的字符集默认为8比特编码的latin1字符集
    character-set-server=utf8
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
    lower_case_table_names=1
    max_allowed_packet=16M
    #配置免密登录
    skip-grant-tables
    
    [mysqld_safe]
    # 配置日志文件和进程文件
    error-log=/usr/local/error.log
    pid-file=/usr/local/mysql.pid
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    这个配置文件,很多都是与mysql的安装路径有关的,所以你如果和我的不统一,就需要做相应的修改。

    10.安装与初始化

    ❗️要注意这些命令是在mysql57这个目录下执行的,这点尤为重要

    [root@ mysql57]# bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql57/ --datadir=/usr/local/mysql57/data/
    [root@ mysql57]# cp ./support-files/mysql.server /etc/init.d/mysqld
    [root@ mysql57]# chown 777 /etc/my.cnf 
    [root@ mysql57]# chmod +x /etc/init.d/mysqld
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    11.重启

    [root@ mysql57]# /etc/init.d/mysqld restart
    Shutting down MySQL.. SUCCESS! 
    Starting MySQL. SUCCESS! 
    
    
    • 1
    • 2
    • 3
    • 4

    12.设置开机启动

    [root@ mysql57]# chkconfig --level 35 mysqld on
    [root@ mysql57]# chkconfig --list mysqld
    [root@ mysql57]# chmod +x /etc/rc.d/init.d/mysqld
    [root@ mysql57]# chkconfig --add mysqld
    [root@ mysql57]# chkconfig --list mysqld
    [root@ mysql57]# service mysqld status
    SUCCESS! MySQL running (4475)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    13.设置环境变量

    在/etc/profile这个文件中,要加一句话

    export PATH=$PATH:/var/mysql57/bin
    
    • 1
    [root@ mysql57]# source /etc/profile   #重启
    
    • 1

    14.获得初始密码

    这个密码就是数据库的密码,其实我们在my.cnf里是设置了一个免密登录的,所以这个显得并不是特别必要要知道的。

    [root@ ~]# cat /root/.mysql_secret 
    # Password set for user 'root@localhost' at 2022-08-19 16:47:12 
    7qa2CT1sYO_1
    
    • 1
    • 2
    • 3

    15. 修改密码

    这里我当时一直会报一个mysql命令找不到的错误,后来发现是没有在/usr/local/mysql57/bin下面执行mysql命令,所以导致这一问题解决不了。(后面配置软链接就可以在任何目录下都可以执行mysql命令了)

    [root@hdp265dnsnfs bin]# mysql -uroot -p
    mysql> set PASSWORD = PASSWORD('123456');
    Query OK, 0 rows affected, 1 warning (0.00 sec)
    
    mysql> flush privileges;
    Query OK, 0 rows affected (0.01 sec)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    16. 添加远程访问权限

    这接下来的操作就是为了本地Navicat能够远程连接Linux虚拟机上的准备。

    在本机先使用root用户登录mysql: mysql -u root -p"youpassword" 进行授权操作:
    
    mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
    
    重载授权表:
    
    FLUSH PRIVILEGES;
    
    退出mysql数据库:
    
    exit
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    上面那句命令里的youpassword就是一会Navicatroot用户的密码,你最好设置成和你数据库一样的密码,不然密码太多可就混乱了。
    xn_2022-08-22_15-32-32

    这命令我们可以看出来,root这个用户,是允许任何用户(%)登录的。

    17.重启生效

    /bin/systemctl restart  mysql.service
    
    [root@ bin]# /etc/init.d/mysqld restart 
    Shutting down MySQL.. SUCCESS! 
    Starting MySQL. SUCCESS! 
    
    • 1
    • 2
    • 3
    • 4
    • 5

    18.可以在任何目录下登录mysql

    ln -s /usr/local/mysql57/bin/mysql   /usr/bin/mysql
    
    • 1

    19. 开放外部访问数据库

    1. 开放防火墙端口
    firewall -cmd --list-all
    
    • 1
    1. 开放3306端口
    firewall-cmd --permanent --add-port=3306/tcp
    
    • 1
    1. 查看3306端口是否开放
    firewall-cmd --query-port=3306/tcp
    
    • 1
    1. 次查看现在防火墙
    firewall-cmd --list-all
    
    • 1

    20. Navicat连接

    xn_2022-08-22_17-01-38

    xn_2022-08-22_17-02-37

    ✔️到这里mysql的安装过程就结束了。
    如果你还在安装过程遇到了其他问题可以评论留言。

  • 相关阅读:
    关于博客园绝境求商的一点点感想!
    知识图谱实战导论:从什么是KG到LLM与KG/DB的结合实战
    DST-Character Mod:Sesshoumaru-Introduction
    Vue学习笔记四
    【CSP考点回顾】前缀和数组
    2022/11/22 [easyx]关于字符和一些背景
    Linux驱动开发 驱动程序的具体编写及出口入口函数解析,printk打印内核信息
    【深度学习基础知识(一):卷积神经网络CNN基础知识】
    阿里最新秋招面经,腾讯/美团/字节 Java中高级面试题
    基于springboot实现流浪动物救助网站系统项目【项目源码+论文说明】计算机毕业设计
  • 原文地址:https://blog.csdn.net/wxnshuai/article/details/126469925