由于笔者只测试过Ubuntu 16.04.4、Ubuntu 19.04和Debian 9,此方法不确定在其他版本下适用。

本文章介绍的方法同样适用于这样的错误信息。

➜ ~ mysql -u root -p

Enter password:

ERROR 1698 (28000): Access denied for user 'root'@'localhost'


## 查看默认密码
某些发行版本,使用包管理器安装MySQL后,查看这个文件可以看到安装后的默认密码`/etc/mysql/debian.cnf`,这个密码是属于`debian-sys-maint`的,而非`root`。
即使在这里你可能可以使用root用户登录,因为root用户默认登录方式是使用socket连接,而不验证密码。 ## 修改root密码
如果需要修改先使用`debian-sys-maint`登录数据库,完成以下操作
1. `select user, plugin from mysql.user;`查看默认的连接方式。
2. 如果是`auth_socket`(MySQL)的连接方式,则继续下面得步骤,如果是`unix_socket`(MariaDB),则转到**MariaDB的处理方法**。
3. `update mysql.user set authentication_string=password('root'), plugin = 'mysql_native_password' where user = 'root';`使用这一行明令将root密码修改为root。
4. `flush privileges;`应用权限。
5. 退出并重启MySQL。 ## MariaDB的处理方法
上面的方法仅针对MySQL测试。
MariaDB的root默认连接方式是`unix_socket`(MariaDB)
在Debian中软件包mysql已经替换成了mariadb了。在安装后`/etc/mysql/debian.cnf`预设了root用户使用socket的连接方式,所以不输入密码也可在命令行直接使用mysql命令登录。
要想使用密码连接需要修改连接方式
1. 输入mysql进入客户端,若无法进入则跳过。
2. 输入`select user, plugin from mysql.user`查看默认的连接方式。
3. 如果是`unix_socket`(MariaDB),则继续下面得步骤。
4. 退出mysql,并kill掉进程。
5. 打开`mysqld_safe --skip-grant-tables`放入后台,并进入`mysql`。
6. `update mysql.user set authentication_string = password('root'), plugin = 'mysql_native_password' where user = 'root';`。
7. `flush privileges;`应用权限。
8. 修改`/etc/mysql/mariadb.conf.d/50-server.cnf`中的`bind-address`为允许的网络地址,若为整个网络则填入`0.0.0.0`或注释掉
9. 重启服务
10. 退出并重启MySQL。 ## 为MySQL添加远程访问
1. 修改`/etc/mysql/mysql.conf.d/mysqld.cnf``/etc/mysql/my.cnf`中的`bind-address`为允许的网络地址,若为整个网络则填入`0.0.0.0`或注释掉
2. 重启服务
3. 启动mysql,输入`use mysql;`进入mysql表
4. 修改地址`grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;`允许root用户远程使用root为密码连接。
5. 使修改生效`flush privileges;`
6. 退出MySQL。

MySQL(MariaDB)默认密码和修改方法的更多相关文章

  1. ubuntu下root用户默认密码及修改方法

    [ubuntu下root用户默认密码及修改方法] 很多朋友用ubuntu,一般都是装完ubuntu系统,马上就修改root密码了,那么root用户的默认密码是多少,当忘记root用户密码时如何找回呢, ...

  2. 本地mysql数据库root密码丢失修改方法

      1,停止数据库 2,cd /etc/mysql 3,利用vim命令打开mysql配置文件my.cnf,在mysqld进程配置文件中添加skip-grant-tables,添加完成后,执行wd保存. ...

  3. 修改MySQL的默认密码的四种小方法

    投稿:lijiao 字体:[增加 减小] 类型:转载 时间:2015-09-05我要评论 对于windows平台来说安装完MySQL后,系统就已经默认生成了许可表和账户,下文中就教给大家如何修改MyS ...

  4. Centos下忘记mysql的root密码的解决方法

    Centos下忘记mysql的root密码的解决方法 一:(停掉正在运行的mysql) [root@NetDakVPS ~]# service mysql stop 二:使用 “--skip-gran ...

  5. mysql忘记root密码的解决方法

    Windows下mysql忘记root密码的解决方法 1. 首先检查mysql服务是否启动,若已启动则先将其停止服务,可在开始菜单的运行,使用命令:net stop mysql 或者在windows任 ...

  6. mysql忘记root密码,修改mysql密码

    1.修改mysql配置文件  vim /etc/my.cnf #编辑文件 找到[mysqld],在下面添加一行 skip-grant  :wq #保存退出 service mysqld restart ...

  7. CentOS7忘记root密码的修改方法

    参考文献: [1]CentOS 6 & 7 忘记root密码的修改方法_Linux教程_Linux公社-Linux系统门户网站

  8. npm全局模块卸载及默认安装目录修改方法

    卸载全局安装模块  npm uninstall -g <package> 卸载后,你可以到 /node_modules/ 目录下查看包是否还存在,或者使用以下命令查看:npm ls npm ...

  9. Bitnami WordPress无法修改MySQL root的默认密码的解决方法?

    今天准备修改Bitnami WordPress的MySQL root的默认密码,但是总是出现下面错误: ERROR 1045 (28000): Access denied for user 'root ...

随机推荐

  1. [Comet OJ - Contest #7 D][52D 2417]机器学习题_斜率优化dp

    机器学习题 题目大意: 数据范围: 题解: 学长说是决策单调性? 直接斜率优化就好了嘛 首先发现的是,$A$和$B$的值必定是某两个$x$值. 那么我们就把,$y$的正负分成两个序列,$val1_i$ ...

  2. 2019-07-30 C#基础知识学习

    继承和多态 接口与抽象类的区别:1.在接口中仅能定义成员,但是不能有具体的实现:抽象类除了抽象成员以外,其他成员有具体的实现.2.在接口中不能声明字段,并且不能声明任何私有成员,成员不能包含任何修饰符 ...

  3. ARC100E. Or Plus Max

    题目 好题.没想出解法. 官方题解: 这个解法和 Small Multiple 那道题的解法有异曲同工之妙. 扩展 若把 $\mathsf{or}$ 改成 $\mathsf{and}$ 或者 $\ma ...

  4. VS添加版权声明

    C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\ItemTemplates\AspNetCore\ ...

  5. Spring4学习回顾之路04—引用其他Bean,集合数据注入,内部Bean

    引用其他Bean 组件应用程序的Bean经常需要相互协作以完成应用程序的功能,所以要求Bean能够相互访问,就必须在Bean配置文件中指定Bean的引用.在Bean的配置文件中可以用过<ref& ...

  6. SOSdp

    layout: post title: SOSdp author: "luowentaoaa" catalog: true tags: mathjax: true - codefo ...

  7. WebMvcConfigurationSupport跨域和fastjson全局替换

    @Configuration public class WarnWebMvcConfigurationSupport extends WebMvcConfigurationSupport { /** ...

  8. Hello World!!!

    C #include <stdio.h> int main() #main 入口函数 { printf("Hello,World!"); #printf 函数打印 ; ...

  9. Spring实战(十二) Spring中注入AspectJ切面

    1.Spring AOP与AspectJ Spring AOP与AspectJ相比,是一个功能比较弱的AOP解决方案. AspectJ提供了许多它不能支持的类型切点,如在创建对象时应用通知,构造器切点 ...

  10. [C#.net]xlApp.Workbooks.Open打开无法远程访问

    上月还能使用的xlApp.Workbooks.Open,这个月报无法远程访问,搞了半天,才找到原因是Foxit PDF 的Execl插件搞的鬼,记录下 Excel.Workbooks wbChecks ...