暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

CentOS7安装MySQL5.7:使用二进制文件方式

野鸽码字 2021-07-23
2566
这篇文章主要通过使用二进制文件的方式在 CentOS 7 系统上安装 MySQL 5.7,和 Yum 存储库安装或者 RPM 包安装比来,比较复杂,但是还是建议熟悉下这种安装方式,更能体会到最原始的安装过程,掌握了这种安装方式,对理解 MySQL 的基础知识很有帮助,下面开始。
一、安装环境
安装环境如下:
服务器:CentOS 7
安装版本:MySQL 5.7.28
二、安装过程和细节
1、在官网下载二进制安装文件
官网下载地址如下,这个地址里有各个版本的安装包,根据自己的版本选择,下载对应系统的安装包
https://downloads.mysql.com/archives/community
MySQL 官方
因为这里我们是在 CentOS 7 系统上安装,所以操作系统选择 Red Hat Enterprise Linux,系统版本选择 Linux 7,通过使用二进制安装文件,所以下载Compressed TAR Archive 即可,这里对应的压缩包名是 mysql-5.7.28-el7-x86_64.tar.gz

2、删除本地默认安装的 MySQL
MySQL 除了自己的发行版本外,还有其他的第三方分支版本,比如 MariaDB,一般 CentOS 系统服务器上会默认安装这个版本的数据库,如果存在,需要先删掉,先用下面命令查看
    rpm -qa | grep mariadb
    复制
    如果发现存在,用下面命令删除
      rpm -e --nodeps mariadb-XXX  -- 其中 XXX 表示不同版本
      复制
      3、安装前准备
      安全来看,新增一个 mysql 用户组和非登录用户,用来专门启动 MySQL 服务
        groupadd mysql
        useradd -r -g mysql -s bin/false mysql
        复制
        把刚才下载的二进制安装文件包上传到 usr/local 目录下,解压
          cd /usr/local
          tar -zxvf mysql-5.7.28-el7-x86_64.tar.gz
          复制
          然后创建一个软链接指向解压的安装目录 mysql-5.7.28-el7-x86_64,这一步主要是为了基础目录比较简洁,可以直接使用 usr/local/mysql,如果不想使用软链接,也可以直接改目录名,或者不改也行
            ln -s mysql-5.7.28-el7-x86_64 mysql

            mv mysql-5.7.28-el7-x86_64 mysql
            复制

            4、初始化 MySQL 数据库
            现在我们看下 MySQL 二进制安装文件里有什么,主要有下面这些文件,和我们安装相关的主要会用到 bin 和 support-files 里的一些文件

            目录

            用途

            bin

            存放 MySQL 客户端、服务器的可执行文件,比如 mysql、mysqld 等

            docs

            MySQL 相关手册

            include

            一些头文件

            lib

            相关的包库

            man

            Unix 相关手册

            share

            数据库安装的错误消息、字典和 SQL

            support-files

            其他支持文件

            这里为了后续方便执行 MySQL 命令,把 /usr/local/mysql/bin 目录加到系统环境变量中,在系统环境变量文件 /etc/profile 里添加下面内容 
              export PATH=$PATH:/usr/local/mysql/bin
              复制
              下面在基础目录下,新建 mysql-files 目录,主要是为了给 secure_file_priv 系统变量设置一个值,这个变量主要是为了安全使用 LOAD DATA、SELECT ... INTO OUTFILE 等导入导出数据函数用的,当然这都是为了安全,不创建这个也是可以的
                cd /usr/local/mysql
                mkdir mysql-files
                chown mysql:mysql mysql-files
                chmod 750 mysql-files
                复制
                接下来就可以初始化数据库了,执行下面初始化命令,使用 mysql 用户进行初始化
                  mysqld --initialize --user=mysql
                  复制
                  正常的话,初始化数据库成功,会在当前目录下创建 data 目录,因为 /usr/local/mysql/data 目录就是默认的数据库目录,并且会打印出日志,记住生成的 root@localhost 的临时密码,后续登录需要用到

                  看看生成的数据库目录里的初始化数据库文件,看到这些应该就很熟悉了吧

                  如果需要安全连接,需要创建 SSL 和 RSA 相关证书和秘钥文件,比如下面这些文件,正常情况下初始化数据库后会自动生成,如上图就可以看出
                    ca.pem              
                    ca-key.pem          
                    server-cert.pem     
                    server-key.pem      
                    client-cert.pem     
                    client-key.pem      
                    private_key.pem     
                    public_key.pem      
                    复制
                    如果没有生成相关安全文件,可以用下面命令来生成
                      mysql_ssl_rsa_setup
                      复制
                      5、启动 MySQL
                      初始化数据库后,就可以启动数据库了,使用下面命令启动
                        mysqld_safe --user=mysql &
                        复制
                        启动成功后,会在数据库目录下生成错误日志文件和进程文件,默认错误日志文件命名为 host_name.err,默认进程文件命名为 host_name.pid,其中 host_name 是服务器机子名,这里默认数据库目录 datadir 为 usr/local/mysql/data,当前服务器机子名为 VM-0-6-centos。另外,生成默认的客户端连接 socket 文件为 /tmp/mysql.sock

                        默认文件

                        默认文件名

                        错误日志 err 文件

                        /datadir/host_name.err

                        进程 pid 文件

                        /datadir/host_name.pid

                        客户端 socket 文件

                        /tmp/mysql.sock

                        当然除了 mysqld_safe,我们还可以使用 mysql.server 启动脚本,在 support-files 目录下,可以把这个脚本加到系统自启动目录下,然后使用 chkconfig 激活即可
                          cp /usr/local/mysql/support-files/mysql.server /etc/init.d/
                          chmod +x /etc/init.d/mysql.server
                          chkconfig --add mysql.server
                          复制
                          然后,就可以使用下面命令方便启动或关闭数据库,当然也可以用系统支持的 systemd 来管理,这里就不说了
                            service mysql.server start
                            service mysql.server stop
                            复制
                            数据库正常启动后,可以用下面命令登录,用上面初始化数据库生成的临时密码,因为临时密码比较复杂,所以用单引号区分,也可以不加
                              mysql -uroot -p'temporary password'
                              复制
                              登录后,一般会要求先修改默认密码,用下面命令修改密码后,就可以正常使用了
                                ALTER USER 'root'@'localhost' IDENTIFIED BY '重置的密码';
                                复制

                                到这里,通过二进制安装文件方式安装 MySQL 5.7.28 已经完成。

                                6、总结所有安装命令
                                上面是具体的安装步骤,这里总结下所有涉及到的安装命令
                                  groupadd mysql
                                  useradd -r -g mysql -s /bin/false mysql
                                  cd /usr/local
                                  tar -zxvf mysql-5.7.28-el7-x86_64.tar.gz
                                  ln -s mysql-5.7.28-el7-x86_64 mysql
                                  export PATH=$PATH:/usr/local/mysql/bin  -- 这只是临时添加系统环境变量,要永久添加,需要加到 etc/profile 里
                                  cd /usr/local/mysql
                                  mkdir mysql-files
                                  chown mysql:mysql mysql-files
                                  chmod 750 mysql-files
                                  mysqld --initialize --user=mysql
                                  mysqld_safe --user=mysql &


                                  -- 使用 mysql.server 管理 MySQL 服务
                                  cp /usr/local/mysql/support-files/mysql.server /etc/init.d/
                                  chmod +x /etc/init.d/mysql.server
                                  chkconfig --add mysql.server
                                  service mysql.server start
                                  service mysql.server stop
                                  复制
                                  7、使用配置文件安装 MySQL
                                  上面的步骤已经可以安装启动 MySQL 数据库了,但是发现没有,一直没有提到最常见的配置文件 my.cnf,在安装和启动 MySQL 的时候,会读取默认的配置文件,我们最熟悉的就是 /etc/my.cnf,还有比如 /etc/mysql/my.cnf 等,如果没有这些配置文件,则会使用默认的配置,比如上面安装提到的


                                  • 默认的数据目录 datadir,/usr/local/mysql/data

                                  • 默认的 socket 文件,/tmp/mysql.sock


                                  所以,如果我们要使用自己的配置,可以创建 /etc/my.cnf 文件,然后添加下面几个最基本的配置,这些配置是使用 Yum 存储库安装或 RPM 安装的默认生成配置,使用这些方式安装过的应该很熟悉
                                    [client]
                                    socket=/var/lib/mysql/mysql.sock


                                    [mysqld]
                                    datadir=/var/lib/mysql
                                    socket=/var/lib/mysql/mysql.sock
                                    log-error=/var/log/mysqld.log
                                    pid-file=/var/run/mysqld/mysqld.pid
                                    复制
                                    datadir 目录初始化的时候会自动创建,但是 pid-file 所在目录不会自动创建,如果没有的话,需要先创建
                                      cd /var/run
                                      mkdir mysqld
                                      chown mysql:mysql mysqld
                                      复制
                                      编写好配置文件后,初始化数据库的时候就会根据对应配置生成对应数据库文件
                                      8、删除 MySQL
                                      安装完 MySQL 后,不需要了怎么删呢,根据上面的安装过程,只需要删除安装的相关文件即可
                                        -- 删除添加的 mysql.server 服务
                                        chkconfig --del mysql.server
                                        rm -f etc/init.d/mysql.server


                                        -- 删除 MySQL 安装相关文件
                                        rm -f /usr/local/mysql     -- 删除软链接
                                        rm -rf /usr/local/mysql-5.7.28-el7-x86_64
                                        复制
                                        三、使用二进制文件安装方式总结
                                        从上面的安装过程可以看到,使用二进制文件安装比较繁琐,所以平时我不推荐使用这种方式安装。其实,和通过 Yum 存储库或 RPM 安装包方式安装相比,这两种方式只是把一些需要手动去安装的过程都自动处理,比如下面这些过程
                                        • 新建 mysql 用户组和用户

                                        • 创建配置文件 my.cnf

                                        • 把相关可执行文件加到 /usr/bin、/usr/sbin 目录下

                                        • 添加系统服务管理文件 mysql.service,方便管理 MySQL


                                        所以,可以看到,使用Yum 存储库或 RPM 安装包方式会方便许多,平时安装推荐使用这两种方式。但是,二进制文件安装方式可以帮助你更好地理解 MySQL 整个安装的基础过程和注意细节。


                                        更多 MySQL 安装文章推荐

                                        CentOS7安装MySQL5.7:使用Yum存储库方式

                                        CentOS7安装MySQL5.7:使用RPM安装包方式(推荐)


                                        文章转载自野鸽码字,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                        评论