mirror of
https://github.com/alibaba/canal.git
synced 2026-11-04 00:30:15 +08:00
fixed arm64 , support mysql 8.0
This commit is contained in:
@@ -30,6 +30,8 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>mysql</groupId>
|
<groupId>mysql</groupId>
|
||||||
<artifactId>mysql-connector-java</artifactId>
|
<artifactId>mysql-connector-java</artifactId>
|
||||||
|
<!-- 支持arm64需要mysql 8.0,升级为8.0的新版驱动 -->
|
||||||
|
<version>8.0.33</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.github.ben-manes.caffeine</groupId>
|
<groupId>com.github.ben-manes.caffeine</groupId>
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
# amd64
|
# amd64
|
||||||
FROM centos:centos7.9.2009@sha256:dead07b4d8ed7e29e98de0f4504d87e8880d4347859d839686a31da35a3b532f
|
FROM centos:centos7.9.2009@sha256:dead07b4d8ed7e29e98de0f4504d87e8880d4347859d839686a31da35a3b532f
|
||||||
# arm64
|
|
||||||
#FROM centos:centos7.9.2009@sha256:73f11afcbb50d8bc70eab9f0850b3fa30e61a419bc48cf426e63527d14a8373b
|
|
||||||
|
|
||||||
ARG jdk_rpm
|
ARG jdk_rpm
|
||||||
ARG platform_env
|
ARG platform_env
|
||||||
|
|||||||
@@ -7,7 +7,8 @@ RUN \
|
|||||||
groupadd -r mysql && useradd -r -g mysql mysql && \
|
groupadd -r mysql && useradd -r -g mysql mysql && \
|
||||||
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm && \
|
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm && \
|
||||||
rpm -ivh mysql80-community-release-el7-3.noarch.rpm && \
|
rpm -ivh mysql80-community-release-el7-3.noarch.rpm && \
|
||||||
yum install mysql-community-server --nogpgcheck -y && \
|
yum install sudo mysql-community-server --nogpgcheck -y && \
|
||||||
|
rm -f mysql80-community-release-el7-3.noarch.rpm && \
|
||||||
yum clean all && \
|
yum clean all && \
|
||||||
true
|
true
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,8 @@ RUN \
|
|||||||
groupadd -r mysql && useradd -r -g mysql mysql && \
|
groupadd -r mysql && useradd -r -g mysql mysql && \
|
||||||
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm && \
|
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm && \
|
||||||
rpm -ivh mysql80-community-release-el7-3.noarch.rpm && \
|
rpm -ivh mysql80-community-release-el7-3.noarch.rpm && \
|
||||||
yum install mysql-community-server --nogpgcheck -y && \
|
yum install sudo mysql-community-server-8.0.32 --nogpgcheck -y && \
|
||||||
|
rm -f mysql80-community-release-el7-3.noarch.rpm && \
|
||||||
yum clean all && \
|
yum clean all && \
|
||||||
true
|
true
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
set +e
|
||||||
|
|
||||||
source /etc/profile
|
source /etc/profile
|
||||||
export JAVA_HOME=/usr/java/latest
|
export JAVA_HOME=/usr/java/latest
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
set +e
|
||||||
|
|
||||||
source /etc/profile
|
source /etc/profile
|
||||||
export JAVA_HOME=/usr/java/latest
|
export JAVA_HOME=/usr/java/latest
|
||||||
@@ -94,37 +94,45 @@ function start_mysql() {
|
|||||||
MYSQL_ROOT_PASSWORD=Hello1234
|
MYSQL_ROOT_PASSWORD=Hello1234
|
||||||
# connect local mysql
|
# connect local mysql
|
||||||
if [ -z "$(ls -A /var/lib/mysql)" ]; then
|
if [ -z "$(ls -A /var/lib/mysql)" ]; then
|
||||||
mysql_install_db --user=mysql --datadir=/var/lib/mysql 1>>/tmp/start.log 2>&1
|
|
||||||
# These statements _must_ be on individual lines, and _must_ end with
|
|
||||||
# semicolons (no line breaks or comments are permitted).
|
|
||||||
# TODO proper SQL escaping on ALL the things D:
|
|
||||||
TEMP_FILE='/tmp/init.sql'
|
TEMP_FILE='/tmp/init.sql'
|
||||||
echo "update mysql.user set password=password('${MYSQL_ROOT_PASSWORD}') where user='root';" >> $TEMP_FILE
|
echo "ALTER USER 'root'@'localhost' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}';" >> $TEMP_FILE
|
||||||
echo "grant all privileges on *.* to 'root'@'%' WITH GRANT OPTION ;" >> $TEMP_FILE
|
/usr/sbin/mysqld --initialize --user=mysql --datadir=/var/lib/mysql --init-file=/tmp/init.sql --default-authentication-plugin=mysql_native_password 1>>/tmp/start.log 2>&1
|
||||||
|
echo "default-authentication-plugin=mysql_native_password" >> /etc/my.cnf
|
||||||
|
# systemctl start mysqld
|
||||||
|
sudo -u mysql /usr/sbin/mysqld &
|
||||||
|
sleep 5
|
||||||
|
checkStart "mysql" "echo 'show status' | mysql -b -s -h127.0.0.1 -P3306 -uroot -p${MYSQL_ROOT_PASSWORD} | grep -c Uptime" 30
|
||||||
|
# init file
|
||||||
|
rm -f $TEMP_FILE
|
||||||
echo "create database if not exists $MYSQL_DATABASE ;" >> $TEMP_FILE
|
echo "create database if not exists $MYSQL_DATABASE ;" >> $TEMP_FILE
|
||||||
echo "create user $MYSQL_USER identified by '$MYSQL_USER_PASSWORD' ;" >> $TEMP_FILE
|
echo "create user $MYSQL_USER identified by '$MYSQL_USER_PASSWORD' ;" >> $TEMP_FILE
|
||||||
echo "grant all privileges on $MYSQL_DATABASE.* to '$MYSQL_USER'@'%' identified by '$MYSQL_USER_PASSWORD' ;" >> $TEMP_FILE
|
echo "grant all privileges on $MYSQL_DATABASE.* to '$MYSQL_USER'@'%' ;" >> $TEMP_FILE
|
||||||
echo "grant all privileges on $MYSQL_DATABASE.* to '$MYSQL_USER'@'localhost' identified by '$MYSQL_USER_PASSWORD' ;" >> $TEMP_FILE
|
|
||||||
echo "flush privileges;" >> $TEMP_FILE
|
echo "flush privileges;" >> $TEMP_FILE
|
||||||
service mysqld start
|
# init user
|
||||||
checkStart "mysql" "echo 'show status' | mysql -s -h127.0.0.1 -P3306 -uroot | grep -c Uptime" 30
|
cmd="mysql -h127.0.0.1 -uroot -p${MYSQL_ROOT_PASSWORD} -e 'source $TEMP_FILE' 1>>/tmp/start.log 2>&1"
|
||||||
mysql -h127.0.0.1 -uroot -e "source $TEMP_FILE" 1>>/tmp/start.log 2>&1
|
eval $cmd
|
||||||
|
/bin/rm -f /tmp/init.sql
|
||||||
|
# init table
|
||||||
cmd="mysql -h127.0.0.1 -u$MYSQL_USER -p$MYSQL_USER_PASSWORD $MYSQL_DATABASE -e 'source /home/admin/canal-admin/conf/canal_manager.sql' 1>>/tmp/start.log 2>&1"
|
cmd="mysql -h127.0.0.1 -u$MYSQL_USER -p$MYSQL_USER_PASSWORD $MYSQL_DATABASE -e 'source /home/admin/canal-admin/conf/canal_manager.sql' 1>>/tmp/start.log 2>&1"
|
||||||
eval $cmd
|
eval $cmd
|
||||||
/bin/rm -f /home/admin/canal-admin/conf/canal_manager.sql
|
/bin/rm -f /home/admin/canal-admin/conf/canal_manager.sql
|
||||||
else
|
else
|
||||||
|
echo "recover mysql ..."
|
||||||
chown -R mysql:mysql /var/lib/mysql
|
chown -R mysql:mysql /var/lib/mysql
|
||||||
service mysqld start
|
# systemctl start mysqld
|
||||||
|
rm -f /var/lib/mysql/mysql.sock.lock
|
||||||
|
sudo -u mysql /usr/sbin/mysqld &
|
||||||
|
sleep 5
|
||||||
#check start
|
#check start
|
||||||
checkStart "mysql" "echo 'show status' | mysql -b -s -h127.0.0.1 -P3306 -uroot -p$MYSQL_ROOT_PASSWORD | grep -c Uptime" 30
|
checkStart "mysql" "echo 'show status' | mysql -b -s -h127.0.0.1 -P3306 -uroot -p${MYSQL_ROOT_PASSWORD} | grep -c Uptime" 30
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function stop_mysql() {
|
function stop_mysql() {
|
||||||
echo "stop mysql ..."
|
echo "stop mysql ..."
|
||||||
# stop mysql
|
# stop mysql
|
||||||
service mysqld stop
|
# systemctl stop mysqld
|
||||||
|
ps auxf | grep mysqld | grep -v grep | awk '{print $2}' | xargs kill
|
||||||
echo "stop mysql successful ..."
|
echo "stop mysql successful ..."
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -137,7 +145,7 @@ function start_admin() {
|
|||||||
su admin -c 'cd /home/admin/canal-admin/bin/ && sh restart.sh 1>>/tmp/start.log 2>&1'
|
su admin -c 'cd /home/admin/canal-admin/bin/ && sh restart.sh 1>>/tmp/start.log 2>&1'
|
||||||
sleep 5
|
sleep 5
|
||||||
#check start
|
#check start
|
||||||
checkStart "canal" "nc 127.0.0.1 $serverPort -w 1 -z | wc -l" 30
|
checkStart "canal" "nc 127.0.0.1 $serverPort -w 1 -zv 2>/tmp/nc.out && cat /tmp/nc.out | grep -c Connected" 30
|
||||||
}
|
}
|
||||||
|
|
||||||
function stop_admin() {
|
function stop_admin() {
|
||||||
|
|||||||
Reference in New Issue
Block a user