@@ -139,6 +139,15 @@ CFG=/etc/my.cnf.d/node.cnf
139139TLS_DIR=/etc/mysql/mysql-tls-secret
140140CUSTOM_CONFIG_FILES=(" /etc/mysql/config/auto-config.cnf" " /etc/mysql/config/my-config.cnf" " /etc/mysql/config/my-secret.cnf" )
141141
142+ if [[ ${HOSTNAME} =~ " -xb-" ]]; then
143+ FQDN=${HOSTNAME}
144+ else
145+ CLUSTER_NAME=" $( echo ${HOSTNAME% -[0-9]} ) "
146+ SERVER_NUM=${HOSTNAME/ $CLUSTER_NAME -/ }
147+ SERVER_ID=${CLUSTER_HASH}${SERVER_NUM}
148+ FQDN=" ${HOSTNAME} .${SERVICE_NAME} .$( < /var/run/secrets/kubernetes.io/serviceaccount/namespace) "
149+ fi
150+
142151install_keyring_component () {
143152 echo -n ' { "components": "file://component_keyring_vault" }' > /var/lib/mysql/mysqld.my
144153 cp ${KEYRING_VAULT_PATH} /var/lib/mysql/component_keyring_vault.cnf
@@ -167,17 +176,6 @@ add_encryption_options() {
167176}
168177
169178create_default_cnf () {
170- POD_IP=$( hostname -I | awk ' {print $1}' )
171-
172- if [[ ${HOSTNAME} =~ " -xb-" ]]; then
173- FQDN=${HOSTNAME}
174- else
175- CLUSTER_NAME=" $( hostname -f | cut -d' .' -f2) "
176- SERVER_NUM=${HOSTNAME/ $CLUSTER_NAME -/ }
177- SERVER_ID=${CLUSTER_HASH}${SERVER_NUM}
178- FQDN=" ${HOSTNAME} .${SERVICE_NAME} .$( < /var/run/secrets/kubernetes.io/serviceaccount/namespace) "
179- fi
180-
181179 echo ' [mysqld]' > $CFG
182180 sed -i " /\[mysqld\]/a read_only=ON" $CFG
183181 sed -i " /\[mysqld\]/a server_id=${SERVER_ID} " $CFG
@@ -218,8 +216,6 @@ create_default_cnf() {
218216}
219217
220218load_group_replication_plugin () {
221- POD_IP=$( hostname -I | awk ' {print $1}' )
222-
223219 sed -i " /\[mysqld\]/a plugin_load_add=group_replication.so" $CFG
224220 sed -i " /\[mysqld\]/a group_replication_exit_state_action=ABORT_SERVER" $CFG
225221}
@@ -229,6 +225,13 @@ ensure_read_only() {
229225 sed -i " /\[mysqld\]/a super_read_only=ON" $CFG
230226}
231227
228+ # Sync node.cnf to /etc/mysql/conf.d so Oracle MySQL image picks it up (it uses !includedir /etc/mysql/conf.d/ only).
229+ sync_node_cnf_for_oracle () {
230+ if [ -d /etc/mysql/conf.d ]; then
231+ cp -f " $CFG " /etc/mysql/conf.d/node.cnf
232+ fi
233+ }
234+
232235escape_special () {
233236 { set +x; } 2> /dev/null
234237 echo " $1 " \
@@ -435,6 +438,7 @@ if [ "$1" = 'mysqld' -a -z "$wantHelp" ]; then
435438
436439 load_group_replication_plugin
437440 ensure_read_only
441+ sync_node_cnf_for_oracle
438442
439443 # exit when MYSQL_INIT_ONLY environment variable is set to avoid starting mysqld
440444 if [ -n " $MYSQL_INIT_ONLY " ]; then
455459
456460if [[ -f /var/lib/mysql/full-cluster-crash ]]; then
457461 set +o xtrace
458- node_name=$( hostname -f )
462+ node_name=${HOSTNAME}
459463 gtid_executed=$( < /var/lib/mysql/full-cluster-crash)
460464 namespace=$( < /var/run/secrets/kubernetes.io/serviceaccount/namespace)
461465
@@ -464,7 +468,7 @@ if [[ -f /var/lib/mysql/full-cluster-crash ]]; then
464468 echo " MySQL pods will be up and running in read only mode."
465469 echo " Latest GTID_EXECUTED on this node is ${gtid_executed} "
466470 echo " If you have spec.mysql.autoRecovery disabled, wait for all pods to be up and running and connect to one of them using mysql-shell:"
467- echo " kubectl -n ${namespace} exec -it $( hostname ) -- mysqlsh root:<password>@localhost"
471+ echo " kubectl -n ${namespace} exec -it $FQDN -- mysqlsh root:<password>@localhost"
468472 echo " and run the following command to reboot cluster:"
469473 echo " dba.rebootClusterFromCompleteOutage()"
470474 echo " and delete /var/lib/mysql/full-cluster-crash file in each pod."
0 commit comments