Estoy enfrentando un problema con el usuario no root / administrador de mysql, estoy siguiendo los pasos a continuación para crear un usuario y sus privilegios, corríjame si lo estoy haciendo mal,
estoy instalando mysql
en RHEL 5.7 64bit
, los paquetes se mencionan a continuación, una vez que lo hice rpm install
, estamos
- creando mysql db usando
mysql_install_db
, luego - iniciando el servicio mysql entonces
- usando
mysql_upgrade
también lo estamos haciendo al servidor.
Después de este proceso, puedo iniciar sesión como, root
pero con un usuario que no sea root no puedo iniciar sesión en el servidor:
[root@clustertest3 ~]# rpm -qa | grep MySQL
MySQL-client-advanced-5.5.21-1.rhel5
MySQL-server-advanced-5.5.21-1.rhel5
[root@clustertest3 ~]# cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
# Disabling symbolic-links is recommended to prevent assorted security risks;
# to do so, uncomment this line:
# symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[root@clustertest3 ~]# ls -ld /var/lib/mysql/mysql.sock
srwxrwxrwx 1 mysql mysql 0 Nov 30 11:09 /var/lib/mysql/mysql.sock
mysql> CREATE USER 'golden'@'%' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON * . * TO 'golden'@'%';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT USER(),CURRENT_USER();
+----------------+----------------+
| USER() | CURRENT_USER() |
+----------------+----------------+
| root@localhost | root@localhost |
+----------------+----------------+
1 row in set (0.00 sec)
[root@clustertest3 ~]# mysql -ugolden -p
Enter password:
ERROR 1045 (28000): Access denied for user 'golden'@'localhost' (using password: YES)
Este es el problema al que me enfrento, ¿hay alguna solución para esto?
mysql
mysql-error-1045
usuario3061726
fuente
fuente
SELECT * FROM mysql.user
Respuestas:
No otorgue todos los privilegios sobre todas las bases de datos a un usuario que no sea root, no es seguro (y ya tiene "root" con ese rol)
Esta declaración crea un nuevo usuario y le otorga privilegios seleccionados. ES DECIR:
Eche un vistazo a los documentos para ver todos los privilegios detallados
EDITAR: puede buscar más información con esta consulta (inicie sesión como "root"):
Para ver que paso
fuente
Si se está conectando a MySQL utilizando una máquina remota (banco de trabajo de ejemplo), etc., utilice los siguientes pasos para eliminar este error en el sistema operativo donde está instalado MySQL
Intente iniciar sesión en la instancia de MYSQL.
Esto funcionó para mí para eliminar este error.
fuente
Tratar:
O mejor uso:
mysql_setpermission
para crear el usuariofuente
%
que debería funcionar para todos los hosts, no lo está resolviendo. Entonces, al especificarlolocalhost
debería funcionar. Si eso NO funciona, algo está mal en mysqlParece que estás intentando hacer que un usuario sea 'golden' @ '%' pero un usuario diferente con el nombre de 'golden' @ 'localhost' se interpone en el camino / tiene prioridad.
Haga este comando para ver a los usuarios:
Debería ver dos entradas:
1) usuario = dorado, host =%
2) usuario = dorado, host = localhost
Haz estos comandos:
Reinicie MySQL Workbench.
Luego vuelva a ejecutar sus comandos originales:
Luego, cuando intente iniciar sesión en MySQL, escríbalo así:
Presione 'Probar conexión' e ingrese su contraseña 'contraseña'.
fuente
Primero creé al usuario usando:
Después de buscar en Google y ver esto , actualicé la contraseña del usuario usando:
y podría conectarme después.
fuente
Para cualquier otra persona que haya hecho todos los consejos, pero el problema persiste.
Compruebe el procedimiento almacenado y vea DEFINERS. Es posible que esos definidores ya no existan.
Mi problema apareció cuando cambiamos el host comodín (%) a IP específico, haciendo que la base de datos sea más segura. Desafortunadamente, hay algunas vistas que todavía usan 'usuario' @ '%' aunque 'usuario' @ '172 ....' es técnicamente correcto.
fuente
También tengo un problema similar, y luego descubrí que es porque cambié mi nombre de host (no
localhost
).Por lo tanto, lo resuelvo especificando el
--host=127.0.0.1
fuente
Asegúrese de que el usuario tenga una entrada localhost en la tabla de usuarios. Ese era el problema que estaba teniendo. EX:
fuente
Según la forma en que crea su usuario, MySQL interpreta de una manera diferente. Por ejemplo, si crea un usuario como este:
MySQL espera que le des algún privilegio usando
grant all on <your_db>.* to user01;
No te olvides de
flush privileges;
Pero, si crea un usuario así (pasando una dirección IP), debe cambiarlo a:
entonces, para dar algunos privilegios tienes que hacer eso:
fuente
En mi caso, ocurrió el mismo error porque estaba tratando de usar mysql simplemente escribiendo "mysql" en lugar de "mysql -u root -p"
fuente
conecte su servidor desde mysqlworkbench y ejecute este comando-> ALTER USER 'root' @ 'localhost' IDENTIFICADO POR 'yourpassword';
fuente
Para una búsqueda molesta al llegar aquí después de buscar este mensaje de error:
El problema para mí fue no incluir la contraseña entre comillas. p.ej. Necesitaba usar en
-p'password'
lugar de-ppassword
fuente
Simplemente agregue el nombre de la computadora en lugar de 'localhost' en el nombre del host o la dirección del host MySQL.
fuente