centos7 离线安装mysql8.0两种方式

此测试是在centos7 mini 环境下进行的
一种宿主机安装一种docker方式安装部署(包含离线安装docker服务)

一、 宿主机安装mysql

删除原有得mariadb

rpm -qa|grep mariadb  --> 查看安装得mysql
rpm -e --nodeps mariadb-libs  --> 卸载安装得mysql

创建mysql文件夹

根据自己需要存储文件得目录进行创建

mkdir -p /mysql/mysql-data
mkdir -p /mysql/mysql-bin
cd /mysql

通过wget下载mysql8.0压缩包

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.27-1.el7.x86_64.rpm-bundle.tar

解压安装mysql

tar -xvf mysql-8.0.27-1.el7.x86_64.rpm-bundle.tar

[必须安装]

rpm -ivh mysql-community-common-8.0.27-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.27-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.27-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.27-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.27-1.el7.x86_64.rpm
  --!> 出现安装net-tools  执行 wget http://mirrors.163.com/centos/7/os/x86_64/Packages/net-tools-2.0-0.25.20131004git.el7.x86_64.rpm, rpm -Uvh net-tools-2.0-0.25.20131004git.el7.x86_64.rpm
  --!> 如果无GCC 需执行, wget http://mirrors.163.com/centos/7/os/x86_64/Packages/gcc-4.8.5-44.el7.x86_64.rpm, rpm -ivh gcc-4.8.5-44.el7.x86_64.rpm
  --!> 出现perl 错误可以使用yum install -y perl-Module-Install.noarch  `如果出现这个错误, 建议使用docker安装部署`

[非必须安装] --> 暂未验证

rpm -ivh mysql-community-libs-compat-8.0.16-2.el7.x86_64.rpm
rpm -ivh mysql-community-embedded-compat-8.0.16-2.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.16-2.el7.x86_64.rpm
rpm -ivh mysql-community-test-8.0.16-2.el7.x86_64.rpm

如需更改mysql存储位置和忽略大小写设置需要在初始化前执行

vi /etc/my.cnf
[mysqld]
datadir=/mysql/mysql-data
socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

# 配置binlog
log-bin=/mysql/mysql-bin/mysql-bin
binlog-format=ROW
server_id=1
# 忽略大小写
lower_case_table_names=1
# 允许最大连接数
max_connections=999
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
#缓存池
innodb_buffer_pool_size=4G
# 脏页占innodb_buffer_pool_size的比例时,触发刷脏页到磁盘
# 25%~50%
innodb_max_dirty_pages_pct=30
# 后台进程最大IO性能指标
# 默认200,如果SSD,调整为5000~20000
innodb_io_capacity=200

增加文件归属

chown -R mysql:mysql /mysql

关闭权限认证

setenforce 0

查看服务状态

systemctl status mysqld

停止服务

service mysqld stop

初始化服务 --> 指定mysql用户执行此命令

sudo -u mysql mysqld --initialize --console

启动服务

systemctl start mysqld

查看临时密码

cat /var/log/mysqld.log |grep root

使用临时密码登陆数据库

mysql -u root -p

修改临时密码

alter USER 'root'@'localhost' IDENTIFIED BY '123456';

授权远程链接

show databases;
use mysql;
select host, user, authentication_string, plugin from user;
update user set host = "%" where user='root';
flush privileges;

如果无法链接需要关闭防火墙

systemctl stop firewalld.service

如果没有perl, 需要安装这些环境

http://mirrors.163.com/centos/7/os/x86_64/Packages/
已安装:

  perl-Module-Install.noarch 0:1.06-4.el7

作为依赖被安装:
  gdbm-devel.x86_64 0:1.10-8.el7                    libdb-devel.x86_64 0:5.3.21-25.el7                   mailcap.noarch 0:2.1.41-2.el7
  perl.x86_64 4:5.16.3-299.el7_9                    perl-Algorithm-Diff.noarch 0:1.1902-17.el7           perl-Archive-Extract.noarch 1:0.68-3.el7
  perl-Archive-Zip.noarch 0:1.30-11.el7             perl-Business-ISBN.noarch 0:2.06-2.el7               perl-Business-ISBN-Data.noarch 0:20120719.001-2.el7
  perl-CPAN.noarch 0:1.9800-299.el7_9               perl-CPAN-Meta.noarch 0:2.120921-5.el7               perl-CPAN-Meta-Requirements.noarch 0:2.122-7.el7
  perl-CPAN-Meta-YAML.noarch 0:0.008-14.el7         perl-CPANPLUS.noarch 0:0.91.38-4.el7                 perl-Carp.noarch 0:1.26-244.el7
  perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7      perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7          perl-DBD-SQLite.x86_64 0:1.39-3.el7
  perl-DBI.x86_64 0:1.627-4.el7                     perl-DBIx-Simple.noarch 0:1.35-7.el7                 perl-Data-Dumper.x86_64 0:2.145-3.el7
  perl-Digest.noarch 0:1.17-245.el7                 perl-Digest-MD5.x86_64 0:2.52-3.el7                  perl-Digest-SHA.x86_64 1:5.85-4.el7
  perl-Digest-SHA1.x86_64 0:2.13-9.el7              perl-Encode.x86_64 0:2.51-7.el7                      perl-Encode-Locale.noarch 0:1.03-5.el7
  perl-Exporter.noarch 0:5.68-3.el7                 perl-ExtUtils-CBuilder.noarch 1:0.28.2.6-299.el7_9   perl-ExtUtils-Install.noarch 0:1.58-299.el7_9
  perl-ExtUtils-MakeMaker.noarch 0:6.68-3.el7       perl-ExtUtils-Manifest.noarch 0:1.61-244.el7         perl-ExtUtils-ParseXS.noarch 1:3.18-3.el7
  perl-File-Fetch.noarch 0:0.42-2.el7               perl-File-Listing.noarch 0:6.04-7.el7                perl-File-Path.noarch 0:2.09-2.el7
  perl-File-Remove.noarch 0:1.52-6.el7              perl-File-Temp.noarch 0:0.23.01-3.el7                perl-Filter.x86_64 0:1.49-3.el7
  perl-Getopt-Long.noarch 0:2.40-3.el7              perl-HTML-Parser.x86_64 0:3.71-4.el7                 perl-HTML-Tagset.noarch 0:3.20-15.el7
  perl-HTTP-Cookies.noarch 0:6.01-5.el7             perl-HTTP-Daemon.noarch 0:6.01-8.el7                 perl-HTTP-Date.noarch 0:6.02-8.el7
  perl-HTTP-Message.noarch 0:6.06-6.el7             perl-HTTP-Negotiate.noarch 0:6.01-5.el7              perl-HTTP-Tiny.noarch 0:0.033-3.el7
  perl-IO-Compress.noarch 0:2.061-2.el7             perl-IO-HTML.noarch 0:1.00-2.el7                     perl-IO-Socket-IP.noarch 0:0.21-5.el7
  perl-IO-Socket-SSL.noarch 0:1.94-7.el7            perl-IPC-Cmd.noarch 1:0.80-4.el7                     perl-JSON-PP.noarch 0:2.27202-2.el7
  perl-LWP-MediaTypes.noarch 0:6.02-2.el7           perl-Locale-Maketext.noarch 0:1.23-3.el7             perl-Locale-Maketext-Simple.noarch 1:0.21-299.el7_9
  perl-Log-Message.noarch 1:0.08-3.el7              perl-Log-Message-Simple.noarch 0:0.10-2.el7          perl-Module-Build.noarch 2:0.40.05-2.el7
  perl-Module-CoreList.noarch 1:2.76.02-299.el7_9   perl-Module-Load.noarch 1:0.24-3.el7                 perl-Module-Load-Conditional.noarch 0:0.54-3.el7
  perl-Module-Loaded.noarch 1:0.08-299.el7_9        perl-Module-Metadata.noarch 0:1.000018-2.el7         perl-Module-Pluggable.noarch 1:4.8-3.el7
  perl-Module-ScanDeps.noarch 0:1.10-3.el7          perl-Module-Signature.noarch 0:0.73-2.el7            perl-Mozilla-CA.noarch 0:20130114-5.el7
  perl-Net-Daemon.noarch 0:0.48-5.el7               perl-Net-HTTP.noarch 0:6.06-2.el7                    perl-Net-LibIDN.x86_64 0:0.12-15.el7
  perl-Net-SSLeay.x86_64 0:1.55-6.el7               perl-Object-Accessor.noarch 1:0.42-299.el7_9         perl-PAR-Dist.noarch 0:0.49-2.el7
  perl-Package-Constants.noarch 1:0.02-299.el7_9    perl-Params-Check.noarch 1:0.38-2.el7                perl-Parse-CPAN-Meta.noarch 1:1.4404-5.el7
  perl-PathTools.x86_64 0:3.40-5.el7                perl-Perl-OSType.noarch 0:1.003-3.el7                perl-PlRPC.noarch 0:0.2020-14.el7
  perl-Pod-Escapes.noarch 1:1.04-299.el7_9          perl-Pod-Perldoc.noarch 0:3.20-4.el7                 perl-Pod-Simple.noarch 1:3.28-4.el7
  perl-Pod-Usage.noarch 0:1.63-3.el7                perl-Scalar-List-Utils.x86_64 0:1.27-248.el7         perl-Socket.x86_64 0:2.010-5.el7
  perl-Storable.x86_64 0:2.45-3.el7                 perl-Term-UI.noarch 0:0.36-2.el7                     perl-Test-Harness.noarch 0:3.28-3.el7
  perl-Text-Diff.noarch 0:1.41-5.el7                perl-Text-ParseWords.noarch 0:3.29-4.el7             perl-Time-HiRes.x86_64 4:1.9725-3.el7
  perl-Time-Local.noarch 0:1.2300-2.el7             perl-TimeDate.noarch 1:2.30-2.el7                    perl-URI.noarch 0:1.60-9.el7
  perl-WWW-RobotRules.noarch 0:6.02-5.el7           perl-YAML-Tiny.noarch 0:1.51-6.el7                   perl-constant.noarch 0:1.27-2.el7
  perl-devel.x86_64 4:5.16.3-299.el7_9              perl-libs.x86_64 4:5.16.3-299.el7_9                  perl-libwww-perl.noarch 0:6.05-2.el7
  perl-local-lib.noarch 0:1.008010-4.el7            perl-macros.x86_64 4:5.16.3-299.el7_9                perl-parent.noarch 1:0.225-244.el7
  perl-podlators.noarch 0:2.5.1-3.el7               perl-threads.x86_64 0:1.87-4.el7                     perl-threads-shared.x86_64 0:1.43-6.el7
  perl-version.x86_64 3:0.99.07-6.el7               pyparsing.noarch 0:1.5.6-9.el7                       systemtap-sdt-devel.x86_64 0:4.0-13.el7

二、使用docker部署mysql, 离线安装docker及mysql包

离线安装docker原文档https://www.cnblogs.com/helf/p/12889955.html

准备工作

  1. 找一台能联网并安装过docker得服务器
  2. 执行下列命令
docker pull mysql:8.0
docker save -o mysql-8.tar   mysq:8.0
  1. 把tar包存放起来下面会用到

创建docker文件夹并进入

mkdir /docker
cd docker

下载docker的安装文件

选择docker-18.06.3-ce.tgz文件

wget https://download.docker.com/linux/static/stable/x86_64/docker-18.06.3-ce.tgz

解压

tar -zxvf docker-18.06.3-ce.tgz

将解压出来的docker文件复制到 /usr/bin/ 目录下

cp docker/* /usr/bin/

进入/etc/systemd/system/目录,并创建docker.service文件

cd /etc/systemd/system/
touch docker.service

打开docker.service文件,将以下内容复制

vim docker.service

注意: --insecure-registry=192.168.200.128 此处改为你自己服务器ip

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target

[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd --selinux-enabled=false --insecure-registry=192.168.200.128
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target

给docker.service文件添加执行权限

chmod 777 /etc/systemd/system/docker.service 

重新加载配置文件(每次有修改docker.service文件时都要重新加载下)

systemctl daemon-reload

启动

systemctl start docker

设置开机启动

systemctl enable docker.service

查看docker状态

systemctl status docker

启动docker命令 名字

如果您想查看可用选项的完整列表,只需运行:

docker run -it --rm mysql:tag --verbose --help

上传镜像至docker

把上面第四步骤存放起来得tar包, 发送至离线得服务器上

docker load -i mysql-8.0.tar
mkdir -p /my/custom
mkdir -p /my/own/datadir
cp my.cnf /my/custom # 下面会贴上我得my.cnf文件内容
chown mysql:mysql -R /my/

通过此命令即可正常访问33066端口服务器
如果无法访问检查防火墙

docker run --name some-mysql -p 33066:3306 -v /my/custom/:/etc/mysql/conf.d/  -v /my/own/datadir:/var/lib/mysql/ -e MYSQL_ROOT_PASSWORD=my-secret-pw --restart=always -d mysql:8

my.cnf配置

[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql
secure-file-priv= NULL


# 忽略大小写
lower_case_table_names=1
# 允许最大连接数
max_connections=999
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
#缓存池
innodb_buffer_pool_size=4G
# 脏页占innodb_buffer_pool_size的比例时,触发刷脏页到磁盘
# 25%~50%
innodb_max_dirty_pages_pct=30
# 后台进程最大IO性能指标
# 默认200,如果SSD,调整为5000~20000
innodb_io_capacity=200

# Custom config should go here
!includedir /etc/mysql/conf.d/
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: CentOS 7离线安装MySQL 8.的步骤如下: 1. 下载MySQL 8.的离线安装,可以从MySQL官网下载。 2. 将下载的安装上传到CentOS 7服务器上。 3. 解压安装,可以使用以下命令: tar -zxvf mysql-8..21-linux-glibc2.12-x86_64.tar.gz 4. 将解压后的文件夹移动到/usr/local目录下,可以使用以下命令: mv mysql-8..21-linux-glibc2.12-x86_64 /usr/local/mysql 5. 创建MySQL用户和组,可以使用以下命令: groupadd mysql useradd -r -g mysql -s /bin/false mysql 6. 修改MySQL文件夹的权限,可以使用以下命令: chown -R mysql:mysql /usr/local/mysql 7. 安装MySQL依赖库,可以使用以下命令: yum install -y libaio 8. 初始化MySQL,可以使用以下命令: cd /usr/local/mysql bin/mysqld --initialize --user=mysql 9. 启动MySQL服务,可以使用以下命令: bin/mysqld_safe --user=mysql & 10. 设置MySQL的root密码,可以使用以下命令: bin/mysql_secure_installation 以上就是CentOS 7离线安装MySQL 8.的步骤。 ### 回答2: CentOS 7是一种流行的Linux发行版之一,而MySQL 8.0是一种常用的关系型数据库管理系统。本文将介绍如何在CentOS 7中进行离线安装MySQL 8.0。 步骤一:准备MySQL 8.0安装文件 首先,您需要从MySQL官网下载MySQL 8.0的离线。建议下载tarball(.tar.gz)文件以及对应的sha256文件。 步骤二:安装依赖项 在安装MySQL之前,需要先安装一些依赖项。在CentOS 7中,可以通过以下命令安装这些依赖项: ``` sudo yum install libaio numactl ``` 步骤三:创建MySQL用户和组 为了安装MySQL服务器,需要创建MySQL用户和组。您可以通过以下命令进行创建: ``` sudo groupadd mysql sudo useradd -r -g mysql -s /bin/false mysql ``` 步骤四:解压安装文件 将下载的.tar.gz文件解压缩到要安装的位置,例如: ``` sudo mkdir /usr/local/mysql sudo tar -zxvf mysql-8.0.28-linux-glibc2.12-x86_64.tar.gz -C /usr/local/mysql --strip-components=1 ``` 步骤五:修改文件夹权限 在解压MySQL文件后,需要修改/usr/local/mysql的权限,将其所有者更改为mysql用户和mysql组。使用以下命令: ``` sudo chown -R mysql:mysql /usr/local/mysql ``` 步骤六:初始化MySQL数据目录 接下来,您需要初始化MySQL数据目录。使用以下命令: ``` cd /usr/local/mysql sudo bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/var/lib/mysql ``` 步骤七:启动MySQL服务 ``` sudo bin/mysqld_safe --user=mysql & ``` 步骤八:设置MySQL管理员帐户(可选) 您可以在MySQL中创建一个管理员帐户。使用以下命令创建帐户: ``` sudo bin/mysql_secure_installation ``` 步骤九:在系统引导时启动MySQL服务 这个步骤很重要,因为如果不将MySQL服务添加到系统引导中,每次启动服务器时都需要手动启动MySQL服务。 使用以下命令将MySQL服务添加到系统引导中: ``` sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql sudo chmod +x /etc/init.d/mysql sudo chkconfig --add mysql sudo chkconfig --level 345 mysql on ``` 现在,您已成功离线安装MySQL 8.0。 ### 回答3: CentOS 7 是一种流行的 Linux 操作系统,它的稳定性、功能强大和开放源代码使得它成为许多企业和组织的首选操作系统。而 MySQL 是一种流行的关系型数据库管理系统,它是许多企业和组织首选的数据库系统之一,使用很广泛。本文将介绍如何在 CentOS 7 中离线安装 MySQL 8.0。 1. 下载 MySQL 安装和依赖 在开始安装之前,您需要下载 MySQL 8.0 的安装以及它所依赖的所有。这些可以从 MySQL 官方网站下载,也可以在镜像站点上下载。建议您下载的是 tar 格式的。 2. 安装依赖项 在安装 MySQL 8.0 之前,您需要安装一些依赖项,括 libaio、libnuma、curl、libcurl、ncurses-libs。它们可以通过 yum 安装,使用以下如下命令: ``` yum install libaio libnuma curl libcurl ncurses-libs ``` 3. 创建 MySQL 用户和组 在安装 MySQL 之前,请首先创建 mysql 用户和 mysql 组。这可以通过以下命令完成: ``` groupadd mysql useradd -r -g mysql -s /bin/false mysql ``` 4. 解压 MySQL 安装并复制文件 在安装 MySQL 前,先解压缩下载的安装: ``` tar -zxvf mysql-8.0.26-linux-glibc2.17-x86_64.tar.gz -C /usr/local/ ``` 这里的 /usr/local/ 目录是您自己选择的存储 MySQL 文件的目录。然后,复制文件: ``` cp /usr/local/mysql-8.0.26-linux-glibc2.17-x86_64/support-files/mysql.server /etc/init.d/mysql cp /usr/local/mysql-8.0.26-linux-glibc2.17-x86_64/support-files/my-default.cnf /etc/my.cnf chmod 755 /etc/init.d/mysql ``` 5. 初始化 MySQL 数据库 在进行安装之前,先运行以下命令初始化 MySQL 数据库: ``` cd /usr/local/mysql-8.0.26-linux-glibc2.17-x86_64/ ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql-8.0.26-linux-glibc2.17-x86_64 --datadir=/usr/local/mysql-8.0.26-linux-glibc2.17-x86_64/data/ ``` 6. 启动 MySQL 服务 运行以下命令以启动 MySQL 服务: ``` service mysql start ``` 7. 登录 MySQL 运行以下命令以登录 MySQL: ``` cd /usr/local/mysql-8.0.26-linux-glibc2.17-x86_64/ ./bin/mysql -u root -p ``` 此时,您已经成功地在 CentOS 7 中离线安装MySQL 8.0。如需设置 MySQL 的更多选项,建议您查看 MySQL 的官方文档。 需要注意的是,在实际安装 MySQL 时,还需要考虑到诸如安全性、性能等方面的因素,更加细致的配置和设置可能涉及到许多细节,建议在实际操作前多做了解和学习。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值