通过yum安装MySQL_5.7.25详细过程

一、添加MySQL Yum存储库

首先,将MySQL Yum存储库添加到系统的存储库列表中。这是一次性操作,可以通过安装MySQL提供的RPM来执行。

MySQL Developer Zone中的下载MySQL Yum存储库页面: https://dev.mysql.com/downloads/repo/yum/

注意

一旦在您的系统上启用了MySQL Yum存储库,如果yum update 命令(或Fedora的dnf升级)找到更高的版本,都将升级系统上的MySQL软件包并替换任何本机第三方软件包。

官网最新的库包含MySQL8.0,稳妥起见提供一个官方的旧版本repo地址,防止yum update把MySQL更新到最新。当然,最稳妥的办法是安装完毕后把库文件删除。

https://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm

shell> rpm -Uvh mysql57-community-release-el7-8.noarch.rpm

安装命令将MySQL Yum存储库添加到系统的存储库列表中,并下载GnuPG密钥以检查软件包的完整性。

shell> yum repolist enabled | grep "mysql.*-community.*"


二、确认选择发布系列

vi /etc/yum.repos.d/mysql-community.repo,找到要配置的子存储库的条目,然后编辑该enabled选项。

指定 enabled=0禁用子存储库,或 enabled=1启用子存储库,确认mysql57为开启状态,其余为关闭状态。

[mysql57-community]

name=MySQL 5.7 Community Server

baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

您应该确保只启用一个MySQL系列的存储库。当启用多个版本系列的子存储库时,Yum将使用最新的系列。

shell> yum repolist enabled | grep mysql


三、安装MySQL

通过以下命令安装MySQ:

shell> sudo yum install mysql-community-server

这将安装MySQL server(mysql-community-server)以及运行服务器所需组件的,包括client(mysql-community-client

客户端和服务器的常见错误消息和字符集(mysql-community-common)以及共享客户端库(mysql-community-libs

最后建议把 mysql-community-lib-compat也装上(替换mariadb-lib)

yum 安装的好处就是自动帮助处理缺少的依赖包和解决冲突包,例如安装libaio和net-tools,删除mariadb-lib……否则RPM安装的时候还要手工处理这些问题,这里就不展开了


四、初始化

1、编辑systemd和my.cnf

  • 从MySQL 5.7.10开始,通过yum、RPM安装时,已经把默认使用systemd替换掉了原来的mysqld_safe;

  • 使用systemctl edit mysqld或者修改/etc/systemd/system/mysqld.service.d/override.conf来更改PIDFile和Execstart的路径,从而实现自定义参数,/etc/systemd/system/mysqld.service.d若不存在请自行创建。

  • 原有SQL的配置文件(这里一般指/etc/my.cnf)任何关于PIDFile的设置将被忽略,部分mysql_safe的参数要进行修改,部分可以配置到[mysqld],这里不做展开了

  • 启动参数(ExecStart)必须设置PIDFile的路径,第一个“ExecStart=”这一行不能省去,删掉的话将不能启动猜测逻辑是先用空参数覆盖/usr/lib/systemd/system/mysqld.service 的启动参数,再通过第二个含参数的ExecStart实现自定义参数启动

  • 最后,systemd配置方式和mysqld_safe是相互冲突的,因此自编译的时候尤其注意(RPM、yum安装的默默接受systemd这个事实吧……)

编写override.conf

[Service]

PIDFile=/opt/mysql/mysqld.pid

ExecStart=

ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/opt/mysql/DB_Server01.pid $MYSQLD_OPTS

编写/etc/my.cnf

[mysqld]

server-id = 1

port = 3306

event_scheduler = 1

character-set-server = utf8

collation-server = utf8_general_ci

default-storage-engine = INNODB

default-time-zone = '+08:00'

bind-address = 0.0.0.0

symbolic-links = 0

user = mysql

socket = /opt/mysql/mysqld.sock

datadir = /opt/mysql/data

tmpdir = /opt/mysql/tmp

skip-external-locking

max_connections = 1000

max_allowed_packet = 500M

key_buffer_size = 16M

thread_stack = 192K

thread_cache_size = 8

query_cache_limit = 1M

query_cache_size = 16M

#########log file setting##########

log_timestamps = SYSTEM

log_error = /opt/mysql/log/error.log

log-bin = /opt/mysql/log/DB_Server01-mysql-bin

binlog-format=Row

expire_logs_days = 10

max_binlog_size = 100M

slow-query-log-file = /opt/mysql/DB_Server01-slow.log

general-log-file = /opt/mysql/log/DB_Server01.log

[client]

default-character-set = utf8

socket = /opt/mysql/mysqld.sock


初始化的时候必须设置--defaults-file,否则不会自动读取/etc/my.cnf(从5.6过来最常见的陨石巨坑)

mysqld --defaults-file=/etc/my.cnf --initialize

划重点:my.cnf内标识了使用mysql用户,因此my.cnf内所有提及到的目录的所有者必须为mysql,否则将不能成功启动。

chown  -Rh mysql.mysql /opt/mysql


五、启动MySQL服务器

使用以下命令启动MySQL服务器:

shell> sudo service mysqld start

您可以使用以下命令检查MySQL服务器的状态:

shell> sudo service mysqld status

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

  • 服务器已初始化。

  • SSL证书和密钥文件在数据目录中生成。

  • validate_password 已安装并已启用。

  • 'root'@'localhost创建一个超级用户帐户。设置超级用户的密码并将其存储在错误日志文件中。要显示它,请使用以下命令:

获取root初始自动生成的临时密码:

shell> sudo grep 'temporary password' /var/log/mysqld.log | awk -F":" '{print $4}' (这是默认情况)

如果使用上文的my.cnf初始化,并且修改过log的路径,则自行替换,如上面列出的my.cnf,log_error = /opt/mysql/log/error.log,那么就对应修改为:

shell> sudo grep 'temporary password' /opt/mysql/log/error.log | awk -F":" '{print $5}'

(由于my.cnf里面增加了+08:00,修改后就是print $5,不要照搬)

通过使用生成的临时密码登录并为超级用户帐户设置自定义密码,尽快更改root密码:

shell> mysql -uroot -p

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

题外话:没事不要乱升级,有可能因为一个小版本导致你在安装的过程中怀疑人生,这是我折腾了3天的真实感受……

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章