Te sugerimos que pruebes esta resolución en un entorno controlado antes de pasarlo a producción, saludos.
Solución:
Solo el usuario raíz necesita el requisito de sudo para iniciar sesión en mysql. Resolví esto creando un nuevo usuario y otorgando acceso a las bases de datos requeridas:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON database_name.* TO 'newuser'@'localhost';
ahora newuser
puede iniciar sesión sin el requisito de sudo:
mysql -u newuser -p
Necesitas cambiar el algoritmo. Siguiendo el trabajo para mí,
mysql > ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
mysql > FLUSH PRIVILEGES;
Puede usar el mismo usuario ROOT o un NEW_USER y eliminar los privilegios de SUDO. El siguiente ejemplo muestra cómo eliminar la conexión usando ROOT, sin SUDO.
Conéctese a MY-SQL usando SUDO
sudo mysql -u root
Eliminar el usuario raíz actual de la tabla de usuarios
DROP USER 'root'@'localhost';
Cree un nuevo usuario ROOT (puede crear un usuario diferente si es necesario)
CREATE USER 'root'@'%' IDENTIFIED BY '';
Otorgar permisos al nuevo usuario (ROOT)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
Privilegios de vaciado, para que las tablas de concesión se vuelvan a cargar de inmediato. (¿Por qué necesitamos vaciar los privilegios?)
FLUSH PRIVILEGES;
Ahora todo está bien. Por si acaso, verifique si se crea un nuevo usuario raíz.
SELECT User,Host FROM mysql.user;
+------------------+-----------+
| User | Host |
+------------------+-----------+
| root | % |
| debian-sys-maint | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)
Salir de mysql. (Presiona CTRL + Z). Conectarse a MySQL sin SUDO
mysql -u root
¡Espero que esto ayude!
Reseñas y calificaciones del post
Recuerda que puedes dar recomendación a este escrito si lograste el éxito.