关于在香橙派安装mysql时遇到的坑

news/2024/7/24 7:35:51 标签: mysql, 数据库, docker

前言

基础环境:
	硬件:香橙派5
	操作系统:openkylin
	cpu架构:arm
过程:
	最近有个任务,要在新的环境中验证一些服务是否可用。目的时向全国产化靠拢。
需要在香橙派上安装openkylin,一开始尝试的是香橙派3b,发现其不支持
openkylin。后经过查看,发现香橙派5可以安装openkylin。
	但是因为系统是20237月份刚刚出的,所以在过程中碰到了非常多的问题。
	这里记录一下mysql方面的问题。
	这里先说解决方案。然后再挨个的展示碰到的问题。(在2023831之时有这个
问题,但是这个问题可能会随着系统更新被修复。)

解决办法

拉取arm架构下的镜像版本

	使用docker来安装mysql8.0.29(这个版本的mysql用了快两年半了,没有出现
过什么大问题)
	使用docker命令:docker pull mysql:8.0.29 --platform=aarch64来指
定使用arm64平台的镜像。如果不加platform参数,一般默认是x86,不可以运行在
arm平台。

运行镜像

	拉取成功后,运行镜像:
	docker run -p 3306:3306 --name mysql --restart=always --privileged=true \
-v /opt/work/mysql/mysqld.log:/var/log/mysqld.log \
-v /opt/work/mysql/data:/var/lib/mysql \
-v /opt/work/mysql/conf:/etc/mysql \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.29

--name 指定的是docker容器的名称;
--restart 表示容器随着docker的启动而启动;
--privileged 表示获取root权限;
-p 表示映射主机与容器内的端口;
-v 表示挂载宿主机与容器内的文件;
-d 表示使用那个镜像;
-e 表示指定环境变量。

进入镜像修改设置

1:进入对应的容器
docker exec -it 【CONTAINER ID/bin/bash
2:进入mysql命令行
mysql -u root -p
3:切换数据库:use mysql;
4:查看一些配置:select Host, User, plugin from user where 1=1;
+-----------+------------------+-----------------------+
| Host      | User             | plugin                |
+-----------+------------------+-----------------------+
| %         | root             | mysql_native_password |
| localhost | mysql.infoschema | caching_sha2_password |
| localhost | mysql.session    | caching_sha2_password |
| localhost | mysql.sys        | caching_sha2_password |
| localhost | root             | caching_sha2_password |
+-----------+------------------+-----------------------+
5 rows in set (0.00 sec)
	# 可以看到root分为本地登录和可以在任何地方登录。他们的默认的plugin都是
caching_sha2_password (root@%的提前被我改过了),这是MySQL8.0之后默
认的认证方式。
	# 如果你用的还是老旧的MySQL客户端工具或命令工具可能会发生如下报错:
error 2059: Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib64/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory
5:可以用以下命令修改:
ALTER USER 'user'@'host' IDENTIFIED WITH mysql_native_password BY 'password';
eg:	ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
6:使用命令:flush privileges; 刷新权限。
7:退出mysql,即可正常连接。

所遇问题:

mysqlserver_73">mysql-server无法安装

在这里插入图片描述

显示为满足依赖的关系。
单独尝试安装libmecab2报如下错误。
这个错误描述并不准确,应当是这个软件包还没有被移植到openkylin这里。
甚至在“ubuntu update”里也只能找到x86的安装包,没有找到arm64的安装包。

在这里插入图片描述

docker_84">docker镜像平台问题

直接使用命令:
	dokcer pull mysql:8.0.29
以上命令拉拉取下来的镜像默认是x86架构的。会报如下错误:
WARNING: The requested image's platform (linux/arm64/v8) does not match the detected host platform (linux/amd64) and no specific platform was requested

在这里插入图片描述

所以要用参数“platform” 来指定系统指令架构集。
docker pull mysql:8.0.29 --platform=aarch64

运行起来镜像后,连接MySQL报错。

在这里插入图片描述

	这个报错是因为从MySQL8.0后,根据美国国家标准和技术协会给出的建议,将原来的SHA-1算法,改成了SHA2/3系列的算法。但是一些老旧的图形化客户端只支持 “mysql_native_password ”。
	MySQL8.0后,默认的是:“caching_sha2_password”。
	所以需要运行上述命令修改对应用户的 “plugin” 字段。


http://www.niftyadmin.cn/n/4990645.html

相关文章

在Ubuntu Linux系统上安装RabbitMQ服务并解决公网远程访问问题

文章目录 前言1.安装erlang 语言2.安装rabbitMQ3. 内网穿透3.1 安装cpolar内网穿透(支持一键自动安装脚本)3.2 创建HTTP隧道 4. 公网远程连接5.固定公网TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 前言 RabbitMQ是一个在 AMQP(高级消息队列协议)基…

用百度云怎么重装电脑系统

用百度云怎么重装电脑系统 随着云计算技术的飞速发展,百度云成为了人们日常生活中不可或缺的一部分。百度云不仅提供了强大的文件存储和传输功能,还可以帮助人们轻松地重装电脑系统。下面就让我们来介绍一下如何用百度云重装电脑系统。 步骤一&#xf…

kmeans常见考点

1、kmeans简介 k均值聚类算法(k-means clustering algorithm)是一种迭代求解的聚类分析算法,其步骤是,预将数据分为K组,则随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离…

centos 7的超详细安装教程

打开虚拟机,创建一个新电脑 我们选择经典,然后选择下一步 我们选择稍后安装,我们在后面进行改设备 因为centos系统是linux系统的一个版本,所有我们选择linux,版本选择centos 7 64位,然后就是点击下一步 这一…

StarRocks入门到熟练

1、部署 1.1、注意事项 需要根据业务需求设计严谨的集群架构,一般来说,需要注意以下几项: 1.1.1、FE数量及高可用 FE的Follower要求为奇数个,且并不建议部署太多,通常我们推荐部署1个或3个Follower。在三个Followe…

Java 16进制字符串转换成GBK字符串

问题: 现在已知有一个16进制字符串 435550D3C3D3DAD4DABDBBD2D7CFECD3A6CFFBCFA2D6D0B4E6B7C5D5DBBFDBD0C5CFA2A3ACD5DBBFDBBDF0B6EE3130302E3036 而且知道这串的字符串对应的内容是: CUP用于在交易响应消息中存放折扣信息,折扣金额100.06 但…

Winform绘制TreeView树形结构

创建组件:ZHTestTreeView using System; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;…

YGG 的声誉和进步 (RAP):玩家晋升的下一个层级

自从公会发展计划 (GAP) 开始跟踪玩家在公会中的参与情况和技能发展以来,人们就认识到需要有一个系统来保存这些活动的记录,这是协调 web3 生态系统中有意义活动的重要组成部分。 随着 YGG 的不断发展,跟踪成员贡献和活动的声誉系统将有助于…