root客商密码的主题材料,编辑文件

2019-09-19 01:42栏目:网络数据
TAG:

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

windowslinux下安装mysql报1045等错误

先前在windows 下安装mysql 没怎么现身过难点,而在linux下安装的时候出现了一部分难题,后天在windows 安装的时候也出现了1045 错误,就个人经历来看这一个标题便是root客商密码的标题,所以将减轻的不二秘籍总括如下:

下边十一分简单的办法用来重新载入参数密码:

大奖888 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;

大奖888,//数据刷到磁盘

(5)、 flush privileges;

//更新权限

(6)、quit

//退出

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

(8)、service mysqld restart

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

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

安装到位后,登陆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,第二个为user这两项是必填项,password("my_password")这里张开密码的设置,MY_PASSWO奥迪Q5D 就是新设的密码 ,而'Y'有29个,之后有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 #重启系统

大奖888 2

2、进入MySQL控制台

因为安装的进程中没让设置密码,也许密码为空,但好歹都进不去mysql。

  mysql -uroot -p #直接按回车,那时没有要求输入root密码。

 

3、修改root密码

那正是说该咋办吧,接下去就将这么些解决措施本人总括记录一下。

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

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

4、取消/etc/my.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

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

功能正是让你能够毫不密码登陆进去mysql。

5、重启mysql

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

  service mysqld restart #重启mysql,这一年mysql的root密码已经修改为123456

 

6、进入mysql控制台

step2:在极端上输入mysql -uroot -p,遇见输入密码的提示平昔回车就能够,步向mysql后,分别执行上边三句话:

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

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

  密码 #输入密码

结果如下图:

OK。就这么轻松。

大奖888 3

下一场输入quit,退出mysql。

 

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 -uroot -p,应该就足以进去数据库了。

 

step4:假设此刻要么报出错误,那么就供给重临step3中,把注释掉的那条语句再次生效(正是去除#标识),重新进入mysql中,先选择贰个数据库(use mysql),然后输入select user,plugin from user,看下图:

大奖888 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顾客的字段改成功了。

大奖888 5

 

最终quit退出。再次来到执行step3。

那么那些标题就全盘缓慢解决了。

参照链接:

 

版权声明:本文由大奖888-www.88pt88.com-大奖888官网登录发布于网络数据,转载请注明出处:root客商密码的主题材料,编辑文件