参考文档
Ubuntu中使用apt下载离线包以及相关依赖包 - 厚礼蝎 - 博客园 (cnblogs.com)
ubuntu18.04安装mysql8.0详细教程及踩坑解决方法(包含删除Mysql5.7版本方法)_ubuntu编译安装mysql-CSDN博客
如何配置MySQL8中的lower_case_table_names来让其忽略大小写? – 就是这个范儿 (thisfaner.com)
背景介绍
文档是在个人环境中复现一遍,并非实际生产环境的步骤,因为生产环境涉及公司敏感数据。
接到一个需求要在没有网络环境的Ubuntu 18.04.5 LTS机器上安装MySQL8.x版本,用于作为BI工具的数据存储。
MySQL官网下载列表中没有Ubuntu 18.04 对应的MySQL8.x版本的包,如下图所示
环境说明
网络:机器上没有网络,apt虽然做了代理但是无法获取apt的签名,因为签名需要网络环境
操作系统:Ubuntu 18.04.5 LTS
特殊配置:lower_case_table_names=1 (忽略大小写)
lower_case_table_names 的值:
如果设置为 0,表名将按指定方式存储,并且在对比表名时区分大小写。
如果设置为 1,表名将以小写形式存储在磁盘上,在对比表名时不区分大小写。
如果设置为 2,则表名按给定格式存储,但以小写形式进行比较。
IP地址 | 角色 | 主机名 | 目的 |
---|---|---|---|
10.0.0.10 | 有网络 | havenetwork | 制作离线安装包 |
10.0.0.11 | 无网络 | notnetwork | 需要安装mysql8.0的目标机器 |
解决思路:
通过aptitude的方式在有网络的Ubuntu 18.04机器下载好MySQL8.0的包并打包压缩传送到无网络环境的机器上进行安装。
操作步骤
获取mysql8.0的apt缓存包 ---> 发送到目标机器 ---> 设置lower_case_table_names=1 --->安装 ---> 安装后验证
制作离线包
# 安装aptitude
root@havenetwork:~# apt install aptitude
# 下载存储库软件包
root@havenetwork:~# wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.10-1_all.deb
# 安装 (安装过程中提示选择安装版本,默认安装的就是8.0版本,所以直接选择“OK”确认即可)
root@havenetwork:~# dpkg -i mysql-apt-config_0.8.10-1_all.deb
root@havenetwork:~# apt update
# 如果出现下面错误则需要添加仓库签名
W: GPG error: http://repo.mysql.com/apt/ubuntu focal InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY B7B3B788A8D3785C
# 添加仓库签名
root@havenetwork:~# apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B7B3B788A8D3785C
# 继续 apt update
root@havenetwork:~# apt update
# 使用方法
root@havenetwork:~# aptitude --download-only install mysql-server
# 文件下载的位置(这里跟yum的工具还不一样,yum可以直接下载到指定文件夹, aptitude只能下载到 /var/cache/apt/archives 目录下,目录下.deb结尾的就是)
# 安装命令
dpkg -i *.deb
发送到目标机器
cd /var/cache/apt/archives
mkdir mysql_8.0
mv mysql-* mysql_8.0/
tar -zcvf mysql_8.0.tar.gz mysql_8.0/*
scp mysql_8.0.tar.gz [email protected]:/root/
设置lower_case_table_names
在MySQL数据库中我们可以通过配置
lower_case_table_names=1
来让其忽略大小写。在 MySQL 8 以下版本我们很好配置,但在 MySQL 8 中配置起来却有些麻烦。必须在初始化 MySQL 服务器(安装 MySQL 后的首次启动)之前将lower_case_table_names
配置为所需的值。 在大多数情况下,这需要在首次启动 MySQL 服务器之前在 MySQL 配置文件中设置lower_case_table_names
。但是,当你在 Debian 和 Ubuntu 使用 APT 安装 MySQL 时,系统将自动为您初始化 MySQL,并且没有机会事先在配置文件中设置该值。因此,在使用 APT 安装 MySQL 之前, 必须使用
debconf-set-selection
实用程序来启用小写的表名。为此,请在使用 APT 安 装 MySQL 之前运行此命令(官方给出的命令)
sudo debconf-set-selections <<< "mysql-server mysql-server/lowercase-table-names select Enabled"
在 MySQL 8 中,数据目录初始化之后,不再允许更改 lower_case_table_names = 1
的 值;
MySQL 基于某些原因,禁止在重新启动 MySQL 服务时将 lower_case_table_names
设置 成不同于初始化 MySQL 服务时设置的 lower_case_table_names
值。
也就是说启动(重启)MySQL 时,lower_case_table_names
的值必须于,初始化 MySQL 时(安装 MySQL 后的首次启动)的值相同。
输入之后会出现选择加密方式的提示界面,我在网上的教程中看到默认的mysql8.0的加密方式与ubuntu18.04 不兼容,所以选择5.x的加密方式;建议选择下边的那个:
安装
root@notnetwork:~# tar -zxvf mysql_8.0.tar.gz
mysql_8.0/libevent-core-2.1-7_2.1.11-stable-1_arm64.deb
mysql_8.0/libevent-pthreads-2.1-7_2.1.11-stable-1_arm64.deb
mysql_8.0/libhtml-template-perl_2.97-1_all.deb
mysql_8.0/libmecab2_0.996-10build1_arm64.deb
mysql_8.0/mecab-ipadic_2.7.0-20070801+main-2.1_all.deb
mysql_8.0/mecab-ipadic-utf8_2.7.0-20070801+main-2.1_all.deb
mysql_8.0/mecab-utils_0.996-10build1_arm64.deb
mysql_8.0/mysql-client-8.0_8.0.35-0ubuntu0.20.04.1_arm64.deb
mysql_8.0/mysql-client-core-8.0_8.0.35-0ubuntu0.20.04.1_arm64.deb
mysql_8.0/mysql-common_5.8+1.0.5ubuntu2_all.deb
mysql_8.0/mysql-server_8.0.35-0ubuntu0.20.04.1_all.deb
mysql_8.0/mysql-server-8.0_8.0.35-0ubuntu0.20.04.1_arm64.deb
mysql_8.0/mysql-server-core-8.0_8.0.35-0ubuntu0.20.04.1_arm64.deb
root@notnetwork:~# cd mysql_8.0/
root@notnetwork:~/mysql_8.0#
root@notnetwork:~/mysql_8.0#
root@notnetwork:~/mysql_8.0# ls
libevent-core-2.1-7_2.1.11-stable-1_arm64.deb mysql-client-8.0_8.0.35-0ubuntu0.20.04.1_arm64.deb
libevent-pthreads-2.1-7_2.1.11-stable-1_arm64.deb mysql-client-core-8.0_8.0.35-0ubuntu0.20.04.1_arm64.deb
libhtml-template-perl_2.97-1_all.deb mysql-common_5.8+1.0.5ubuntu2_all.deb
libmecab2_0.996-10build1_arm64.deb mysql-server_8.0.35-0ubuntu0.20.04.1_all.deb
mecab-ipadic_2.7.0-20070801+main-2.1_all.deb mysql-server-8.0_8.0.35-0ubuntu0.20.04.1_arm64.deb
mecab-ipadic-utf8_2.7.0-20070801+main-2.1_all.deb mysql-server-core-8.0_8.0.35-0ubuntu0.20.04.1_arm64.deb
mecab-utils_0.996-10build1_arm64.deb
root@notnetwork:~/mysql_8.0# dpkg -i *.deb
省略......
如果第一次执行报错,请再执行一次,因为第一次会报错缺少某些依赖,这是因为安装顺序导致的。
root@notnetwork:~/mysql_8.0# netstat -ntpl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 5097/mysqld
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 792/systemd-resolve
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 861/sshd: /usr/sbin
tcp 0 0 127.0.0.1:33060 0.0.0.0:* LISTEN 5097/mysqld
tcp6 0 0 :::22 :::* LISTEN 861/sshd: /usr/sbin
root@notnetwork:~/mysql_8.0#
安装后验证
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 447
Server version: 8.0.33 MySQL Community Server - GPL
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show variables like 'lower_case_table_names';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| lower_case_table_names | 1 |
+------------------------+-------+
1 row in set (0.01 sec)
mysql>
标签:8.0,MySQL,离线,mysql8.0,arm64,ubuntu18,mysql,deb,root
From: https://www.cnblogs.com/liushiya/p/17921519.html