广告位联系
返回顶部
分享到

Mysql8.4.3LTS中离线部署的实现

Mysql 来源:互联网 作者:佚名 发布时间:2024-11-16 10:50:05 人浏览
摘要

一、部署环境 软件:mysql8.4.3LTS 系统:ubuntu24.04 资源配置 资源分配的大小与业务系统的体量有关系;所以没有固定 CPU:2核 内存:4 GB 磁盘:50 GB sda[系统盘] 50GB, 默认分区 sdc[数据盘] 100GB 挂

一、部署环境

软件:mysql8.4.3LTS

系统:ubuntu24.04

资源配置

资源分配的大小与业务系统的体量有关系;所以没有固定

CPU: 2核

内存: 4 GB

磁盘: 50 GB sda[系统盘] 50GB, 默认分区

sdc[数据盘] 100GB 挂载点 /dcdata

二、下载地址

MySQL :: Download MySQL Community Server

image-20241028163656913

版本选择

由于我的操作系统比较新, 通过 ldd --version 命令查看glibc版本为2.39,所以选择了 glibc 2.28的版本

**注:**如果操作系统支持的话还是选择新的;但是考虑兼容性和维护性,我个人的部署脚本中目前选择的还是glibc2.17的包;

演示使用的是glibc2.28版本的包,后续我也将这个版本的Mysql部署到开发和测试环境中使用,组员一起体验他的稳定性和性能。

三、部署详情

1. 上传安装包

将安装包上传到服务器中,使用root用户安装,上传路径

1

/root/mysql-8.4.3-linux-glibc2.28-x86_64.tar.xz

2. 解压软件包

安装包上传后,执行解压到/dcsm目录下

1

2

3

4

# 新建dcsm文件夹

mkdir /dcsm

tar -xvf /root/mysql-8.4.3-linux-glibc2.28-x86_64.tar.xz -C /dcsm

cd /dcsm && mv mysql-8.4.3-linux-glibc2.28-x86_64/ mysql

3. 安装mysql

3.3.1 创建mysql用户与用户组

查询系统中是否存在mysql用户

1

2

3

cat /etc/passwd | cut -f1 -d':' | grep -w "mysql" -c

 

groupadd mysql && useradd -r -g mysql -s /bin/false mysql

image-20241028165731601

3.3.2 授权安装文件夹

1

2

3

4

5

# 创建相关文件夹

mkdir -p /dcdata/mysql/log && mkdir -p /dcdata/mysql/data && mkdir -p /dcdata/mysql/run && mkdir -p /dcdata/mysql/lib

 

# 授权

chown -R mysql:mysql /dcsm/mysql && chown -R mysql:mysql /dcdata/mysql

image-20241028170026153

3.3.3 安装libaio依赖 (坑)

这个依赖是和你操作系统版本有关系的;

ubuntu24.04 中关于libaio的坑

该系统在安装后自带libaio

image-20241028194337230

虽然whereis搜不到libaio.so.1 这个文件; 但系统中确实安装了 libaio;

这也是我后续初始化依然报错的原因;解决办法就是建立超链接,让mysql在初始化的时候找到这个命令

1

ln -s /lib/x86_64-linux-gnu/libaio.so.1t64 /lib/x86_64-linux-gnu/libaio.so.1

image-20241028194912390

这里介绍查找方法;

找一台和你镜像一样,或者操作系统版本一样的可以联网的机器;

apt search libaio

image-20241028182214358

去/var/cache/apt/archives/ 下找到这个离线deb包; 在离线环境下就可以直接dpkg -i 安装这个依赖包了

注:如果不安装此依赖,后续初始化mysql数据库时会提示缺少此依赖,官网教程中也特意提到要安装这个依赖。

3.3.4 初始化Mysql数据库

1

2

3

4

cd /dcsm/mysql

 

# 初始化

bin/mysqld --initialize --user=mysql --basedir=/dcsm/mysql --datadir=/dcdata/mysql/data --log-error=/dcdata/mysql/log/mysqld.log

image-20241028190817744

注:这是ubuntu24.04 上的坑。系统的 libaio.so.1 软连接的地址不存在;

解决方法就是重新建立一个软链接

1

ln -s /lib/x86_64-linux-gnu/libaio.so.1t64 /lib/x86_64-linux-gnu/libaio.so.1

3.3.5 编辑my.cnf

/etc/my.cnf

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

[mysqld]

# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.

#innodb_buffer_pool_size = 128M

# join_buffer_size = 128M

# sort_buffer_size = 2M

# read_rnd_buffer_size = 2M

basedir=/dcsm/mysql

datadir=/dcdata/mysql/data

socket=/dcdata/mysql/lib/mysql.sock

port=3306

log-error=/dcdata/mysql/log/mysqld.log

pid-file=/dcdata/mysql/run/mysqld.pid

 

# 开启远程,类似dblink

federated

log_bin_trust_function_creators=1

# 时间跟随本地

log_timestamps=system

# 允许最大连接数

max_connections=2000

# 关闭binlog日志

skip-log-bin

 

[mysql]

socket=/dcdata/mysql/lib/mysql.sock

3.3.6 配置环境变量

1

2

3

4

5

6

7

8

### 添加到系统服务中

cp /dcsm/mysql/support-files/mysql.server /etc/init.d/mysql  && chmod +x /etc/init.d/mysql

 

### 配置到环境变量中

echo "/dcsm/mysql/lib" >>/etc/ld.so.conf &&

echo "#MYSQL ENVIRONMENT" >>/etc/profile &&

echo "export PATH=/dcsm/mysql/bin:/dcsm/mysql/lib:\$PATH" >>/etc/profile &&

source /etc/profile

3.3.7 启动mysql

1

2

3

### 重新加载systemd的配置信息

systemctl daemon-reload

systemctl start mysql

image-20241028195723970

设置开机启动

1

systemctl enable mysql

3.3.8 登录mysql

获取初始化密码

1

grep 'temporary password' /dcdata/mysql/log/mysqld.log | awk '{print $NF}'

image-20241028195933800

3.3.8.1 创建root

创建mysql账号root,并设置密码

1

mysql --connect-expired-password -uroot -p

然后输入上述密码;

连上mysql后,修改root密码,

1

ALTER USER ‘root'@‘localhost' IDENTIFIED WITH mysql_native_password BY ‘MyNewPass';

image-20241028201140959

原因参考:[MySQL8.0.34 开始被弃用mysql_native_password插件](https://dev.mysql.com/doc/refman/8.4/en/native-pluggable-authentication.html#:~:text=MySQL client programs in MySQL 8.4 (and later),what is desired%2C like this%3A %24> mysql --default-auth%3Dmysql_native_password)

3.3.8.2 Plugin ‘mysql_native_password’ is not load 两种解决办法

重新启动该插件(不推荐)

具体做法就是修改my.cnf 文件

image-20241028201541964

重启mysql,即可生效;

使用官方推荐方式

1

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

3.3.8.3 授权

1

use mysql; update user set host = '%' where user ='root'; flush privileges;

至此部署完成~

四、快速部署脚本

该脚本适用于快速部署使用,请注意安装包版本与系统版本;

我用的是ubuntu24.04, mysql8.4.3tls

vim deploy_mysql.sh

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

#!/bin/bash

 

### 假设安装包已上传到/root下

 

### 解压软件包

mkdir /dcsm

tar -xvf /root/mysql-8.4.3-linux-glibc2.28-x86_64.tar.xz -C /dcsm

cd /dcsm && mv mysql-8.4.3-linux-glibc2.28-x86_64/ mysql

 

### 创建 mysql 用户与用户组

if [ $(cat /etc/passwd | cut -f1 -d':' | grep -w "mysql" -c) -eq 0 ]; then

    groupadd mysql && useradd -r -g mysql -s /bin/false mysql

fi

 

### 授权安装文件夹

mkdir -p /dcdata/mysql/log && mkdir -p /dcdata/mysql/data && mkdir -p /dcdata/mysql/run && mkdir -p /dcdata/mysql/lib

chown -R mysql:mysql /dcsm/mysql && chown -R mysql:mysql /dcdata/mysql

 

### 建立软链接

ln -s /lib/x86_64-linux-gnu/libaio.so.1t64 /lib/x86_64-linux-gnu/libaio.so.1

 

### 初始化 Mysql

cd /dcsm/mysql

 

bin/mysqld --initialize --user=mysql --basedir=/dcsm/mysql --datadir=/dcdata/mysql/data --log-error=/dcdata/mysql/log/mysqld.log

 

# 3.3.5 编辑 my.cnf

cat <<EOF > /etc/my.cnf

[mysqld]

# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.

#innodb_buffer_pool_size = 128M

# join_buffer_size = 128M

# sort_buffer_size = 2M

# read_rnd_buffer_size = 2M

basedir=/dcsm/mysql

datadir=/dcdata/mysql/data

socket=/dcdata/mysql/lib/mysql.sock

port=3306

log-error=/dcdata/mysql/log/mysqld.log

pid-file=/dcdata/mysql/run/mysqld.pid

 

# 开启远程,类似 dblink

federated

log_bin_trust_function_creators=1

# 时间跟随本地

log_timestamps=system

# 允许最大连接数

max_connections=2000

# 关闭 binlog 日志

skip-log-bin

 

[mysql]

socket=/dcdata/mysql/lib/mysql.sock

EOF

 

### 配置环境变量

cp /dcsm/mysql/support-files/mysql.server /etc/init.d/mysql && chmod +x /etc/init.d/mysql

echo "/dcsm/mysql/lib" >>/etc/ld.so.conf

echo "#MYSQL ENVIRONMENT" >>/etc/profile

echo "export PATH=/dcsm/mysql/bin:/dcsm/mysql/lib:\$PATH" >>/etc/profile

source /etc/profile

 

### 启动 mysql

systemctl daemon-reload

systemctl start mysql

systemctl enable mysql

 

### mysql修改密码 并允许远程

initial_password=$(grep 'temporary password' /dcdata/mysql/log/mysqld.log | awk '{print $NF}')

mysql --connect-expired-password -uroot -p"$initial_password" <<EOF

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

use mysql; update user set host = '%' where user ='root'; flush privileges;

EOF

 

source /etc/profile

脚本授权

1

chmod +x deploy_mysql.sh

执行部署

1

./deploy_mysql.sh

image-20241028203200087

连接成功;

image-20241028203119358


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • MYSQL批量UPDATE的两种方式介绍
    工作中遇到批量更新的场景其实是比较常见的。 但是该如何正确的进行批量UPDATE,很多时候往往有点头大。 这里列2种可用的方式,供选择
  • mysql中general_log日志的实现介绍
    1.记录范围:这个log里面会记录MySQL所有的SQL语句,不管是查询语句,还是DML语句,还是DDL语句,还是DCL语句,这些语句统统都会被记录在
  • Mysql8.4.3LTS中离线部署的实现

    Mysql8.4.3LTS中离线部署的实现
    一、部署环境 软件:mysql8.4.3LTS 系统:ubuntu24.04 资源配置 资源分配的大小与业务系统的体量有关系;所以没有固定 CPU:2核 内存:4 GB 磁盘
  • Navicat连接MySQL出现2059错误的解决方案介绍
    Navicat连接MySQL出现2059错误 在Navicat中连接MySQL时遇到错误代码2059,这表示MySQL服务器不接受Navicat客户端提供的加密插件。 MySQL 8.0 及以上版本
  • mysql时间戳格式化yyyy-mm-dd的使用介绍

    mysql时间戳格式化yyyy-mm-dd的使用介绍
    格式化到 年月日 1 2 3 4 # 将时间换成列名就行;当前是秒级时间戳,如果是毫秒的 / 1000即可 # SELECT FROM_UNIXTIME(1602668106666.777888999 / 1000,%Y-%m
  • mysql-8.0.15-winx64安装与修改密码方式介绍

    mysql-8.0.15-winx64安装与修改密码方式介绍
    第一步:下载 移步官网:https://www.mysql.com/downloads/下载一个压缩包(个人版) 第二步:安装 解压安装包,根据自己的喜好选择路径 将安装
  • mysql中Innodb行锁实现原理介绍
    一、Innodb行锁的实现 【1】Innodb的行锁是通过给索引的索引项加锁来实现的 【2】Innodb按照辅助索引进行数据操作时,辅助索引和主键索引都将
  • windows-mysql8.0.15如何修改密码、重置密码

    windows-mysql8.0.15如何修改密码、重置密码
    windows-mysql8.0.15 修改密码、重置密码 打开命令窗口cmd 输入命令:net stop mysql,停止MySQL服务。 1 net stop mysql 如果出现下图提示,就则需要用管
  • Mysql主从同步怎么重置

    Mysql主从同步怎么重置
    服务器强制重启,导致MySQL主从数据库出现数据不一致问题,主从数据库数据相差较大,无法完成数据同步,出现报错。 因此,需要进行主
  • MySQL中关于表的约束介绍

    MySQL中关于表的约束介绍
    一、空属性 在MySQL中,空属性约束指定了某一列是否可以包含NULL值。 它们用于各种目的,例如数据验证和限制数据的输入格式。 NOT NULL:当
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计