1. Creación y autorización de usuarios
En MySQL8, las declaraciones de autorización y creación de usuarios deben ejecutarse por separado, y las versiones anteriores se pueden ejecutar juntas.
Versión MySQL8
grant all privileges on *.* to 'lijin'@'%' identified by 'Lijin@2022';
create user 'lijin'@'%' identified by 'Lijin@2022';
grant all privileges on *.* to 'lijin'@'%';
Versión MySQL5.7
grant all privileges on *.* to 'lijin'@'%' identified by 'Lijin@2022';
2. Actualización del complemento de autenticación
El complemento de autenticación predeterminado en MySQL 8.0 es caching_sha2_password, que reemplaza al anterior mysql_native_password.
show variables like 'default_authentication%';
versión 5.7
8 versión
select user, host,plugin from mysql.user;
El problema con esto es que si el cliente no está actualizado, ¡no podrá conectarse! !
Por supuesto, puede encontrar el archivo my.cnf en el servidor MySQL y modificar los parámetros relevantes (pero tendrá efecto después de reiniciar MySQL)
Si no hay forma de reiniciar el servicio, hay otra forma dinámica:
alter user 'lijin'@'%' identified with mysql_native_password by 'Lijin@2022';
select host,user from mysql.user;
También se puede acceder usando el viejo Navicat para MySQL
3. Gestión de contraseñas
MySQL 8.0 comenzó a permitir restricciones en la reutilización de contraseñas anteriores (al cambiar contraseñas).
Y también agregó la función de administración de modificación de contraseña
show variables like 'password%';
Modificar política (nivel global)
set persist password_history=3; --修改密码不能和最近3次一致
Modificar política (nivel de usuario)
alter user 'lijin'@'%' password history 3;
select user, host,Password_reuse_history from mysql.user;
Use contraseñas repetidas para modificar las contraseñas de los usuarios (especifique los usuarios de lijin)
alter user 'lijin'@'%' identified by 'Lijin@2022';
Si cambiamos el parámetro global a 0, el usuario root puede cambiar la contraseña repetidamente
alter user 'root'@'localhost' identified by '789456';
password_reuse_interval está limitado según el número de días (no se permite repetir)
password_require_current Si verificar la contraseña anterior (sin verificación, con verificación) (para usuarios no root)
set persist password_require_current=on;