{"id":423,"date":"2025-07-20T23:07:58","date_gmt":"2025-07-20T21:07:58","guid":{"rendered":"https:\/\/www.papadia.org\/?p=423"},"modified":"2025-07-21T00:17:58","modified_gmt":"2025-07-20T22:17:58","slug":"resettare-la-password-di-root-di-mysql-8","status":"publish","type":"post","link":"https:\/\/www.papadia.org\/?p=423","title":{"rendered":"Resettare la password di root di MySql 8"},"content":{"rendered":"\n<p class=\"has-medium-font-size\">[Sistema Linux &#8211; Ubuntu 22.04 &#8211; Mysql Ver 8.0.42] <\/p>\n\n\n\n<p>Per prima cosa occorre avviare Mysql in modalit\u00e0 safe. Per far ci\u00f2 occorre prima fermare Mysql con il seguente comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo service mysql stop<\/code><\/pre>\n\n\n\n<p>N.B. ho utilizzato <strong>sudo<\/strong> ipotizzando che ti sia loggato al sistema con un utente diverso da <strong>root<\/strong>, io invece ho effettuato tutte le operazioni da <strong>root<\/strong> per questo da ora in poi ometter\u00f2 il <strong>sudo<\/strong>.<\/p>\n\n\n\n<p>Negli articoli che ho trovato si fa riferimento non solo a Mysql, ma anche a MariaDB i cui comandi dovrebbero essere identici, ma non ho avuto modo di sperimentarli personalmente. Per MariaDB il comando quindi dovrebbe essere<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo service mariadb stop<\/code><\/pre>\n\n\n\n<p>A questo punto si pu\u00f2 avviare Mysql in safe mode con il comando <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysqld_safe --skip-grant-tables &amp;<\/code><\/pre>\n\n\n\n<p>se non usiamo &amp; questo comando non ci restituisce il prompt, quindi occorre che apriamo e continuiamo da un&#8217;altra finestra di terminale.<\/p>\n\n\n\n<p>Se dovessimo ricevere il seguente errore<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>2017-02-10T17:05:44.870970Z mysqld_safe Logging to '\/var\/log\/mysql\/error.log'.\n2017-02-10T17:05:44.872874Z mysqld_safe Logging to '\/var\/log\/mysql\/error.log'.\n2017-02-10T17:05:44.874547Z mysqld_safe Directory '\/var\/run\/mysqld' for UNIX socket file don't exists.<\/code><\/pre>\n\n\n\n<p>Possiamo risolverlo creando la directory ed assegnandola all&#8217;utente <strong>mysql<\/strong> in questo modo<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir -p \/var\/run\/mysqld\nchown mysql:mysql \/var\/run\/mysqld<\/code><\/pre>\n\n\n\n<p>Un secondo problema potrebbe essere quello di ricevere l&#8217;errore<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>190822 20:37:38 mysqld_safe mysqld from pid file \/var\/run\/mysqld\/mysqld.pid ended<\/code><\/pre>\n\n\n\n<p>Mysql usa un file di configurazione in <strong>\/etc\/mysql\/mysql.conf.d\/mysqld_safe_syslog.cnf<\/strong> in cui occorre commentare la seconda riga in questo modo<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;mysqld_safe]\n#syslog<\/code><\/pre>\n\n\n\n<p>Questi problemi probabilmente si verificano perch\u00e9 operiamo come utente <strong>root<\/strong>, invece dovremmo operare come utente <strong>mysql<\/strong>, ma chi la conosce la password di <strong>mysql<\/strong>?<\/p>\n\n\n\n<p>Una volta avviato Mysql in modalit\u00e0 safe possiamo accedervi senza password con il comando<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql -u root mysql<\/code><\/pre>\n\n\n\n<p>A questo punto possiamo resettare la password di root ma anche qui ho incontrato qualche difficolt\u00e0: innanzitutto ricordiamoci che siamo in modalit\u00e0 safe e quindi il comando seguente non pu\u00f2 essere usato.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql&gt; ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';<\/code><\/pre>\n\n\n\n<p>Occorre fare un update sulla tabella <strong>user<\/strong>, ma non esiste nella tabella <strong>user<\/strong> un campo password, in questa versione di Mysql la password viene memorizzata nel campo <strong>authentication_string<\/strong> e il valore della password non sar\u00e0 memorizzato in chiaro, ma secondo l&#8217;algoritmo di cifratura<strong> caching_sha2_password<\/strong>. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"665\" height=\"732\" src=\"https:\/\/www.papadia.org\/wp-content\/uploads\/2025\/07\/userTable.png\" alt=\"\" class=\"wp-image-443\" srcset=\"https:\/\/www.papadia.org\/wp-content\/uploads\/2025\/07\/userTable.png 665w, https:\/\/www.papadia.org\/wp-content\/uploads\/2025\/07\/userTable-273x300.png 273w\" sizes=\"auto, (max-width: 665px) 100vw, 665px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql> select user, host, plugin from user;\n+------------------+-----------+-----------------------+\n| user             | host      | plugin                |\n+------------------+-----------+-----------------------+\n| mysql.infoschema | localhost | caching_sha2_password |\n| mysql.session    | localhost | caching_sha2_password |\n| mysql.sys        | localhost | caching_sha2_password |\n| root             | localhost | caching_sha2_password |\n+------------------+-----------+-----------------------+\n4 rows in set (0.01 sec)<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql> select user, authentication_string from user where user = 'root';\n+------+------------------------------------------------------------------------+\n| user | authentication_string                                                  |\n+------+------------------------------------------------------------------------+\n| root | $xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |\n+------+------------------------------------------------------------------------+\n1 row in set (0.00 sec)<\/code><\/pre>\n\n\n\n<p>(nel risultato dell&#8217;ultima query ho sostituito la stringa con una sequenza di x)<\/p>\n\n\n\n<p>Come fare quindi? L&#8217;idea che ho trovato \u00e8 di &#8220;sbiancare&#8221; la password e cambiarla successivamente con il comando precedente una volta avviato Mysql in modalit\u00e0 standard.<\/p>\n\n\n\n<p>Quindi:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql&gt; UPDATE user SET authentication_string=null WHERE User='root';<\/code><\/pre>\n\n\n\n<p>A questo punto ricarichiamo le tabelle del nostro database:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql&gt; FLUSH PRIVILEGES;<\/code><\/pre>\n\n\n\n<p>Possiamo ora terminare la modalit\u00e0 safe di Mysql ed uscire da Mysql.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql&gt; shutdown;\nQuery OK, 0 rows affected (0.00 sec)\n\nmysql&gt; quit;\nBye<\/code><\/pre>\n\n\n\n<p>Facciamo ripartire Mysql in modalit\u00e0 standard con <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>service mysql start<\/code><\/pre>\n\n\n\n<p>Entriamo in Mysql come root e con password che sappiamo essere null. Quindi quando ci chieder\u00e0 la password baster\u00e0 dare invio.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql -u root -p<\/code><\/pre>\n\n\n\n<p>Come gi\u00e0 detto prima ora possiamo impostare la password di root con il comando standard<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql&gt; ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';<\/code><\/pre>\n\n\n\n<p>Ora possiamo ricontrollare quanto fatto ripetendo la query precedente per verificare l&#8217;effetto delle operazione effettuate:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql> select user, authentication_string from user where user = 'root';\n+------+------------------------------------------------------------------------+\n| user | authentication_string                                                  |\n+------+------------------------------------------------------------------------+\n| root | $yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy |\n+------+------------------------------------------------------------------------+\n1 row in set (0.00 sec)\n<\/code><\/pre>\n\n\n\n<p>(nel risultato dell&#8217;ultima query ho sostituito la stringa con una sequenza di y)<\/p>\n\n\n\n<p>Prima di chiudere il tutto ricordiamoci di rimettere a posto il file <strong>\/etc\/mysql\/mysql.conf.d\/mysqld_safe_syslog.cnf<\/strong> su cui avevamo commentato la seconda riga.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><strong><em>Ringrazio tutti coloro che con i loro articoli hanno contribuito alla risoluzione del mio problema.<\/em><\/strong><\/p>\n\n\n\n<p><em>Bibbliografia<\/em>:<\/p>\n\n\n\n<p><a href=\"https:\/\/gmadv.it\/it\/linux\/come-resettare-la-password-di-root-in-mariadb-e-mysql\/#:~:text=a%20questo%20punto%20per%20resettare,memorizzarla%20in%20un%20posto%20sicuro!\">https:\/\/gmadv.it\/it\/linux\/come-resettare-la-password-di-root-in-mariadb-e-mysql\/#:~:text=a%20questo%20punto%20per%20resettare,memorizzarla%20in%20un%20posto%20sicuro!<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/stackoverflow.com\/questions\/42153059\/mysqld-safe-directory-var-run-mysqld-for-unix-socket-file-dont-exists\">https:\/\/stackoverflow.com\/questions\/42153059\/mysqld-safe-directory-var-run-mysqld-for-unix-socket-file-dont-exists<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/stackoverflow.com\/questions\/57616900\/mysqld-safe-mysqld-from-pid-file-mysqld-pid-ended\">https:\/\/stackoverflow.com\/questions\/57616900\/mysqld-safe-mysqld-from-pid-file-mysqld-pid-ended<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/gamagelakshani.medium.com\/change-mysql-8-0-password-in-mac-f43f15267f7b\">https:\/\/gamagelakshani.medium.com\/change-mysql-8-0-password-in-mac-f43f15267f7b<\/a><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>[Sistema Linux &#8211; Ubuntu 22.04 &#8211; Mysql Ver 8.0.42] Per prima cosa occorre avviare Mysql in modalit\u00e0 safe. Per far<\/p>\n","protected":false},"author":2,"featured_media":426,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[5,10,6],"tags":[],"class_list":["post-423","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-latest","category-linux","category-primo-piano"],"_links":{"self":[{"href":"https:\/\/www.papadia.org\/index.php?rest_route=\/wp\/v2\/posts\/423","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.papadia.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.papadia.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.papadia.org\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.papadia.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=423"}],"version-history":[{"count":15,"href":"https:\/\/www.papadia.org\/index.php?rest_route=\/wp\/v2\/posts\/423\/revisions"}],"predecessor-version":[{"id":445,"href":"https:\/\/www.papadia.org\/index.php?rest_route=\/wp\/v2\/posts\/423\/revisions\/445"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.papadia.org\/index.php?rest_route=\/wp\/v2\/media\/426"}],"wp:attachment":[{"href":"https:\/\/www.papadia.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=423"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.papadia.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=423"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.papadia.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=423"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}