热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:CentOS8适应Linux通用二进制包安装MySQL最新社区版Server8.0.25

篇首语:本文由编程笔记#小编为大家整理,主要介绍了CentOS8适应Linux通用二进制包安装MySQL最新社区版Server8.0.25相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了CentOS8 适应Linux通用二进制包安装MySQL最新社区版Server8.0.25相关的知识,希望对你有一定的参考价值。






mysql最新社区版Server8.0.25二进制包
  • 官网下载链接:

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.25-linux-glibc2.17-x86_64-minimal.tar.xz

  • 华为源下载链接:

wget https://repo.huaweicloud.com/mysql/Downloads/MySQL-8.0/mysql-8.0.25-linux-glibc2.17-x86_64-minimal.tar.xz

MySQL服务器软件社区版


  • 我们通常所说的MySQL往往指的是MySQL服务器端软件
  • 实现MySQL服务需要安装MSQL Server软件
  • MySQL Server软件目前所有权归属Oracle
  • 我们通常使用的MySQLServer为开源免费的社区版

二进制安装包


  • MySQL二进制安装包命名格式
    mysql-VERSION-OS-GLIBCVER-ARCH-minimal.tar.xz
    mysql-8.0.25-linux-glibc2.17-x86_64-minimal.tar.xz
    mysql-版本号-操作系统-glibc库版本号-服务器架构-最小化的.tar包.xz格式压缩的
  • MySQL服务器社区版提供多种版本多种格式的安装包
  • 我们此次选择Linux通用二进制安装包
  • rpm包省事省时,需要联网,无法定制功能和目录
  • 源码包,无需联网,可定制功能和目录,但编译费时
  • 编译好的二进制包介于两者之间
  • 无需联网,可定制功能和目录,同时不需要再进行费时的编译过程
  • 官方下载地址:https://dev.mysql.com/downloads/mysql/
    MySQL8下载

通用二进制格式安装 MySQL Community Server 8.0.25


下载二进制安装包并解压


  • 下载

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.25-linux-glibc2.17-x86_64-minimal.tar.xz

mysql-8.0.25-linux-glibc2 100%[==================================>] 48.86M 2.08MB/s in 24s
2021-05-18 18:18:16 (2.03 MB/s) - ‘mysql-8.0.25-linux-glibc2.17-x86_64-minimal.tar.xz’ saved [51235496/51235496]
[root@C8-185 ~]# ll -h mysql-8.0.25-linux-glibc2.17-x86_64-minimal.tar.xz
-rw-r--r-- 1 root root 49M Apr 26 03:53 mysql-8.0.25-linux-glibc2.17-x86_64-minimal.tar.xz

  • 解压

tar xvf mysql-8.0.25-linux-glibc2.17-x86_64-minimal.tar.xz

准备系统用户


  • yum安装会自动解决依赖和生成系统用户
  • 二进制安装和源码安装需要手工创建

groupadd -r -g 306 mysql && useradd -r -g 306 -u 306 -d /data/mysql mysql

  • 创建系统用户组ID为306的mysql用户组
  • 成功后创建系统用户属主为306且UID为306并同时指定用户目录

准备数据目录并赋权


  • 建议将数据目录部署在非本地的存储服务器上,服务和数据分离保证数据安全
  • 建议数据存放分区为逻辑卷,方便备份还原以及动态扩展

mkdir -pv /data/mysql && chown mysql.mysql /data/mysql

准备二进制程序文件


  • 将解压缩后的文件夹创建软链接至/usr/local/mysql目录

mv mysql-8.0.25-linux-glibc2.17-x86_64-minimal /usr/local/
ln -sv /usr/local/mysql /usr/local/mysql-8.0.25-linux-glibc2.17-x86_64-minimal/
'/usr/local/mysql-8.0.25-linux-glibc2.17-x86_64-minimal/mysql' -> '/usr/local/mysql'

准备数据库服务器配置文件


  • 在配置文件中我们可以指定端口号
  • 开启需要的功能及优化参数
  • 指定数据库的数据存放位置
  • 我们可以拷贝安装包内的文件作为模板
  • 将配置文件部署在/etc/目录下并命名为my.cnf
  • 官方说明:

# - Create a /etc/my.cnf file with the following information:
# [mysqld]
# basedir=
# - Add the above to any other configuration file (for example ~/.my.ini)
# and copy my_print_defaults to /usr/bin
# - Add the path to the mysql-installation-directory to the basedir variable
# below.

  • 我们就按我们的需求再/etc/下创建my.cnf即可

cat > /etc/my.cnf <<SUN
[mysqld]
socket&#61;/data/mysql/mysql.sock
user&#61;mysql
symbolic-links&#61;0
datadir&#61;/data/mysql ## 指定数据库存放路径
log-bin&#61;/data/mysql/mysql-bin ## 设定二进制日志独立存放
innodb_file_per_table&#61;1 #在mysql5.5以上版的是默认值&#xff0c;可不加
slow-query-log&#61;1 ## 启用慢查询功能
slow-query-log-file&#61;/data/mysql/slow.log
long_query_time&#61;0.2 ##超过0.2秒定义为慢行为
skip_name_resolve&#61;on #禁止主机名解析&#xff0c;建议使用
[client]
port&#61;3306
socket&#61;/data/mysql/mysql.sock
[mysqld_safe]
log-error&#61;/var/log/mysqld.log
pid-file&#61;/tmp/mysql.sock
SUN


  • 其他优化选项可以稍后进行修改

配置系统环境变量

echo &#39;PATH&#61;/usr/local/mysql/bin:$PATH&#39; > /etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh

[root&#64;C8-185 ~]# echo $PATH
/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

安装MySQL的相关依赖包


  • MySQL 依赖 libaio library.
  • 可以使用 Yum安装:

yum -y -q install libaio numactl-libs
yum install ncurses-compat-libs

  • Oracle Linux 8 / Red Hat 8 (EL8): CentOS8 默认没有安装 /lib64/libtinfo.so.5, MySQL 客户端程序依赖这个包。如果不用自带客户端也可以不装。

初始化数据库和用户


  • –initialize 官方建议使用生成复杂密码在日志文件中
  • 使用 -insecure参数可以生成空口令用户

mysqld --initialize-insecure --user&#61;mysql --datadir&#61;/data/mysql

  • 这时候在我们设定的数据文件夹/data/mysql下数据库相关文件就已经生成好了
  • 使用tree查看目录结构
  • 生成了数据文件

将服务脚本拷贝至指定目录并启动服务


  • 两种方式

  1. 使用传统chkconfig方式添加

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
service mysqld start

  1. 使用新systemd-sysv-install安装

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
/usr/lib/systemd/systemd-sysv-install enable mysql
systemctl start mysql

  • 实测启动服务成功

[root&#64;C8-185 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
[root&#64;C8-185 ~]# systemctl enable mysql.service
mysql.service is not a native service, redirecting to systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable mysql
[root&#64;C8-185 ~]# /usr/lib/systemd/systemd-sysv-install enable mysql
[root&#64;C8-185 ~]# systemctl enable mysql.service
mysql.service is not a native service, redirecting to systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable mysql
[root&#64;C8-185 ~]# systemctl status mysql
● mysql.service - LSB: start and stop MySQL
Loaded: loaded (/etc/rc.d/init.d/mysql; generated)
Active: inactive (dead)
Docs: man:systemd-sysv-generator(8)
[root&#64;C8-185 ~]# systemctl start mysql
[root&#64;C8-185 ~]# systemctl status mysql
● mysql.service - LSB: start and stop MySQL
Loaded: loaded (/etc/rc.d/init.d/mysql; generated)
Active: active (running) since Tue 2021-05-18 19:58:43 CST; 3s ago
Docs: man:systemd-sysv-generator(8)
Process: 2297 ExecStart&#61;/etc/rc.d/init.d/mysql start (code&#61;exited, status&#61;0/SUCCESS)
Tasks: 39 (limit: 11353)
Memory: 347.4M
CGroup: /system.slice/mysql.service
├─2305 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir&#61;/data/mysql --pid-file&#61;/data/mysql/C8-185.pid
└─2551 /usr/local/mysql/bin/mysqld --basedir&#61;/usr/local/mysql --datadir&#61;/data/mysql --plugin-dir&#61;/usr/local/mysql/lib/>
May 18 19:58:39 C8-185 systemd[1]: Starting LSB: start and stop MySQL...
May 18 19:58:43 C8-185 mysql[2297]: Starting MySQL.... SUCCESS!
May 18 19:58:43 C8-185 systemd[1]: Started LSB: start and stop MySQL.

修改MySQL数据库空口令保证安全

mysqladmin -uroot password aaaaaaaa

写个脚本一键完成二进制安装

二进制安装MySQL8.0.25的Shell脚本






推荐阅读
author-avatar
思铮同学要努力工作
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有