基于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包
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, andel8
Red Hat Enterprise Linux/Oracle Linux/CentOS 6, 7, and 8
fc29fc30
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
mysqldserver
/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 ofsecure_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以用于调试版本。