Estoy tratando de convertir mi DB a utf8mb4seguir esta guía . Yo he puesto:
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
init-connect='SET NAMES utf8mb4'
collation_server=utf8mb4_unicode_ci
character_set_server=utf8mb4
skip-character-set-client-handshake
Pero el valor de character_set_clienty character_set_resultsaún no cambiará a utf8mb4.
mysql> SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
+--------------------------+--------------------+
| Variable_name | Value |
+--------------------------+--------------------+
| character_set_client | utf8 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
| collation_connection | utf8mb4_unicode_ci |
| collation_database | utf8mb4_unicode_ci |
| collation_server | utf8mb4_unicode_ci |
+--------------------------+--------------------+
¿Qué estoy haciendo mal? ¿Cómo consigo esos valores establecidos en utf8mb4?

\xampp\mysql\bin\my.ini. No pude ejecutarmysqld --help --verbose 2> /dev/null | grep -A1 'Default options', ya que da el siguiente error:'grep' is not recognized as an internal or external command, operable program or batch file.Soy nuevo en estas cosas, por lo que podría estar haciendo algo mal.skip-character-set-client-handshakeen tu archivo de configuración? Es una opción de línea de comandos, no una variable.character_set_client,character_set_connection,character_set_results,collation_connectionse muestra comoutf8. ¿Alguna idea de por qué esto no funciona?También he seguido esa guía, sin embargo, el mismo problema apareció nuevamente. El problema real radica en el comando utilizado para crear la base de datos, ya que toma
DEFAULT CHARACTERcomo argumento y si eso no se pasa durante la ejecución, se pasa un conjunto de caracteres predeterminado que no se pasautfmb4.A continuación se detallan los pasos que seguí para solucionarlo:
Cree una base de datos ficticia con
utf8mb4juego de caracteres.Copie la estructura y los datos reales a esta base de datos ficticia de la base de datos real
mysqldump -uroot -proot_password your_db_name | mysql -uroot -proot_password your_db_name_dummyDescartar la base de datos actual
Crear nueva base de datos
Finalmente, vuelva a colocar la estructura de la tabla y los datos en la base de datos original.
mysqldump -uroot -proot_password your_db_name_dummy | mysql -uroot -proot_password your_db_nameSi va a utilizar el procedimiento mencionado anteriormente, asegúrese de leer detenidamente las líneas mencionadas a continuación.
Requisitos previos y mi status quo:
mysql --versionmysql Ver 14.14 Distrib 5.7.22, para Linux (x86_64) usando el contenedor EditLinecat /etc/my.cnfEstoy usando un cliente Java que es
'mysql:mysql-connector-java:5.1.30'jdbc:mysql://ip.of.database:3306/your_db_name?zeroDateTimeBehavior=convertToNull&noAccessToProcedureBodies=true&autoReconnect=truefuente