как установить пароль root на ноль

<p>как я могу изменить пароль для <code>root</code> пользователя mysql на <code>null</code> - то есть без пароля или <code>''</code> - из клиента командной строки mysql?</p>

<p>вы можете восстановить пароль сервера базы данных mysql, выполнив пять простых шагов.</p><p><strong>шаг # 1</strong>: остановить процесс сервера mysql.</p><p><strong>шаг № 2</strong>: запустите процесс сервер/демон mysql (mysqld) с параметром --skip-grant-tables, чтобы он не запрашивал пароль.</p><p><strong>шаг № 3</strong>: подключитесь к серверу mysql от имени пользователя root.</p><p><strong>шаг # 4</strong>: установить новый пароль учетной записи root для mysql, т.е. сбросить пароль mysql.</p><p><strong>шаг № 5</strong>: выйдите и перезапустите сервер mysql.</p><p>вот команды, которые нужно вводить для каждого шага (войдите в систему как пользователь root):</p><p><strong>шаг # 1</strong>: остановить службу mysql</p><pre><code># /etc/init.d/mysql stop </code></pre><p>результат:</p><pre><code>stopping mysql database server: mysqld. </code></pre><p><strong>шаг № 2</strong>: запустите сервер mysql без пароля:</p><pre><code># mysqld\_safe --skip-grant-tables & </code></pre><p>результат:</p><pre><code>[1] 5988 starting mysqld daemon with databases from /var/lib/mysql mysqld\_safe[6025]: started </code></pre><p><strong>шаг № 3</strong>: подключиться к серверу mysql с помощью клиента mysql:</p><pre><code># mysql -u root </code></pre><p>результат:</p><pre><code>welcome to the mysql monitor. commands end with ; or \g. your mysql connection id is 1 to server version: 4.1.15-debian\_1-log type 'help;' or '\h' for help. type '\c' to clear the buffer. mysql> </code></pre><p><strong>шаг № 4</strong>: установка нового пароля пользователя root mysql</p><pre><code>mysql> use mysql; mysql> update user set password=password("new-root-password") where user='root'; mysql> flush privileges; mysql> quit </code></pre><p><strong>шаг № 5</strong>: остановить mysql server:</p><pre><code># /etc/init.d/mysql stop </code></pre><p>результат:</p><pre><code>stopping mysql database server: mysqld stopping server from pid file /var/run/mysqld/mysqld.pid mysqld\_safe[6186]: ended [1]+ done mysqld\_safe --skip-grant-tables </code></pre><p><strong>шаг № 6</strong>: запустите сервер mysql и протестируйте его</p><pre><code># /etc/init.d/mysql start # mysql error 1045 (28000): access denied for user 'root'@'localhost' (using password: no) # mysql -u root -p </code></pre><p>источник: <a href="http://www.cyberciti.biz/tips/recover-mysql-root-password.html">http://www.cyberciti.biz/tips/recover-mysql-root-password.html</a> </p>

<p>работал для меня и "5.7.11 mysql community server":</p><pre><code>use mysql; update user set authentication\_string=password(''), plugin='mysql\_native\_password' where user='root'; </code></pre><p>мне также пришлось изменить поле «плагин», потому что оно было установлено в «auth\_socket».</p><p>после этого я мог подключиться как <code>mysql -u root</code> без пароля.</p>

<p>если вам нужен пустой пароль, вы должны установить для него значение null и не использовать хэш-функцию password, как таковую:</p><p>в командной строке:</p><pre><code>sudo service mysql stop sudo mysqld\_safe --skip-grant-tables --skip-networking & mysql -uroot </code></pre><p>в mysql:</p><pre><code>use mysql; update user set password=null where user='root'; flush privileges; quit; </code></pre>

<ul> <li>подключитесь к mysql как пользователь root (используйте один из двух следующих методов) <ul> <li>войдите в систему как root и запустите mysql, используя <code>mysql -p</code>, введите текущий пароль root</li> <li>войдите под своим именем и запустите mysql с помощью <code>mysql -u root -p</code>, введите текущий пароль root </li> </ul></li> <li><code>mysql> set password = password('');</code></li> </ul><p>готово! нет пароля root.</p>

<pre><code>set password for 'root'@'localhost' = password(''); </code></pre>

<p>это работало для меня на ubuntu 16.04 с v5.7.15 mysql:</p><p>во-первых, убедитесь, что у вас установлен mysql-клиент (<code>sudo apt-get install mysql-client</code>).</p><p>откройте терминал и войдите:</p><pre><code>mysql -uroot -p </code></pre><p>(затем введите свой пароль)</p><p>после этого:</p><pre><code>use mysql; update user set authentication\_string=password(''), plugin='mysql\_native\_password' where user='root'; </code></pre><p>(tnx @ станислав караханов)</p><p>и самое важное -<strong> сброс службы mysql </strong>:</p><pre><code>sudo service mysql restart </code></pre><p>теперь вы сможете войти (без пароля) также с помощью mysql workbench.</p>

<p>не стоит редактировать базу данных <code>mysql</code> напрямую.</p><p>я предпочитаю следующие шаги:</p><pre><code>mysql> alter user 'root'@'localhost' identified by ''; mysql> flush privileges; </code></pre>

<p>для mysql 8.0 просто:</p><p><code>set password for 'root'@'localhost' = '';</code></p>

<p>меня устраивает.</p><p>alter user 'root' @ 'localhost' идентифицировано с mysql\_native\_password by 'password'</p>

<p>ответ пользователя 64141</p><pre><code>use mysql; update user set password=null where user='root'; flush privileges; quit; </code></pre><p>не работал для меня в mariadb 10.1.5 (предполагается, что замена mysql). хотя я не тестировал его в mysql 5.6, чтобы узнать, является ли это восходящим изменением, я получил ошибку:</p><blockquote> <p>ошибка 1048 (23000): столбец «пароль» не может быть пустым</p> </blockquote><p>но замена нуля пустыми одинарными или двойными кавычками работала нормально.</p><pre><code>update user set password='' where user='root'; </code></pre><p>или же</p><pre><code>update user set password="" where user='root'; </code></pre>

<p>мой вариант для mysql 5.7:</p><p>остановить службу mysql:</p><pre><code>$ sudo service mysql stop запуск в безопасном режиме:$ sudo mysqld\_safe --skip-grant-tables --skip-networking </code></pre><p>(над строкой целая команда)</p><p>откройте новое окно терминала:</p><pre><code>$ mysql -u root $ mysql use mysql; $ mysql update user set authentication_string=password('password') where user='root'; $ mysql update user set plugin="mysql\_native\_password" where user='root'; $ mysql flush privileges; $ mysql quit; </code></pre><p>запустите службу mysql:</p><pre><code>$ sudo service mysql start </code></pre>

<p>все, потому что вы установили версию mysql более 5.6</p><p>решения</p><p>1. вы можете ухудшить mysql версию решения</p><p>2 перенастроить аутентификацию на аутентификацию собственного или устаревшего типа, используя<br> настроить параметр</p>

<p>я использую nodejs и windows 10. мне помогло сочетание двух ответов.</p><pre><code>mysql> alter user 'root'@'localhost' identified by ''; mysql> flush privileges; </code></pre><p>с последующим:</p><pre><code>restart; </code></pre><p>надеюсь, это поможет другим, у кого все еще есть проблемы с этим.</p>

<p>для подключения к mysql без пароля:</p><p><code>mysql -p set password = ""</code></p><p> <a href="https://dev.mysql.com/doc/refman/5.7/en/set-password.html">https://dev.mysql.com/doc/refman/5.7/ru/set-password.html</a> </p>

<p>если вы знаете свой root-пароль и просто хотите сбросить его, выполните следующие действия:</p><ul> <li><p>запустите mysql service из панели управления> администрирование> службы. (только если он был остановлен вами ранее! в противном случае просто пропустите этот шаг)</p></li> <li><p>запустите mysql workbench</p></li> <li><p>введите эту команду/строку sql</p> <p>alter user 'root' @ 'localhost' password expire;</p></li> </ul><p>чтобы сбросить любой другой пароль пользователя ... просто введите другое имя пользователя вместо root. </p>

<p>синтаксис немного отличается в зависимости от версии. из документов здесь: <a href="https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html">https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html</a> </p><p>mysql 5.7.6 и позже:</p><pre><code>alter user 'root'@'localhost' identified by ''; </code></pre><p>mysql 5.7.5 и более ранние:</p><pre><code>set password for 'root'@'localhost' = password(''); </code></pre>

<p>это из mysql 8.0.13:</p><pre><code>use mysql; update user set authentication\_string=null where user='root'; quit; </code></pre>

<p>хотел поставить здесь свои 2цента, потому что вышеупомянутые ответы у меня не сработали .. на centos 7, mysql community v8, shell - bash.</p><p>правильные команды будут следующими:</p><pre><code># start mysql without password checking systemctl stop mysqld 2>/dev/null systemctl set-environment mysqld\_opts="--skip-grant-tables" && systemctl start mysqld # set default password to nothing mysql -u root mysql <<- 'eof' flush privileges; uninstall component 'file://component\_validate\_password'; alter user 'root'@'localhost' identified with mysql\_native\_password by ''; flush privileges; install component 'file://component\_validate\_password'; eof # restart mysql normally systemctl restart mysqld </code></pre><p>тогда вы можете войти без пароля:</p><pre><code>mysql -u root </code></pre>