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

前言

基础环境:
	硬件:香橙派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,即可正常连接。

所遇问题:

mysql-server无法安装

关于在香橙派安装mysql时遇到的坑_第1张图片

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

关于在香橙派安装mysql时遇到的坑_第2张图片

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报错。

关于在香橙派安装mysql时遇到的坑_第3张图片

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

你可能感兴趣的:(linux,运维部署,SQL,mysql,数据库,docker)