mysql no recibe una contraseña

ventanas

instalación

Instale mysql en Windows, haga clic para aprender a descargar

problema

Después de instalar mysql, abra mysql shell, ingrese mysql -u root -pcan, luego ingrese la contraseña que estableció. Si encuentra la siguiente Inserte la descripción de la imagen aquí
solución de interfaz :

	Mysql JS>  \sql
	Mysql SQL>  \connect root@localhost

linux

instalación

Toma ubuntuun ejemplo

	sudo apt-get update
	sudo apt-get install python3-setuptools
	sudo apt-get install python3-dev
	sudo python3 setup.py install
 	sudo apt-get install mysql-server mysql-client

Si se le pide que ingrese una contraseña durante el proceso de instalación, ¡debe recordar esta contraseña!
Luego ingrese el comando

	mysql -u root -p

Ingrese la contraseña que estableció para ingresar a la base de datos.

problema

No se le pidió que estableciera una contraseña durante el proceso de instalación.

fatpuffer@ubuntu:~/Downloads$ mysql -uroot -p
Enter password: 
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

  1. Ingrese sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf en la terminal de ubuntu, ingrese el archivo de configuración y luego agregue skip- a la sección [mysqld] del archivo de configuración La sentencia grant-tables.
	[mysqld]
	#
	# * Basic Settings
	#
	user              = mysql
	pid-file          = /var/run/mysqld/mysqld.pid
	socket           = /var/run/mysqld/mysqld.sock
	port              = 3306
	basedir          = /usr
	datadir          = /var/lib/mysql
	tmpdir          = /tmp
	lc-messages-dir   = /usr/share/mysql
	skip-external-locking
	character-set-server=utf8
	collation-server=utf8_general_ci
	skip-grant-tables

  • La función es permitirle iniciar sesión en mysql sin una contraseña.
  • Guardar: wq, salir. Entrada: reiniciar el servicio mysql, reiniciar mysql.
  1. Ingrese mysql -u root -p en la terminal, y presione Enter cuando se le solicite ingresar la contraseña. Después de ingresar mysql, ejecute las siguientes tres oraciones:
	use mysql;   然后敲回车
	update user set authentication_string=password("你的密码") where user="root";  然后敲回车
	flush privileges;  然后敲回车

  • Luego ingrese quit para salir de mysql.
  1. Vuelva a ingresar el archivo mysqld.cnf para comentar la declaración skip-grant-tables agregada al principio.
	[mysqld]
	#
	# * Basic Settings
	#
	user              = mysql
	pid-file          = /var/run/mysqld/mysqld.pid
	socket           = /var/run/mysqld/mysqld.sock
	port              = 3306
	basedir          = /usr
	datadir          = /var/lib/mysql
	tmpdir          = /tmp
	lc-messages-dir   = /usr/share/mysql
	skip-external-locking
	character-set-server=utf8
	collation-server=utf8_general_ci
	# skip-grant-tables

  • Regrese a la terminal e ingrese mysql -uroot -p, y debería poder ingresar a la base de datos.

  • Si todavía se informa un error en este momento, debe volver al paso 3, volver a validar la declaración comentada (es decir, eliminar el símbolo #), volver a ingresar mysql, primero seleccionar una base de datos (usar mysql) y luego ingresarselect user,plugin from user

  • Se puede ver que después de ejecutar select user y plugin from user, la causa del error es porque el campo de raíz del plugin es auth_socket, entonces podemos cambiarlo a la siguiente mysql_native_password. entrar:

update user set authentication_string=password("ln122920"),plugin='mysql_native_password' where user='root'
  • Luego presione Enter para ejecutar lo siguiente, y luego ingrese
	 select user,plugin from user;
  • Salir de mysql
	\quit
  • Reiniciar mysql
	service mysql restart

Entonces este problema está completamente resuelto.

Supongo que te gusta

Origin blog.csdn.net/m0_43456002/article/details/105981336
Recomendado
Clasificación