容器内mysql无法启动解决方案
容器内无法启动mysql,导致console无法启动。可以通过访问宿主机的mysql绕过容器内启动mysql的问题。
操作步骤如下:
清空geaflow-console的容器,关闭宿主机MySQL以恢复到初始状态。
# 查看容器id
docker ps -a
# 删除容器
docker rm [container-id]
# 查找mysql相关进程号
ps -ef | grep mysql
# 结束MySQL进程
kill [pid]
第一步:启动geaflow-console容器
docker run -d --net=host --name geaflow-console -p 8080:8080 -p 8888:8888 -p 6379:6379 -p 8086:8086 -e geaflow.host=${your.host.name} -e geaflow.web.gateway.url=http://${your.public.ip}:8080 geaflow-console:0.1
注:加上–net=host参数使得容器和宿主机互通,去掉-p 3306:3306映射以便访问宿主机MySQL
第二步:如有,关闭geaflow-console容器内的MySQL
# 查看容器id
docker ps -a
# 从宿主机进入容器
docker exec -it [container-id] bash
# 查找mysql相关进程号
ps -ef | grep mysql
# 结束MySQL进程
kill [pid]
第三步:在宿主机启动MySQL
# 从容器退出到宿主机
exit
# 如果没有安装mysql,则安装mysql
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
yum -y install mysql-community-server
mysqld --initialize-insecure --user=mysql
# 启动mysql
nohup mysqld --user=mysql &>> /var/lib/mysql/mysqld.log &
第四步:在宿主机MySQL建立geaflow数据库,授权
# 打开mysql shell
mysql
# 建立geaflow数据库
create database geaflow;
# 授权
CREATE USER IF NOT EXISTS geaflow IDENTIFIED BY 'geaflow';
GRANT ALL ON *.* TO 'geaflow'@'%';
FLUSH PRIVILEGES;
第五步:回到console容器内,重启geaflow-console java进程
# 查看容器id
docker ps -a
# 从宿主机进入容器
docker exec -it [container-id] bash
# 检查容器内连接宿主机MySQL是否成功
curl http://${your.host.name}:3306
连接宿主机MySQL成功如图:
# 查找geaflow-console java进程号
ps -ef |grep java
# 结束geaflow-console java进程
kill [pid]
# 重启geaflow-console java进程
java -Xmx4096m -cp /opt/geaflow/boot/geaflow-console-bootstrap.jar:/opt/geaflow/config org.springframework.boot.loader.JarLauncher
结果:访问console端口,查看console界面是否启动 进入容器等待geaflow-web进程启动完成后,访问 ${your.public.ip}:8888 进入GeaFlow Console平台页面。
GeaFlow(品牌名TuGraph-Analytics) 已正式开源,欢迎大家关注!!!
欢迎给我们 Star 哦!
Welcome to give us a Star!
GitHub👉https://github.com/TuGraph-family/tugraph-analytics
微信群
请点击项目链接下方微信二维码添加微信用户群:https://github.com/TuGraph-family/tugraph-analytics