问题:

困扰了很久的问题,,

使用apt-get来安装mysql,安装好之后发现安装的是 MariaDB,如下,无需密码既可以登录了。即使使用mysqladmin设置好密码,用密码登录可以,不用密码登录也可以

 root@ubuntu:/etc/mysql# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is
Server version: 10.0.-MariaDB-0ubuntu0.16.04. Ubuntu 16.04 Copyright (c) , , Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

排查思路:

第一看看my.conf有没有skip-grant-tables,跳过密码验证

过滤了下没有

 root@ubuntu:~# cd /etc/mysql/
root@ubuntu:/etc/mysql# pwd
/etc/mysql
root@ubuntu:/etc/mysql# ls -l
总用量
drwxr-xr-x root root 12月 : conf.d
-rw------- root root 12月 : debian.cnf
-rw------- root root 12月 : debian.cnf-5.7
-rwxr-xr-x root root 7月 : debian-start
-rw-r--r-- root root 7月 : mariadb.cnf
drwxr-xr-x root root 12月 : mariadb.conf.d
lrwxrwxrwx root root 12月 : my.cnf -> /etc/alternatives/my.cnf
-rw-r--r-- root root 1月 my.cnf.fallback
-rw-r--r-- root root 2月 mysql.cnf
drwxr-xr-x root root 12月 : mysql.conf.d
root@ubuntu:/etc/mysql# grep "skip-grant-tables" -r
root@ubuntu:/etc/mysql#

看看my.cnf里面是不是把密码写进去了,查找了相关.cnf文件去看了看也没有

 root@ubuntu:~# find / -name "*.cnf"
/usr/share/ssl-cert/ssleay.cnf
/usr/share/dovecot/dovecot-openssl.cnf
/usr/lib/ssl/openssl.cnf
/etc/ssl/openssl.cnf
/etc/alternatives/my.cnf
/etc/mysql/my.cnf
/etc/mysql/mariadb.cnf
/etc/mysql/conf.d/mysqldump.cnf
/etc/mysql/conf.d/mysql.cnf
/etc/mysql/mariadb.conf.d/-mysqld_safe.cnf
/etc/mysql/mariadb.conf.d/-mysql-clients.cnf
/etc/mysql/mariadb.conf.d/-client.cnf
/etc/mysql/mariadb.conf.d/-server.cnf
/etc/mysql/debian.cnf
/var/lib/dpkg/alternatives/my.cnf
root@ubuntu:~#

不过有个小发现,

  vim /etc/mysql/debian.cnf
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host = localhost
user = root
password =
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = root
password =
socket = /var/run/mysqld/mysqld.sock
basedir = /usr 看了说明是以上由脚本生成,不要改动,
虽然这样写,我也去改了下,加上密码,重启还是不行

最后的最后,,,,去google了很久,终于有发现了,是用户插件问题。

参见这里:https://nixmash.com/post/fix-for-mysql-rootlocalhost-access-denied-on-new-installs

第一我去跟安装正常的mysql来比较下,如下

 正常mysql
mysql> select user, plugin from mysql.user where plugin = 'mysql_native_password';
+-----------+-----------------------+
| user | plugin |
+-----------+-----------------------+
| root | mysql_native_password |
+-----------+-----------------------+
rows in set (0.00 sec)
 不正常的

 MariaDB [(none)]> select user, plugin from mysql.user;
+------+-------------+
| user | plugin |
+------+-------------+
| root | unix_socket |
+------+-------------+
row in set (0.00 sec)

看到这里应该发现问题了,按照正常的修改就行了

如下:

 sudo service mysql stop
sudo mysqld_safe --skip-grant-tables
进去mysql执行如下命令:
MariaDB [(none)]> UPDATE mysql.user SET authentication_string = PASSWORD('mypassword'), plugin = 'mysql_native_password' WHERE User = 'root' AND Host = 'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
验证:
MariaDB [(none)]> select user, plugin from mysql.user
-> ;
+------+-----------------------+
| user | plugin |
+------+-----------------------+
| root | mysql_native_password |
+------+-----------------------+
row in set (0.01 sec) 先杀死mysql kill - pid
启动:
sudo service mysql start

最后验证下:需要密码了

root@ubuntu:~# mysql
ERROR (): Access denied for user 'root'@'localhost' (using password: NO)
root@ubuntu:~#

解决 MariaDB无密码就可以登录的问题的更多相关文章

  1. Ubuntu解决 MariaDB无密码就可以登录的问题

    使用apt-get来安装mysql,安装好之后发现安装的是 MariaDB,如下,无需密码既可以登录了.即使使用mysqladmin或mysql_secure_installation 设置好密码,用 ...

  2. 快速解决MariaDB无密码就可以登录的问题

    mysql  Ver 15.1 Distrib 10.1.37-MariaDB, for Linux (x86_64) using readline 5.1 #mysql -uroot -p #del ...

  3. mariadb新安装解决远程访问以及root登录

    mariadb新安装解决远程访问以及root登录一.修改/etc/mysql/my.conf找到bind-address = 127.0.0.1这一行直接#掉或者改为bind-address = 0. ...

  4. Linux SSH实现无密码远程登录

      一.      SSH无密码远程登录原理 二.      SSH实现无密码远程登录 实现主机A 无密码远程登录主机B 主机A   IP地址:10.8.9.154 主机B   IP地址:10.8.9 ...

  5. Postman+Postman interceptor的安装和使用-解决把chrome浏览器登录状态同步到postman进行有依赖的接口测试 Postman 使用方法详解

    Postman+Postman interceptor的安装和使用-解决把chrome浏览器登录状态同步到postman进行有依赖的接口测试   问题引入:做接口测试时,有依赖关系的接口往往不好测试( ...

  6. Mac 无密码 SSH 登录服务器

    Mac 无密码 SSH 登录服务器,只需要简单三步,不再需要记住账号密码,快速进入服务器 第一步,生成密钥对 在当前用户下创建.ssh目录 mkdir ~/.ssh 使用命令ssh-keygen生成密 ...

  7. 解决mariadb grant ERROR 1045 (28000): Access denied for user

    下面我们一起来看一篇解决mariadb grant ERROR 1045 (28000): Access denied for user问题,希望文章能够帮助到各位朋友.   用mariadb也有一段 ...

  8. ssh连接原理介绍( 无密码连接登录的原理)

    SSH(Secure  Shell)一种在不安全网络上提供安全远程登录及其它安全网络服务的协议.由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x和2.x.(SSH 2.x的客户程序是不能 ...

  9. 解决mariadb数据库服务无法开启

    我的系统Manjaro linux,安装的数据库为mariadb 10.1 1.安装数据库 pacman -S mariadb 2.配置数据库启动环境: mysql_install_db --user ...

随机推荐

  1. MySQL 执行计划中Extra(Using where,Using index,Using index condition,Using index,Using where)的浅析

      关于如何理解MySQL执行计划中Extra列的Using where.Using Index.Using index condition,Using index,Using where这四者的区别 ...

  2. win10 iis注册.net framework 此操作系统版本不支持此选项。

    利用dism工具 执行下面命令才成功 dism /online /enable-feature /featurename:IIS-ISAPIFilter dism /online /enable-fe ...

  3. 关于Java中IO流的练习

    练习一:统计一个文件calcCharNum.txt中字母‘A’和'a'出现的总次数. package com.test; import java.io.File; import java.io.Fil ...

  4. redis快照持久化和aof日志持久化

    持久化就是即使断电/重启需要存储的数据不会丢失,即将数据存储在设备中,一般存在硬盘内 redis的持久化有2种方式 :1-rdb快照  2-aof日志,可以通过配置redis.conf文件进行配置 r ...

  5. .NET Core跨平台部署

    目录 .NET Core跨平台部署 1. Windows-IIS 1.1 安装.NET Core Windows Server Hosting 1.2 配置应用程序池 1.3 使用发布文件 2 Lin ...

  6. C#深度学习の接口传参(interface)-----接口的妙用

    一.接口可以干嘛 我们知道,接口的本质是一个约束规范,委托是方法纵向(形式上)的封装,接口是不同方法横向(广度)的封装 接口中不能有变量,但是可以有属性方法.常见的,我们可以用接口: 1.实现需求方的 ...

  7. Android测试(四):Instrumented 单元测试

    原文:https://developer.android.com/training/testing/unit-testing/instrumented-unit-tests.html Instrume ...

  8. eclipse上配置svn

    eclipse里安装SVN插件,一般来说,有两种方式: 直接下载SVN插件,将其解压到eclipse的对应目录里 使用eclipse 里Help菜单的“Install New Software”,通过 ...

  9. Redis详解(三)------ redis的五大数据类型详细用法

    我们说 Redis 相对于 Memcache 等其他的缓存产品,有一个比较明显的优势就是 Redis 不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据 ...

  10. Surjectivity is stable under base change

    Nowadays, I close a new small case. Proposition. For a surjective morphism between scheme $X\stackre ...