CentOS下MYSQL登录错误,localhost错误解决方法

自个儿的操作系统是ubuntu18.04,以下是自个儿的mysql版本:

windowslinux下安装mysql报1045等错误

原先在windows 下安装mysql 没怎么冒出过难点,而在linux下安装的时候出现了部分主题材料,前几日在windows 安装的时候也应时而生了1045 错误,就个人经历来看那些难点正是root顾客密码的主题素材,所以将消除的主意总计如下:

下边非常的大约的艺术用来重新设置密码:

一、mysql登入错误

图片 1

一、mysql登录报 1045 错误

mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'

咱俩来看地点的那一个张冠李戴正是 user 为root host为localhost的密码有失常态,所以大家就要看看 mysql数据库中user表中user为root,host为localhost的这些顾客的密码。

化解办法:破解mysql密码

1、 service mysqld stop

// 停止mysql服务

2、mysqld_safe --skip-grant-tables

// 在mysql的配置文件要是是linux(centos)则在etc/my.cnf配置文件的mysqld_safe 下天增多skip-grant-tables,如果在windows下则在设置目录下的my.ini 配置文件的mysqld 下加多 skip-grant-tables, skip-grant-tables是跳过授权表,那样安插之后保存 关闭,重新起动mysql服务

3、 mysql -uroot -p 回车

// 那样就走入了,这里有四个难点,也是本身超越的二种情景,一种是user表中有user为root的客商,一种是尚未,假使有则进行如下管理:

(1)、use mysql;

// 使用mysql数据库

(2)、 delete from user where host="localhost" and user=" ";

// 将host为localhost下的user为空的客户都删了,其实也足以把那边localhost改成 % 免得现在连接的时候总是不了,然则是后话在此间该不应该都得以。

(3)、 update user set password=PASSWORD("newpass") where user="root";
// 若是你询问一下你会发觉 mysql中的密码是加密保存的,所以修改密码不能向平常的sql同样而要使用password("新密码")关键字来修改密码,新密码为password中的字符。

(4)、 flush tables;

//数据刷到磁盘

(5)、 flush privileges;

//更新权限

(6)、quit

//退出

(7)、将布置文件中 skip-grant-tables 注释/删掉 保存

(8)、service mysqld restart

// 再度启航服务 mysql -uroot -p新密码回车 ,这样应该能够了

1、编辑MySQL配置文件my.cnf

mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'

安装实现后,登陆mysql的时候就涌出了之类错误:

二、 接着上边3、mysql -uroot -p 回车 步入之后use表中十分少,即开立root客户做如下管理:

率先种景况,正是user中有root顾客不过连接不上是在windows下境遇的,而user中什么都不曾是在linux(centos) 下碰到的,具体处理如下:

在linux下安装了mysql之后现身错误,刚开头感觉就是率先种这种景观,网络海高校多也都以那类作品于是就根据那篇小说举办了改造:linux下mysql 初次登录修改密码 修改之后应该准确,但再一次运行服务root登入依然不行,上边包车型大巴就是出新的主题材料和平消除决进程:

1、查询看有未有user 为root的客户,或那说user中有未有顾客。

mysqld_safe--skip-grant-tables&mysql-uroot mysql
mysql> select * from user;
Empty set (0.00 sec)
mysql> select USER();
--------
| USER()|
--------
| [email protected] |
--------
1 row in set (0.00 sec)

结果是从未有过root客户,user表里面是空的,依旧第三遍相遇这种主题素材的。

2、插入顾客新闻到 user表
由于 mysqld_safe --skip-grant-tables里面是无法用grant的,于是想到了手动insert插入root客户:

**为了大家有利这里提供一些注解:第三个值是host,第1个为user这两项是必填项,password("my_password")这里进行密码的安装,MY_PASSWOHighlanderD 正是新设的密码 ,而'Y'有二十七个,之后有1个enum和3个blob 可以为空,也等于此处的4个空字符,int类型有4个,暗中认可值为0

INSERTINTO user VALUES('%','root',password('MY_PASSWORD'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0)

此间要注重的是首个字段密码处要用password('密码'),因为mysql中密码是要因而编码的,不是一向字符串保存的。

3、接着在杀死全体mysql进程,之后符合规律重启mysql,就能够用root顾客登入

到当前个人就遇上的标题总的就这两种,希望对你有用!!

以往在windows 下安装mysql 没怎么出现过难题,而在linux下安装的时候出现了一些标题,前几日在windows 安装的时...

  vi /etc/my.cnf #编写文件,找到[mysqld],在上面加多一行skip-grant-tables [mysqld] skip-grant-tables :wq! #封存退出 shutdown -r now #重启系统

化解办法:破解mysql密码
命令行方式下输入
#> service mysqld stop
#>mysqld_safe --skip-grant-tables &
输入 mysql -uroot -p 回车步向
>use mysql;
> update user set password=PASSWORD("newpassword")where user="root";
改动密码为 newpassword
> flush privileges; 更新权限
> quit 退出

图片 2

2、进入MySQL控制台

#>service mysqld restart
#> mysql -uroot -p新密码踏向

因为安装的进程中没让设置密码,大概密码为空,但不管如何都进不去mysql。

  mysql -uroot -p #直白按回车,那时不须求输入root密码。

二,忘记本地root的登入密码

 

3、修改root密码

减轻进度:

那就是说该怎么办吧,接下去就将那几个消除方式自己总计记录一下。

  update mysql.user set password=password('123456') where User="root" and Host="localhost"; flush privileges; #刷新系统授权表

1、编辑/etc/my.cnf

step1:在ubuntu的terminal(也即终端)上输入sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf,踏向到那么些布局文件,然后在这么些布局文件中的[mysqld]这一块中加入skip-grant-tables这句话。

4、取消/etc/my.cnf中的skip-grant-tables

在[mysqld] 配置部分增添一行

 1 [mysqld]
 2 #
 3 # * Basic Settings
 4 #
 5 user              = mysql
 6 pid-file          = /var/run/mysqld/mysqld.pid
 7 socket           = /var/run/mysqld/mysqld.sock
 8 port              = 3306
 9 basedir          = /usr
10 datadir          = /var/lib/mysql
11 tmpdir          = /tmp
12 lc-messages-dir   = /usr/share/mysql
13 skip-external-locking
14 character-set-server=utf8
15 collation-server=utf8_general_ci
16 skip-grant-tables

  vi /etc/my.cnf 编辑文件,找到[mysqld],删除skip-grant-tables这一行 :wq! #保存退出

skip-grant-tables

成效便是让您能够毫不密码登入进去mysql。

5、重启mysql

2、保存后重启mysql

封存:wq,退出。输入:service mysql restart,重新启航mysql。

  service mysqld restart #重启mysql,那个时候mysql的root密码已经修改为123456

[root@localhost etc]# service mysqld restart
Shutting down MySQL. [ OK ]
Starting MySQL. [ OK ]

 

6、进入mysql控制台

3、登陆数据库重新安装root密码

step2:在极端上输入mysql -uroot -p,遇见输入密码的唤起一向回车就能够,步向mysql后,分别实践下边三句话:

  mysql -uroot -p #进入mysql控制台

[root@localhost ~]# mysql -uroot -p mysql
Enter password:

1 use mysql;   然后敲回车
2 update user set authentication_string=password("你的密码") where user="root"  然后敲回车
3 flush privileges  然后敲回车

  密码 #输入密码

一贯回车步入

结果如下图:

OK。就像此简单。

Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 1
Server version: 5.1.47-log Source distribution

图片 3

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license

接下来输入quit,退出mysql。

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

 

mysql> show databases;
--------------------
| Database |
--------------------
| information_schema |
| mysql |
| test |
--------------------
3 rows in set (0.00 sec)

step3:重新步入到mysqld.cnf文件中去把刚开首加的skip-grant-tables那条语句给注释掉。

施行下列语句

 1 [mysqld]
 2 #
 3 # * Basic Settings
 4 #
 5 user              = mysql
 6 pid-file          = /var/run/mysqld/mysqld.pid
 7 socket           = /var/run/mysqld/mysqld.sock
 8 port              = 3306
 9 basedir          = /usr
10 datadir          = /var/lib/mysql
11 tmpdir          = /tmp
12 lc-messages-dir   = /usr/share/mysql
13 skip-external-locking
14 character-set-server=utf8
15 collation-server=utf8_general_ci
16 # skip-grant-tables

mysql> update user set password=password("mysql") where user='root';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4 Changed: 4 Warnings: 0

再重回终端输入mysql -uroot -p,应该就能够进来数据库了。

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

 

4、删除/etc/my.cnf文件中加多的“skip-grant-tables”行,重启mysql;

step4:若是此刻要么报出错误,那么就必要再次回到step3中,把注释掉的这条语句再一次生效(便是去除#标识),重新步入mysql中,先采取三个数据库(use mysql),然后输入select user,plugin from user,看下图:

用新设的密码就能够健康登陆了;

图片 4

从图中能够见到在进行了select user,plugin from user后,错误原因是因为plugin root的字段是auth_socket,那大家改掉它为下边包车型大巴mysql_native_password就行了。输入:

1 update user set authentication_string=password("ln122920"),plugin='mysql_native_password' where user='root'

下一场回车施行以下,再输入select user,plugin from user;回车,大家能见到root客商的字段改成功了。

图片 5

 

谈到底quit退出。再次来到实行step3。

那便是说这一个标题就全盘化解了。

仿效链接:

 

本文由星彩网app下载发布于星彩彩票app下载,转载请注明出处:CentOS下MYSQL登录错误,localhost错误解决方法

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。