分享

mariadb无密码登录

 rongq2007 2024-04-25 发布于广东

https://www.sohu.com/a/389467897_411876

mysql> INSTALL PLUGIN auth_socket SONAME 'auth_socket.so';

Query OK, 0 rows affected (0.01 sec)

② 创建数据库账号hechunyang

mysql> CREATE USER 'hechunyang'@'localhost' IDENTIFIED WITH auth_socket;

Query OK, 0 rows affected (0.00 sec)

③ 创建操作系统账号hechunyang

# useradd hechunyang

# passwd hechunyang

以hechunyang用户登录操作系统。

④ 登录MySQL 8.0.18

[root@localhost soft]# su - hechunyang

Last login: Fri Nov 8 16:40:53 CST 2019>[hechunyang@localhost ~]$

[hechunyang@localhost ~]$ /usr/local/mysql/bin/mysql -S /tmp/mysql_hcy.sock -uhechunyang -e "select version();"

+-----------+

| version() |

+-----------+

| 8.0.18 |

+-----------+

[hechunyang@localhost ~]$

在此示例中,用户hechunyang已登录操作系统并具有完全shell访问权限。他已经使用操作系统进行了身份验证,并且他的MySQL帐户已配置为使用unix_socket身份验证插件,因此他无需再次对数据库进行身份验证。MySQL接受他的操作系统凭证并允许他连接。

2)MariaDB 10.4.10使用方法

① 创建数据库账号hechunyang

MariaDB [(none)]> GRANT ALL ON *.* TO 'hechunyang' IDENTIFIED VIA unix_socket;

Query OK, 0 rows affected (0.001 sec)

后续操作和MySQL 8.0.18一样。

https://blog.csdn.net/qq_34625397/article/details/113642122

知不觉MariaDB已经更新到10.5.8了,它较10.2和10.3做出的变化还是蛮大的

在mariadb10.5当中,将用户身份验证做了更改

所有用户帐户,密码和全局特权都存储在mysql.global_priv表中。该mysql.user表仍然存在,并且具有与以前完全相同的列集,但是现在它是一个引用该mysql.global_priv表的视图。

其次,是unix_socket 它可以让用户通过本地socket登陆而无需密码,据介绍,这种加密非常安全可靠,但我暂时用不上

如果你正常安装,那么mariadb会执行下面的语句,生成两个在服务器不需要密码就能登陆的用户-root@localhost 和mysql@localhost

CREATE USER root@localhost IDENTIFIED VIA unix_socket OR mysql_native_password USING 'invalid'

CREATE USER mysql@localhost IDENTIFIED VIA unix_socket OR mysql_native_password USING 'invalid'

使用之前的验证方式

mysql_install_db 时指定--auth-root-authentication-method

或者在配置文件中添加

[mysql_install_db]

auth_root_authentication_method=normal

  1、用户创建

              之前是可以支持Insert方式创建,但是现在只能通过 Create

     命令:

CREATE USER 'username'@'host' IDENTIFIED BY 'password';  --  此处password是明文,不需要用password('密码')来标识

 2、密码修改

               之前是可以通过Update方式修改,现在只能通过Set方式来修改

SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');

     如果是当前登陆用户用:

 SET PASSWORD = PASSWORD("newpassword");

          3、授权

                这个命令感觉没有变化,还是原来的命令:GRANT privileges ON databasename.tablename TO 'username'@'host'

                完全权限   GRANT ALL ON *.* TO 'pig'@'%';

          4、收回权限

                这个也没怎么明显变化,REVOKE privilege ON databasename.tablename FROM 'username'@'host';

————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/qq_34625397/article/details/113642122

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多