暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL的安装真的很简单?

TtrOpsStack 2022-05-01
261

一、mysql的安装方式如何选择

当需要在测试环境或者生产环境中安装MySql的时候,除了对版本进行选择之外,安装方式也是需要选择的,人生旅程中不一直都是在选择吗?额。。。跑题了。继续回到正题,那么MySql的安装方式该如何选择?笔者认为,安装方式的选择还真是一门“学问”,不同的场景、不同的需求,那么就需要选择不同的安装方式,比如受到网络限制的内网环境等等。

笔者脑补了一下,安装方式无非就是以下四种:

  1. 基于rpm包

  2. 使用yum

  3. 基于源码包

  4. 基于二进制包

二、安装方式的个人见解

1. 关于所谓的优缺点

对于那么多种安装方式,很多人会去对比它们的优点、缺点,笔者只是个人认为,对于上述提到的安装方式,每种方式都没有优缺点之分。因为在不同的场景、不同的环境下,那么对于它的优点可以将它身上所赋有的优点发挥到极致,那么对于它所谓的缺点,在有的时候,它可能还真是就能变成是“优点”。所以,核心的问题是,不要去规定死就偏要用哪种安装方式,而是要结合实际的场景和环境去进行灵活的选择。

2. 关于如何选择

还是那句话,处于不同的场景、不同的环境下去做出最好的选择,下面笔者例举几个假设,希望可以做到抛砖引玉吧!

  • 选择rpm包安装方式的场景

不管是在生产还是测试环境,如果对安装路径、或者对性能没有特殊要求,又或者是内网环境,且想要快速安装Mysql的时候,那么可以选择这种方式,但可能会面临一个问题,就是你的操作系统可能缺少各种依赖导致直接用rpm包安装失败。解决的办法是,到官方网站提前了解清楚依赖了哪些包,提前安装好即可。

  • 选择使用yum安装的场景

上面提到,如果操作系统缺少各种依赖怎么办?缺少10个、20个、100个依赖怎么办,手动安装吗?那么肯定会疯掉的。那么yum的安装方式就是最好的选择了,不管是用rpm包、二进制包、源码包的安装方式,只要缺少的依赖,都可以把依赖搞清楚,再通过yum将安装依赖好,yum会自动解决依赖关系。当然,如果没有特别的要求,不管是生产还是测试环境,也可以直接用yum的方式安装mysql,但前提是,你的机器能出外网,且配置好了MySql的yum源,当然,如果是内网环境,也可以在内网搭建1套yum源服务器。

  • 选择使用源码包安装的场景对于源码包,都说了是源码,那么它肯定就是开源的,可以看到源代码文件,也可以修改源代码,可以自由选择所需的功能也可以对其做二次开发。源码包的安装方式是所有方式中最麻烦的,如果对性能有特别高的要求,那么可以采用源码包的安装方式。需要哪些功能或者不需要哪些功能,都可以进行编译安装,所以会更加适合自己。一旦安装成功,更加运行起来也更加稳定高效。

  • 选择通用二进制包安装的场景所谓的二进制包,就是官方提前编译打包好的包,可在各个不同的操作系统中初始化后即可直接使用,安装过程简单、快速,不管是生产还是测试环境,没有特别的要求,且如果是内网环境,都可以采取这种安装方式。

最后总结一下,每个人的环境和场景都不一样,笔者只是谈谈自己对安装方式的看法,核心的思想我们要抓住:针对不同的场景、不同的环境,有针对性的、且灵活的去选择,甚至在完成某项安装任务的时候,可能还需要结合不同的安装方式来完成安装任务。接下来,笔者也给出了一个基于通用二进制包安装的实践案例,希望可以和大家共勉。

三、基于通用二进制包安装实践

  1. 下载通用二进制包

wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
  1. 安装依赖库

# 检查安装情况
[root@mysqldb8svr ~]# rpm -qa | grep libaio
libaio-0.3.109-13.el7.x86_64

# 如没有安装,安装即可
yum install libaio -y
  1. 解压

tar -xf mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
mv mysql-8.0.27-linux-glibc2.12-x86_64 usr/local/mysql
  1. 准备配置文件

cat >>/etc/my.cnf <<EOF
[client]
port = 3306
socket = data/mysql_data/mysql3306.sock

[mysqld]
user = mysql
port = 3306
socket = data/mysql_data/mysql3306.sock
basedir = usr/local/mysql
datadir = data/mysql_data
log-error = data/mysql_data/mysql3306.err
pid-file = data/mysql_data/mysql3306.pid
lower_case_table_names = 1
EOF
  1. 根据配置文件定义的配置创建所需的文件或者目录,并调整权限

# 创建mysql运行账户和组
groupadd mysql
useradd -r -g mysql -s bin/false mysql

# 调整权限
chown -R mysql:mysql data/mysql_data usr/local/mysql etc/my.cnf
  1. 初始化操作,并获取自动生成的root密码

# 初始化
/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize

# 获取自动生成的初始密码
[root@mysqldb8svr ~]# cat data/mysql_data/mysql3306.err | grep password
2021-10-19T14:37:36.635360Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: h6p&r0_dPku:

密码是:h6p&r0_dPku:
  1. 启动mysql

/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --daemonize
  1. 登录mysql,并修改root密码

# 配置环境变量
cat >>/etc/profile <<EOF
export PATH=$PATH:/usr/local/mysql/bin/
EOF

source /etc/profile

# 登录
mysql -S /data/mysql_data/mysql3306.sock -uroot -p

# 修改MySQL的root密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root.123456';

至此,基于通用二进制包安装的实践就结束了。


文章转载自TtrOpsStack,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论