RPM包安装MYSQL

基于RPM的linux发布版安装mysql的推荐方法是使用oracle提供的RPM软件包。可以从两个来源获取他们。

  • 从MySQL软件库中
  1. MySQL Yum库
  2.  MySQL SLES库

注意:其他供应商也提供mysql的RPM发布版。它们在功能、能力和设置等方面可能与oracle创建的RPM不同,本文中的安装说明不一定适用于它们。

MYSQL RPM包

        Mysql免费版RPM 包

包名称

摘要

mysql-community-server

数据库服务器及相关工具

mysql-community-client

MySQL客户端应用和工具

mysql-community-common

服务器和客户端库的普通文件

mysql-community-devel

开发MySQL数据库客户端应用程序的头文件和库

mysql-community-libs

MySQL数据库客户端应用程序的共享库

mysql-community-libs-compat

用于以前安装的MySQL的共享兼容性库

mysql-community-embedded

MySQL嵌入式库

mysql-community-embedded-devel

嵌入式开发MySQL数据库客户端应用程序的头文件和库

mysql-community-test

MySQL服务器的测试套件

Mysql企业版RPM 包

Package Name

Summary

mysql-commercial-backup

MySQL Enterprise Backup (added in 8.0.11)

mysql-commercial-client

MySQL client applications and tools

mysql-commercial-common

Common files for server and client libraries

mysql-commercial-devel

Development header files and libraries for MySQL database client applications

mysql-commercial-embedded-compat

MySQL server as an embedded library with compatibility for applications using version 18 of the library

mysql-commercial-libs

Shared libraries for MySQL database client applications

mysql-commercial-libs-compat

Shared compatibility libraries for previous MySQL installations; the version of the libraries matches the version of the libraries installed by default by the distribution you are using

mysql-commercial-server

Database server and related tools

mysql-commercial-test

Test suite for the MySQL server

RPM包的命名符合以下语法规则:

packagename-version-distribution-arch.rpm

distribution 和arch 表示RPM包针对linux发布版和处理器类型。有关distribution 标识的列表,请参见下表:

Distribution Value

Intended Use

el6, el7, and el8

Red Hat Enterprise Linux/Oracle Linux/CentOS 6, 7, and 8

fc29 fc30

Fedora 29 and 30

sles12

SUSE Linux Enterprise Server 12

使用以下命令查看rpm包中的所有文件(例如,mysql-community-server):

rpm -qpl mysql-community-server-version-distribution-arch.rpm

一些包之间存在依赖关系。如计划安装多个软件包,则下载RPM的tar文件就可以了,它包含上面列出的所有rpm软件包。

在大多数情况下,需要安装mysql-community-server、mysql-community-client、mysql-community-libs、mysql-community-common和mysql-community-libs-compat包来获得一个功能正常的标准mysql安装。

要执行这种标准的基本安装,则转到包含所有这些包的目录下(最好没有其他名称相似的rpm包),并执行以下命令:

yum install mysql-community-{server,client,common,libs}-*

在SLES平台用zypper替换yum,在Fedora用dnf替换fedora。

使用yum这样的高级包管理工具来安装包更便捷,但也可以用rpm -uvh命令替换yum安装命令;因为安装过程可能会遇到潜在的依赖性问题,使用rpm -uvh反而会使安装过程更容易失败。

如果仅安装客户端程序,就可以在安装的软件包列表中略过MySQL-community-server;执行以下命令:

yum install mysql-community-{client,common,libs}-*

在SLES平台用zypper替换yum,在Fedora用dnf替换fedora。

使用RPM包默认安装mysql会在系统目录下创建文件和资源,如下表所示:

Files or Resources

Location

Client programs and scripts

/usr/bin

mysqld server

/usr/sbin

Configuration file

/etc/my.cnf

Data directory

/var/lib/mysql

Error log file

对于RHEL, Oracle Linux, CentOS or Fedora 平台:/var/log/mysqld.log

对于SLES: /var/log/mysql/mysqld.log

Value of secure_file_priv

/var/lib/mysql-files

System V init script

对于RHEL, Oracle Linux, CentOS or Fedora 平台:/etc/init.d/mysqld

对于 SLES: /etc/init.d/mysql

Systemd service

对于 RHEL, Oracle Linux, CentOS or Fedora 平台: mysqld

对 SLES: mysql

Pid file

/var/run/mysql/mysqld.pid

Socket

/var/lib/mysql/mysql.sock

Keyring directory

/var/lib/mysql-keyring

Unix manual pages

/usr/share/man

Include (header) files

/usr/include/mysql

Libraries

/usr/lib/mysql

Miscellaneous support files (for example, error messages, and character set files)

/usr/share/mysql

安装还会在系统上创建一个名为mysql的用户和一个名为mysql的组。

mysql不会在安装过程结束时自动启动。对于Red Hat Enterprise Linux、oracle linux、centos和fedora系统,使用以下命令启动mysql:

systemctl start mysqld

对于SLES系统,命令是相同的,但是服务名称不同:

systemctl start mysql

如果操作系统启用了systemd,则应使用标准systemctl(相反的,使用service)命令(如停止、启动、状态和重新启动)来管理mysqlserver服务。默认情况下,mysql服务是开机启动的。

在升级时,如果MYSQL server正在运行,那么MYSQL server会立刻停止运行,升级,启动。

一个例外是:如果版本在升级过程中也发生了变化(比如社区升级到商业版,反之亦然),那么mysql服务器就不会重新启动。

在服务器初始启动时,假设服务器的数据目录为空,会发生以下情况:

初次启动mysql(MySQL 8.0以及更高版本) 服务端后,服务端发生如下事件:

  1. 服务端初始化。
  2. SSL certificate and key文件在data目录生成。
  3.  validate_password 插件 被安装以及生效。
  4. 超级用户 'root'@'localhost' 以及密码被生成,密码存在 error log file,为了找到密码,执行以下命令

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

在SLES平台执行以下命令:

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

用自动产生的密码登录mysql后,应尽快修改密码。

注意:默认安装的validate_password要求密码必须包含:大,小写字符,特殊字符,数字。密码总长度不低于8个。

如果安装过程中出现问题,你可以在错误日志文件/var/log/mysqld.log(SLES平台/var/log/mysql/mysqld.log)中找到调试信息。

对于某些linux发行版,可能有必要增加mysqld可用文件描述符的数量限制。

从多个mysql版本安装客户端库

例如,希望与链接到以前库的旧应用程序保持兼容性的情况下,可以安装多个客户端库版本。要安装旧的客户端库,使用rpm的- oldpackage选项。例如, 安装mysql-community-libs-5.5在el6系统上,该系统已经从mysql 8.0安装了libmysqlclient.21,请使用如下命令:

rpm --oldpackage -ivh mysql-community-libs-5.5.50-2.el6.x86_64.rpm

调试包

MYSQL server的RPM包包含一个和调试包一起编译的特殊变体。当server运行时,变体执行调试和内存分配检查,并生成trace文件。要使用调试版本,使用/usr/sbin/mysqld-debug启动mysql,而不是将其作为服务或/usr/sbin/MySQL启动。

注意:在mysql 8.0.4中,调试版本的默认插件目录从/usr/lib64/mysql/plugin更改为/usr/lib64/mysql/plugin/debug。以前,需要将plugin_dir更改为/usr/lib64/mysql/plugin/debug以用于调试版本。

上一篇:虚拟机环境安装MySQL


下一篇:MySql8主从搭建(rpm包)