最近在给客户部署Webfunny前端监控和埋点系统的时候,经常会遇到客户要求完全离线安装,所以我将整个离线安装的教程整理下来,这里将介绍如何离线安装Clickhouse数据库。
操作系统:CentOs、Ubantu
要求:机器上已经安装了docker程序
前边有文章已经介绍了如何离线安装docker系统,所以这里的Clickhouse安装也是基于docker来安装和运行的。
一、获取指定版本的Mysql镜像
本地拉取镜像:docker pull mysql:8.0.32
二、将镜像打包为tar文件,然后上传
执行打包:docker save -o mysql8.0.32.tar mysql:8.0.32
将打包后的文件上传到离线服务器上
三、离线服务器加载镜像文件
执行加载:docker load -i mysql8.0.32.tar
, 加载完成后,就可以看到镜像文件了
四、创建挂载目录
执行:mkdir
-p /data/docker/mysql/conf
执行:mkdir
-p /data/docker/mysql/data
执行:mkdir
-p /data/docker/mysql/log
五、进行跨越权限运行
首次运行,root无法使用密码登录,所以先进行越权登录
docker run -p 3306:3306 --name mysql8 \
--privileged=true \
-e MYSQL_ROOT_PASSWORD=123456 \
-v /usr/local/docker/mysql/mysql-files:/var/lib/mysql-files \
-v /data/docker/mysql/log:/var/log/mysql \
-v /data/docker/mysql/data:/var/lib/mysql \
-v /data/docker/mysql/conf:/etc/mysql/conf \
-d mysql:8.0.32 \
--skip-grant-tables
六、设置权限
执行:mysql -u root 进入命令行
执行:FLUSH PRIVILEGES; 刷新权限
创建用户,并设置权限:
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%';
FLUSH PRIVILEGES;
七、修改 MySQL 用户的认证插件
当你尝试连接 MySQL 8 时,遇到错误提示 Public Key Retrieval is not allowed
,这通常是由于 MySQL 8 默认使用了 caching_sha2_password
认证插件,而客户端未能正确处理该插件所需的公钥检索。
修改 root
用户的认证插件:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your_password'; FLUSH PRIVILEGES;
八、正常运行
docker run -p 3306:3306 --name mysql8 \
--privileged=true \
-v /usr/local/docker/mysql/mysql-files:/var/lib/mysql-files \
-v /data/docker/mysql/log:/var/log/mysql \
-v /data/docker/mysql/data:/var/lib/mysql \
-v /data/docker/mysql/conf:/etc/mysql/conf \
-d mysql:8.0.32 \
--skip-grant-tables