install_mysql.sh: adjustment of some parameters .

This commit is contained in:
Christoph 2023-08-04 13:11:32 +02:00
parent 21198e49e5
commit 22d6f4bd7c

View File

@ -3224,32 +3224,115 @@ collation-server = utf8mb4_general_ci
" >> ${logdir}/main.log
if [[ "$MYSQL_MAJOR_VERSION" -gt 8 ]] \
if [[ "$MYSQL_DISTRIBUTION" = "MariaDB" ]] ; then
echo "
## - sql_mode
## -
## - The default on MariaDB 10.5 installation is:
## -
## - sql-mode = \"STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION\"
## -
## - For now, we will use the default value - iIt seems to be ok.
## -
## -
## - Other defaults on MySQL installations:
## -
## - MySQL 8.0
## -
## - Since Version 8.0.11 NO_AUTO_CREATE_USER is no longer available. The default on 8.0 MySQL
## - installations is
## -
## - sql-mode = \"ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION\"
## -
" >> ${logdir}/main.log
elif [[ "$MYSQL_MAJOR_VERSION" -gt 8 ]] \
|| ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -gt 0 ]] ) \
|| ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -eq 0 ]] \
&& [[ $MYSQL_PATCH_LEVEL -ge 3 ]] ); then
echo "
## - sql_mode
## -
## - Since Version 8.0.11 NO_AUTO_CREATE_USER is no longer available
## - Since Version 8.0.11 NO_AUTO_CREATE_USER is no longer available. The default on 8.0 MySQL
## - installations is
## -
## - For now, we will use the default value, it seems to be ok.
## - sql-mode = \"ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION\"
## -
#sql-mode = \"ONLY_FULL_GROUP_BY,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION\"
## - For now, we will use the default value, without deprecated NO_ZERO_IN_DATE and NO_ZERO_DATE (see below).
## - It seems to be ok.
## -
## -
## - The default on MariaDB 10.5 installation is:
## -
## - sql-mode = \"STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION\"
" >> ${logdir}/main.log
else
echo "
## - sql_mode
## -
## - To be compartible with older programming on mysql 5.6
## - To be compartible with older programming on mysql 5.6 use;
## -
## - sql-mode = \"ONLY_FULL_GROUP_BY,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION\"
## -
#sql-mode = \"ONLY_FULL_GROUP_BY,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION\"
" >> ${logdir}/main.log
fi
echo "
## -
## - The default on 5.7 MySQL installations was:
## -
## - sql-mode = \"ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION\"
## -
## -
## - NOTE (note on version 5.7):
## -
## - NO_ZERO_DATE, NO_ZERO_IN_DATE and ERROR_FOR_DIVISION_BY_ZERO are deprecated, and all of them
## - are not part of strict mode, but should be used in conjunction with strict mode and are enabled
## - by default. A warning occurs if NO_ZERO_DATE or NO_ZERO_IN_DATE is enabled without also enabling
## - strict mode or vice versa. For additional discussion, see SQL Mode Changes in MySQL 5.7.
## -
## -
## - Because NO_ZERO_DATE, NO_ZERO_IN_DATE and ERROR_FOR_DIVISION_BY_ZERO are deprecated, expect it to
## - be removed in a future release of MySQL as a separate mode name and its effect included in the effects
## - of strict SQL mode.
## -
" >> ${logdir}/main.log
if [[ "$MYSQL_DISTRIBUTION" = "MariaDB" ]] ; then
echo "
#sql-mode = \"ONLY_FULL_GROUP_BY,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION\"
" >> ${logdir}/main.log
elif [[ "$MYSQL_MAJOR_VERSION" -gt 8 ]] \
|| ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -gt 0 ]] ) \
|| ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -eq 0 ]] \
&& [[ $MYSQL_PATCH_LEVEL -ge 3 ]] ); then
echo "
sql-mode = \"ONLY_FULL_GROUP_BY STRICT_TRANS_TABLES ERROR_FOR_DIVISION_BY_ZERO NO_ENGINE_SUBSTITUTION\"
" >> ${logdir}/main.log
else
echo "
#sql-mode = \"ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION\"
sql-mode = \"ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION\"
" >> ${logdir}/main.log
fi
## - Which protocols the server permits for encrypted connections. The value is a
## - comma-separated list containing one or more protocol versions. The protocols
## - that can be named for this variable depend on the SSL library used to compile
## - MySQL. Permitted protocols should be chosen such as not to leave 'holes' in the
## - list. For details, see Section 6.3.2, Encrypted Connection TLS Protocols and Ciphers.
## -
## - NOTE:
## - As of MySQL 5.7.35, the TLSv1 and TLSv1.1 connection protocols are deprecated
## - and support for them is subject to removal in a future version of MySQL. See
## - Deprecated TLS Protocols.
## -
tls_version=TLSv1.2,TLSv1.3
## - secure_file_priv
## -
@ -3282,6 +3365,7 @@ collation-server = utf8mb4_general_ci
## - this option.
## -
#secure-file-priv = \"\"
secure-file-priv = \"\"
## - local_infile
@ -3693,7 +3777,8 @@ myisam_sort_buffer_size = 64M
## - Default: 4MB (MySQL 5.6.6), 1MB before that.
## -
#max-allowed-packet = 4M
max-allowed-packet = 32M
#max-allowed-packet = 32M
max-allowed-packet = 128M
## - table_open_cache
@ -4194,9 +4279,12 @@ innodb_read_only_compressed = OFF
[mysqldump]
quick
max-allowed-packet = 32M
max-allowed-packet = 1024M
default-character-set = utf8mb4
net_read_timeout = 120
net_write_timeout = 900
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
@ -4355,7 +4443,30 @@ character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
EOF
if [[ "$MYSQL_MAJOR_VERSION" -gt 8 ]] \
if [[ "$MYSQL_DISTRIBUTION" = "MariaDB" ]] ; then
cat << EOF >> ${MYSQL_INSTALL_DIR}/etc/my.cnf
## - sql_mode
## -
## - The default on MariaDB 10.5 installation is:
## -
## - sql-mode = "STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
## -
## - For now, we will use the default value - iIt seems to be ok.
## -
## -
## - Other defaults on MySQL installations:
## -
## - MySQL 8.0
## -
## - Since Version 8.0.11 NO_AUTO_CREATE_USER is no longer available. The default on 8.0 MySQL
## - installations is
## -
## - sql-mode = "ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
## -
EOF
elif [[ "$MYSQL_MAJOR_VERSION" -gt 8 ]] \
|| ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -gt 0 ]] ) \
|| ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -eq 0 ]] \
&& [[ $MYSQL_PATCH_LEVEL -ge 3 ]] ); then
@ -4363,11 +4474,14 @@ EOF
cat << EOF >> ${MYSQL_INSTALL_DIR}/etc/my.cnf
## - sql_mode
## -
## - Since Version 8.0.11 NO_AUTO_CREATE_USER is no longer available
## - Since Version 8.0.11 NO_AUTO_CREATE_USER is no longer available. The default on 8.0 MySQL
## - installations is
## -
## - For now, we will use the default value, it seems to be ok.
## - sql-mode = "ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
## -
## - For now, we will use the default value, without deprecated NO_ZERO_IN_DATE and NO_ZERO_DATE (see below).
## - It seems to be ok.
## -
#sql-mode = "ONLY_FULL_GROUP_BY,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
EOF
else
@ -4375,14 +4489,71 @@ EOF
## - sql_mode
## -
## - To be compartible with older programming on mysql 5.6
## - To be compartible with older programming on mysql 5.6 use;
## -
sql-mode = "ONLY_FULL_GROUP_BY,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
## - sql-mode = "ONLY_FULL_GROUP_BY,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
## -
EOF
fi
cat << EOF >> ${MYSQL_INSTALL_DIR}/etc/my.cnf
## -
## - The default on 5.7 MySQL installations was:
## -
## - sql-mode = "ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
## -
## -
## - NOTE (on 5.7 installation):
## -
## - NO_ZERO_DATE, NO_ZERO_IN_DATE and ERROR_FOR_DIVISION_BY_ZERO are deprecated, and all of them
## - are not part of strict mode, but should be used in conjunction with strict mode and are enabled
## - by default. A warning occurs if NO_ZERO_DATE or NO_ZERO_IN_DATE is enabled without also enabling
## - strict mode or vice versa. For additional discussion, see SQL Mode Changes in MySQL 5.7.
## -
## -
## - Because NO_ZERO_DATE, NO_ZERO_IN_DATE and ERROR_FOR_DIVISION_BY_ZERO are deprecated, expect it to
## - be removed in a future release of MySQL as a separate mode name and its effect included in the effects
## - of strict SQL mode.
## -
EOF
if [[ "$MYSQL_DISTRIBUTION" = "MariaDB" ]] ; then
cat << EOF >> ${MYSQL_INSTALL_DIR}/etc/my.cnf
#sql-mode = "ONLY_FULL_GROUP_BY,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
EOF
elif [[ "$MYSQL_MAJOR_VERSION" -gt 8 ]] \
|| ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -gt 0 ]] ) \
|| ( [[ "$MYSQL_MAJOR_VERSION" -eq 8 ]] && [[ "$MYSQL_MINOR_VERSION" -eq 0 ]] \
&& [[ $MYSQL_PATCH_LEVEL -ge 3 ]] ); then
cat << EOF >> ${MYSQL_INSTALL_DIR}/etc/my.cnf
sql-mode = "ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
EOF
else
cat << EOF >> ${MYSQL_INSTALL_DIR}/etc/my.cnf
#sql-mode = "ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
sql-mode = "ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
EOF
fi
cat << EOF >> ${MYSQL_INSTALL_DIR}/etc/my.cnf
## - Which protocols the server permits for encrypted connections. The value is a
## - comma-separated list containing one or more protocol versions. The protocols
## - that can be named for this variable depend on the SSL library used to compile
## - MySQL. Permitted protocols should be chosen such as not to leave 'holes' in the
## - list. For details, see Section 6.3.2, “Encrypted Connection TLS Protocols and Ciphers.
## -
## - NOTE:
## - As of MySQL 5.7.35, the TLSv1 and TLSv1.1 connection protocols are deprecated
## - and support for them is subject to removal in a future version of MySQL. See
## - Deprecated TLS Protocols.
## -
tls_version=TLSv1.2,TLSv1.3
## - secure-file-priv
## -
## - This variable is used to limit the effect of data import and export operations,
@ -4414,6 +4585,7 @@ EOF
## - this option.
## -
#secure-file-priv = ""
secure-file-priv = ""
## - local-infile
@ -4816,7 +4988,8 @@ myisam-sort-buffer-size = 64M
## - Default: 4MB (MySQL 5.6.6), 1MB before that.
## -
#max-allowed-packet = 4M
max-allowed-packet = 32M
#max-allowed-packet = 32M
max-allowed-packet = 128M
## - table_open_cache
@ -5328,9 +5501,12 @@ innodb_read_only_compressed = OFF
[mysqldump]
quick
max-allowed-packet = 32M
max-allowed-packet = 1024M
default-character-set = utf8mb4
net_read_timeout = 120
net_write_timeout = 900
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
@ -5394,7 +5570,7 @@ EOF
## -
## - To be compartible with older programming on mysql 5.6
## -
sql-mode = "ONLY_FULL_GROUP_BY,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
#sql-mode = "ONLY_FULL_GROUP_BY,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
EOF
fi