Maitiro Ekushandisa MySQL Pasina Password (uye Chengetedzo Njodzi)

Maitiro Ekushandisa MySQL Pasina Password (uye Chengetedzo Njodzi)

Vanoti password yakanakisa ndiyo yausingafaniri kurangarira. Panyaya yeMySQL, izvi zvinogoneka nekuda kwe plugin auth_socket uye vhezheni yayo yeMariaDB - unix_socket.

Ose maviri aya maplugins haasi matsva zvachose; zvakawanda zvakataurwa pamusoro pavo mune ino blog blog, semuenzaniso mune chinyorwa nezve. kuchinja mapassword muMySQL 5.7 uchishandisa auth_socket plugin. Nekudaro, ndichitarisa mune zvitsva muMariaDB 10.4, ndakaona kuti unix_socket yave kuisirwa nekusarudzika uye ndeimwe yenzira dzechokwadi ("imwe ye", nekuti muMariaDB 10.4 inopfuura plugin imwe inowanikwa kune mumwe mushandisi kuti isimbise, iyo inotsanangurwa mugwaro "Kutendeseka" kubva kuMariaDB 10.04).

Sezvandakataura, idzi hadzisi nhau, uye pakuisa MySQL uchishandisa .deb mapakeji anotsigirwa nechikwata cheDebian, mudzi wekushandisa unogadzirwa kuti usimbise socket. Izvi ndezvechokwadi kune ese ari maviri MySQL uye MariaDB.

root@app:~# apt-cache show mysql-server-5.7 | grep -i maintainers
Original-Maintainer: Debian MySQL Maintainers <[email protected]>
Original-Maintainer: Debian MySQL Maintainers <<a href="mailto:[email protected]">[email protected]</a>>

NeDebian mapakeji eMySQL, mudzi wemushandisi unosimbiswa sezvinotevera:

root@app:~# whoami
root=
root@app:~# mysql
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 4
Server version: 5.7.27-0ubuntu0.16.04.1 (Ubuntu)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql> select user, host, plugin, authentication_string from mysql.user where user = 'root';
+------+-----------+-------------+-----------------------+
| user | host      | plugin | authentication_string |
+------+-----------+-------------+-----------------------+
| root | localhost | auth_socket |                       |
+------+-----------+-------------+-----------------------+
1 row in set (0.01 sec)

Ndizvo zvimwe chete ne .deb package yeMariaDB:

10.0.38-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04

MariaDB [(none)]> show grants;
+------------------------------------------------------------------------------------------------+
| Grants for root@localhost                                                                      |
+------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED VIA unix_socket WITH GRANT OPTION |
| GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION                                  |
+------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

Iyo .deb mapakeji kubva kune yepamutemo Percona repository inogadzirisawo midzi mushandisi authentication pasi pe auth-socket uye yePercona Server. Ngatipei muenzaniso ne Percona Server yeMySQL 8.0.16-7 uye Ubuntu 16.04:

root@app:~# whoami
root
root@app:~# mysql
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 9
Server version: 8.0.16-7 Percona Server (GPL), Release '7', Revision '613e312'

Copyright (c) 2009-2019 Percona LLC and/or its affiliates
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql> select user, host, plugin, authentication_string from mysql.user where user ='root';
+------+-----------+-------------+-----------------------+
| user | host      | plugin | authentication_string |
+------+-----------+-------------+-----------------------+
| root | localhost | auth_socket |                       |
+------+-----------+-------------+-----------------------+
1 row in set (0.00 sec)

Saka mashiripiti ndeapi? Iyo plugin inotarisa kuti mushandisi weLinux anofanana nemushandisi weMySQL achishandisa SO_PEERCRED socket sarudzo yekuunganidza ruzivo nezve mushandisi ari kufambisa chirongwa chemutengi. Nekudaro, iyo plugin inogona kungoshandiswa pane masisitimu anotsigira iyo SO_PEERCRED sarudzo, senge Linux. Iyo SO_PEERCRED socket sarudzo inobvumidza iwe kuti uwane iyo uid yemaitiro ane chekuita nesoketi. Uye ipapo anotogashira zita rekushandisa rakabatana neiyi uid.

Heino muenzaniso nemushandisi "vagrant":

vagrant@mysql1:~$ whoami
vagrant
vagrant@mysql1:~$ mysql
ERROR 1698 (28000): Access denied for user 'vagrant'@'localhost'

Sezvo pasina "vagrant" mushandisi muMySQL, isu tinorambidzwa kuwana. Ngatigadzirei mushandisi akadaro uye edza zvakare:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'vagrant'@'localhost' IDENTIFIED VIA unix_socket;
Query OK, 0 rows affected (0.00 sec)

vagrant@mysql1:~$ mysql
Welcome to the MariaDB monitor.  Commands end with ; or g.
Your MariaDB connection id is 45
Server version: 10.0.38-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

MariaDB [(none)]> show grants;
+---------------------------------------------------------------------------------+
| Grants for vagrant@localhost                                                    |
+---------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'vagrant'@'localhost' IDENTIFIED VIA unix_socket |
+---------------------------------------------------------------------------------+
1 row in set (0.00 sec)

Zvakaitika!

Zvakanaka, zvakadini nekugovera kusiri kweDebian uko izvi zvisina kupihwa nekukasira? Ngatiedze Percona Server yeMySQL 8 yakaiswa paCentOS 7:

mysql> show variables like '%version%comment';
+-----------------+---------------------------------------------------+
| Variable_name   | Value                                   |
+-----------------+---------------------------------------------------+
| version_comment | Percona Server (GPL), Release 7, Revision 613e312 |
+-----------------+---------------------------------------------------+
1 row in set (0.01 sec)

mysql> CREATE USER 'percona'@'localhost' IDENTIFIED WITH auth_socket;
ERROR 1524 (HY000): Plugin 'auth_socket' is not loaded

Bummer. Chii chakanga chisipo? Plugin haina kurodha:

mysql> pager grep socket
PAGER set to 'grep socket'
mysql> show plugins;
47 rows in set (0.00 sec)

Ngatiwedzerei plugin kune maitiro:

mysql> nopager
PAGER set to stdout
mysql> INSTALL PLUGIN auth_socket SONAME 'auth_socket.so';
Query OK, 0 rows affected (0.00 sec)

mysql> pager grep socket; show plugins;
PAGER set to 'grep socket'
| auth_socket                     | ACTIVE | AUTHENTICATION | auth_socket.so | GPL     |
48 rows in set (0.00 sec)

Iye zvino tine zvose zvatinoda. Ngatiedze zvakare:

mysql> CREATE USER 'percona'@'localhost' IDENTIFIED WITH auth_socket;
Query OK, 0 rows affected (0.01 sec)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'percona'@'localhost';
Query OK, 0 rows affected (0.01 sec)

Iwe unogona ikozvino kupinda uchishandisa zita rekushandisa "percona".

[percona@ip-192-168-1-111 ~]$ whoami
percona
[percona@ip-192-168-1-111 ~]$ mysql -upercona
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 19
Server version: 8.0.16-7 Percona Server (GPL), Release 7, Revision 613e312

Copyright (c) 2009-2019 Percona LLC and/or its affiliates
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql> select user, host, plugin, authentication_string from mysql.user where user ='percona';
+---------+-----------+-------------+-----------------------+
| user    | host   | plugin   | authentication_string |
+---------+-----------+-------------+-----------------------+
| percona | localhost | auth_socket |                       |
+---------+-----------+-------------+-----------------------+
1 row in set (0.00 sec)

Uye zvakashanda zvakare!

Mubvunzo: zvinokwanisika here kupinda muhurongwa pasi peiyo percona login, asi semushandisi akasiyana?

[percona@ip-192-168-1-111 ~]$ logout
[root@ip-192-168-1-111 ~]# mysql -upercona
ERROR 1698 (28000): Access denied for user 'percona'@'localhost'

Kwete, hazvishande.

mhedziso

MySQL inoshanduka-shanduka mune akati wandei, imwe yacho inzira yechokwadi. Sezvauri kuona kubva pane ino positi, kuwana kunogona kuwanikwa pasina mapassword, zvichienderana nevashandisi veOS. Izvi zvinogona kubatsira mune mamwe mamiriro, uye chimwe chazvo chiri pakutama kubva kuRSS/Aurora kuenda kunogara MySQL uchishandisa. IAM database yechokwadikuti uchiri kuwana, asi pasina mapassword.

Source: www.habr.com

Voeg