基于RPM的linux发布版安装mysql的推荐方法是使用oracle提供的RPM软件包。可以从两个来源获取他们。
注意:其他供应商也提供mysql的RPM发布版。它们在功能、能力和设置等方面可能与oracle创建的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 包
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以及更高版本) 服务端后,服务端发生如下事件:
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可用文件描述符的数量限制。
例如,希望与链接到以前库的旧应用程序保持兼容性的情况下,可以安装多个客户端库版本。要安装旧的客户端库,使用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以用于调试版本。