如有错误欢迎指正
安装MariaDB之后默认用户名是root ,默认没有密码,直接在命令行输入mysql -u root就可以登录MySQL,然后输入 set password = xxxx; 设置密码,注意结尾的分号。但是会报错
上网搜一下解决方案
是因为你输入的密码是明文,它要求你输入十六进制数字。
解决方案:输入 select password('密码'); 转换成对应的十六进制码 ,复制它给出的十六进制码代替明文密码,设置密码的时候粘贴过去就好了
参考 (1条消息) ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number_李笑男的博客-CSDN博客
设置好密码之后我们登录试一下,怎么还要输密码。。。
那就再输一次,注意这个password输入的时候是不显示的,输入之后回车,它和我讲unknown database?????莫名其妙。
后来上网查了一下说-p和密码之间不能有空格。。。
我试了一下,确实登进去了
我再试一下只写-p,不写密码,然后它提示我输入密码,我输入123456,竟然成功了。
结合上一个例子,我恍然大悟,之前写-p 123456 ,-p后面的123456被当作database读入了,而密码需要另外一行输入。我误以为我在Enter password:后面输入的123456被它判定为Unknown database了,其实它判定的是mysql -u root -p 123456中的123456
所以在连接数据库的时候可以直接指定打开哪一个数据库,应该是这样。我之前连接的时候看网上的教程好像打开过一个叫mysql的数据库,这我就很好奇了,我刚刚安装MariaDB,它有自带的数据库吗,试一下,确实有。
那我想看看MariaDB到底有哪些数据库,怎么看。可以用mysql -u root -p123456,也可以直接用mysql进入。然后用 show databases; 注意写法,是负数,我之前写show database;找错误找了半天。
我们可以看到MariaDB中自带的数据库有4个。
还有一个问题,-p和后边的密码之间不能有空格,那-r和root之间不加空格行吗,我试一下,发现行。
我又想试一下,输入一个错误的密码654321能不能识别出来
rnm退钱!输入错误的密码还能进去。
那我不输密码能不能进去。
rnm退钱! 不输密码也能进去。
经过更深入的理解,和与本机的Navicat的比较,我明白Navicat是一个对于mysql的数据库管理工具,可以连接到mysql类型的DBMS,应该不能创建数据库吧。MariaDB是一个关系型数据库管理系统,它只能创建mysql这种数据库,但是在本机中有一个数据库叫mysql,好像还有一个用户名叫mysql,给我带来了极大的干扰,给我绕晕了。
账号和密码是对于MariaDB而言的还是对于服务器而言,答案是MariaDB。只有一个MariaDB,但是可以创建不同的账号,意义是什么。权限控制吗,应该是。
我决定把MariaDB卸载重装。
重装之后用以下代码初始化MariaDB,没用
mysql_secure_installation
网上给出的修改密码的方法
复制抛出的错误去网上查,找到了英文网站,说MariaDB已经更新了,user已经从table变成view了,不要盲目的从别人的博客搬了。。。。我感觉还是英文网站强啊。奈何英文不好。终于体会到别人说的学计算机还是得能看懂英文。
给出了下面的设置密码的方法
进入MariaDB [mysql]> 之后 用set password for root@localhost = password('123456');是可以更改密码的,肉眼可见
但是登录的时候随便输入一个错误的密码还是能进。。。。。应该是没有判断密码,直接登录了。
找网上的教程,都是叫你把unix_socket改成mysql_native_password,我的plugin就是mysql_native_password啊。后来终于找到一个解决方案 解决MariaDB无密码 可登录 - Anlovescode - 博客园 (cnblogs.com) 还是得看官方文档啊Authentication Plugin - Unix Socket - MariaDB Knowledge Base
解决方法就是用 ALTER USER root@localhost IDENTIFIED VIA mysql_native_password; 用这句话之后再登录试一下,还是无需密码就登录。那就再来一句SET PASSWORD = PASSWORD('123456'); 虽然我的密码本来就是123456
用完之后再登录就需要密码了
泪目,终于成功了。