当前位置:   article > 正文

Linux上安装Mysql(GLIBC详解)_mysql glibc

mysql glibc

一、MySQL的三种安装方式及区别:

【二进制软件包安装】

  • yum安装或rpm安装
    • 命名:mysql-community-server-5.7.28-1.el7.x86_64.rpm,需要在特定Linux版本下安装
  • glibc版本安装
    • 命名:mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz,依赖glibc库,可以安装在通用的Linux系统下

源码包编译安装

命名:mysql-5.7.27.tar.gz,通用的Linux下都可以编译安装

注:在企业中,数据库的安装很少使用rpm方式,大部分都是基于源码安装以及glibc安装!


二、MySQL的GLIBC版本安装及配置

官方给我们建议了命令的执行及顺序,下面我将会整理出完整步骤

【1. 获取MySQL的GLIBC版本】

在MySQL官方页面进行下载:MySQL :: Download MySQL Community Server

 【2. 安装MySQL依赖libaio库】

为什么安装依赖?我也不知道......官方建议我们装就装

  1. [root@HspEdu01 ~]# yum search libaio # 查询是否已有
  2. [root@HspEdu01 ~]# yum install libaio # 没有就install

【3. 上传软件包并解压】

上传方式有多种,可以先下载到本地再通过Xftp等上传至Linux服务器,也可以使用 "wget 下载链接" 线上获取,这里我选择后者:

  1. [root@HspEdu01 ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz
  2. [root@HspEdu01 ~]# ll

会处于一段时间的下载状态,达到100%即下载成功 ,ll 查看发现已存在mysql-.......tar,gz

 解压:

  1. [root@HspEdu01 ~]# tar -zxf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz
  2. [root@HspEdu01 ~]# ll

 解压完成后,cd mysql-5.7.37-linux-glibc2.12-x86_64,目录结构应如下:

 【4. 将解压过包移动至指定目录】

官方建议我们将mysql解压后的包mysql-5.7.37-linux-glibc2.12-x86_64放在 /usr/local/ 文件夹下,然后更名为mysql

  1. # 移动至 /usr/local/ 目录下,同时更名为mysql
  2. [root@HspEdu01 ~]# mv mysql-5.7.37-linux-glibc2.12-x86_64 /usr/local/mysql
  3. [root@HspEdu01 ~]# ll /usr/local/mysql

【5. 创建一个数据库专用账号mysql(其所属组也为mysql)】

  1. [root@HspEdu01 ~]# useradd -r -s /sbin/nologin mysql
  2. [root@HspEdu01 ~]# id mysql

【6. 清除系统中的原有mariadb配置文件(/etc/my.cnf)】

[root@HspEdu01 ~]# rm -rf /etc/my.cnf

【7. 切换到mysql工作目录(/usr/local/mysql),创建一个mysql-files,并修改其权限】

  1. [root@HspEdu01 ~]# cd /usr/local/mysql
  2. [root@HspEdu01 mysql]# mkdir mysql-files
  3. [root@HspEdu01 mysql]# chown mysql:mysql mysql-files
  4. [root@HspEdu01 mysql]# chmod 750 mysql-files

 说明:mysql-files 目录为secure_file_priv系统变量提供一个位置,该位置将导入和导出操作限制到特定目录,即数据导入导出的路径

【8. 初始化数据库】

[root@HspEdu01 mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql

--initialize                初始化(真正地开始干活)
--user=mysql          以mysql用户的身份初始化数据库,产生的文件都是mysql用户作为拥有者
--basedir=xxx         mysql其安装目录(非常重要)

可以实现数据库的初始化,而且会产生一个随机密码,将其密码保存下来,以备后期使用

 经验之谈:想查看mysql软件有没有初始化成功,主要看mysql目录下有没有产生data文件夹,且data文件夹中至少要有一个mysql的文件夹

【9. 设置安全加密连接(SSL)】

[root@HspEdu01 mysql]# bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data

数据传输会采用加密形式,适合敏感数据。--datadir:8步骤初始化mysql后生成的data的路径

【10. 配置/etc/init.d/】

启动前,要把 support-files/mysql.server 复制到 /etc/init.d/ 下,并命名为mysql,启动时便可使用名mysql直接启动

[root@HspEdu01 mysql]# cp support-files/mysql.server /etc/init.d/mysql

注:默认情况下,GLIBC版本的数据库要求安装到 /usr/local/mysql 目录下, 其 mysql.server 脚本中对应的目录也是 /usr/local/mysql ,如果数据库安装的目录不是 /usr/local/mysql ,则会导致mysql无法启动。我们可以更改其mysql.server中basedir(值改为mysql程序的安装路径)和datadir(值改为mysql程序中data文件夹的路径)两个变量来解决此问题

【11. 启动MySQL数据库】

不能使用systemctl(没有产生mysql.service包),只能使用service(service管理的服务都在/etc/init.d/目录下)

[root@HspEdu01 mysql]# service mysql start

 

特别说明:当MySQL启动成功后,其日志会自动写入到data数据目录中的主机名称.err文件中,这个文件一定要多看,涉及MySQL无法启动、启动报错,其详细的原因99%在.err文件中可以找到问题所在。 

【12. 更改数据库管理员密码】

将密码改为'123',在Enter password:后输入之前保存的临时代码

  1. 方法一:
  2. [root@HspEdu01 mysql]# bin/mysqladmin -uroot password '123' -p
  3. Enter password:
  4. 方法二:
  5. mysql> set password='123'
  6. mysql> flush privileges

【13. 配置环境变量(mysql的bin目录)】

  1. [root@HspEdu01 ~]# echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile
  2. [root@HspEdu01 ~]# source /etc/profile

配置完之后,在任意位置都可以调用mysql客户端命令,而不用到mysql的bin目录下

 【14. 手工定义MySQL的配置文件(重要)】

  1. [root@HspEdu01 ~]# vim /usr/local/mysql/my.cnf
  2. [mysqld]
  3. basedir=/usr/local/mysql
  4. datadir=/usr/local/mysql/data
  5. socket=/tmp/mysql.sock
  6. [root@HspEdu01 ~]# service mysql restart

[mysqld]            代表针对服务器端进行配置
basedir              代表数据库的安装目录
datadir               代表数据目录,以后专门用于存放数据文件的(核心目录)
socket                代表套接字文件,专门为客户端与服务器端连接提供一个桥梁

重新启动后,/tmp/mysql.sock 目录下会有这样套接字文件:

 【15. 安全配置(对于生产环境比较重要)】

[root@HspEdu01 ~]# mysql_secure_installation

一路Y,搞定!

其主要就是是否密码校检器(测试环境最好别装,简单密码不让用)、是否设置root密码、是否允许root远程连接、是否移除测试数据库等等一系列功能。

如果装了密码校检器,想要关闭:

  1. [root@HspEdu01 ~]# vim /usr/local/mysql/my.cnf
  2. [mysqld]
  3. ........
  4. validate_password=OFF
  5. [root@HspEdu01 ~]# service mysql restart

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号