Я не могу понять мой пароль root для MySQL; как я могу это выяснить? Есть ли файл, где хранится этот пароль?
Я перехожу по этой ссылке, но у меня нет директории directadmin в локальной сети.
Я не могу понять мой пароль root для MySQL; как я могу это выяснить? Есть ли файл, где хранится этот пароль?
Я перехожу по этой ссылке, но у меня нет директории directadmin в локальной сети.
Ответы:
благодаря @thusharaK я смог сбросить пароль root, не зная старого пароля.
На Ubuntu я сделал следующее:
sudo service mysql stop
sudo mysqld_safe --skip-grant-tables --skip-syslog --skip-networking
Затем запустите mysql в новом терминале:
mysql -u root
И выполните следующие запросы, чтобы изменить пароль:
UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';
FLUSH PRIVILEGES;
В MySQL 5.7 поле пароля в поле таблицы mysql.user было удалено, теперь имя поля - «authentication_string».
Выйдите из безопасного режима mysql и запустите службу mysql:
mysqladmin shutdown
sudo service mysql start
mysqladmin -u root -p shutdown
, с новым паролем.
mysql -u root
. Это показывает ошибкуAccess denied
Вы не можете просмотреть хешированный пароль; единственное, что вы можете сделать, это сбросить его!
Остановите MySQL:
sudo service mysql stop
или
$ sudo /usr/local/mysql/support-files/mysql.server stop
Запустите его в безопасном режиме:
$ sudo mysqld_safe --skip-grant-tables
(над строкой целая команда)
Это будет постоянная команда до завершения процесса, поэтому откройте другое окно оболочки / терминала и войдите без пароля:
$ mysql -u root
mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
MySQL 5.7 и выше:
mysql> use mysql;
mysql> update user set authentication_string=password('password') where user='root';
Запустите MySQL:
sudo mysql start
или
sudo /usr/local/mysql/support-files/mysql.server start
Ваш новый пароль - «пароль».
mysql_secure_installation
и root больше не сотрудничал. Что делает authentication_string
настройка?
mysqladmin -u root -p shutdown
с новым паролем тогдаsudo service mysql start
MySQL 5.7 и выше сохраняет корень в файле журнала MySQL.
Пожалуйста, попробуйте это:
sudo grep 'temporary password' /var/log/mysqld.log
/var/log/mysql/error.log
содержал предупреждение о корневой пароль порожняком - поэтому этот вид сэкономленного мой день :)
одна вещь, которая спровоцировала меня на новой установке mySQL, и удивилась, почему я не могу заставить работать пароль по умолчанию и почему даже методы сброса не работают. хорошо получается, что в Ubuntu 18 самая последняя версия сервера MySQL не использует пароль по умолчанию для пользователя root по умолчанию. Таким образом, это означает, что не имеет значения, что вы установили, оно не позволит вам его использовать. он ожидает, что вы войдете из привилегированного сокета. так
mysql -u root -p
не будет работать вообще, даже если вы используете правильный пароль !!! он будет запрещать доступ независимо от того, что вы вставили.
Вместо этого вам нужно использовать
sudo mysql
это будет работать без любого пароля. затем, когда вам нужно, введите
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Password you want to use';
затем выйдите из системы, и теперь кровавая вещь, наконец, примет ваш пароль
Вы не можете найти это. Он хранится в базе данных, к которой вам нужен пароль root, и даже если вы каким-то образом получили доступ, он хэшируется с односторонним хешем. Вы можете сбросить его: http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html
Выполните следующие действия для сброса пароля в системе Windows.
Остановить службу Mysql из диспетчера задач
Создайте текстовый файл и вставьте приведенную ниже инструкцию
MySQL 5.7.5 и более ранние:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yournewpassword');
MySQL 5.7.6 и позже:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'yournewpassword';
Сохранить как mysql-init.txt
и поместить его в 'C' drive
.
Откройте командную строку и вставьте следующее
C:\> mysqld --init-file=C:\\mysql-init.txt
mysqld --init-file=/root/m.txt
. Я добавил вышеупомянутую команду SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yournewpassword');
в /root/m.txt
Если менеджер пакетов не просит вас ввести пароль root во время установки, пароль по умолчанию - пустая строка. Чтобы подключиться к только что установленному серверу, введите:
shell> mysql -u root --password=
mysql>
Чтобы изменить пароль, вернитесь к оболочке unix и введите:
shell> mysqladmin -u root --password= password root
Новый пароль - «root». Теперь подключитесь к серверу:
shell> mysql -u root --password=
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
К сожалению, пароль изменился. Используйте новый root
:
shell> mysql -u root --password=root
...
blah, blah, blah : mysql welcome banner
...
mysql>
Бинго! Новые делают что-то интересное
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
Maurycy
Вы можете просмотреть пароль root для MySQL, ну, я попробовал его на MySQL 5.5, поэтому не знаю, хорошо ли работают другие новые версии или нет
nano ~/.my.cnf
Это сработало для меня:
На терминале наберите следующее
$ sudo mysql -u root -p
Введите пароль: // просто нажмите ввод
MySQL>
Пароль по умолчанию, который работал для меня после немедленной установки сервера MySQL: mysql
Процедура меняется в зависимости от версии MySql. Следуйте процедуре точно так же, как описано для вашей версии:
СОВЕТЫ - Прочтите перед страницей инструкции для вашей версии MySql *
На шаге 5: вместо запуска CMD создайте ярлык на рабочем столе с именем CDM.exe. Затем щелкните правой кнопкой мыши по ярлыку и выберите «Выполнить от имени администратора».
На шаге 6: пропустите первую предложенную версию команды и выполните вторую, с параметром --defaults-file.
После выполнения команды, если все в порядке, окно CMD остается открытым, а команда шага 6 продолжает выполняться. Просто закройте окно (нажмите «x»), а затем принудительно закройте MySQl из диспетчера задач.
Удалите файл командами SQL и снова запустите MySQL. Пароль должен быть изменен сейчас.
5.0 http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html
5.1 http://dev.mysql.com/doc/refman/5.1/en/resetting-permissions.html
... просто поменяйте версию в ссылке (5.5, 5.6, 5.7)
В вашем файле "hostname" .err внутри папки данных, над которой работает MySQL, попробуйте найти строку, которая начинается с:
«Для roor @ localhost создан временный пароль»
ты можешь использовать
less /mysql/data/dir/hostname.err
затем косая черта, за которой следует строка, которую вы хотите найти
/"A temporary password"
Затем нажмите n, чтобы перейти к следующему результату.
Ответы, представленные здесь, похоже, не сработали для меня, уловка оказалась: ALTER USER 'root' @ 'localhost' ИДЕНТИФИЦИРОВАН С mysql_native_password BY 'test';
(полный ответ здесь: https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/ )
система:
Процедура:
Откройте два сеанса оболочки, войдя в один из них как пользователь root, а другой - как пользователь root, имеющий доступ к mysql
команде.
В вашей корневой сессии остановите обычный прослушиватель mysqld и запустите прослушиватель, который обходит аутентификацию по паролю ( примечание: это серьезная угроза безопасности, поскольку любой, имеющий доступ к mysql
команде, может получить доступ к вашим базам данных без пароля. Возможно, вы захотите закрыть активные сеансы оболочки и / или отключить доступ к оболочке перед этим):
# systemctl stop mysqld
# /usr/sbin/mysqld --skip-grant-tables -u mysql &
В сеансе без рута войдите в mysql и установите пароль root для mysql:
$ mysql
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> quit;
В вашей корневой сессии убейте экземпляр пароля mysqld без пароля и восстановите обычный прослушиватель mysqld для службы:
# kill %1
# systemctl start mysqld
В сеансе без рута протестируйте новый пароль root, который вы настроили выше:
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
...
mysql>
Я решил это по-другому, это может быть проще для некоторых.
Я сделал это так, потому что попытался запустить в безопасном режиме, но не могу подключиться с ошибкой: ОШИБКА 2002 (HY000): Не удается подключиться к локальному серверу MySQL через сокет '/var/run/mysqld/mysqld.sock' (2)
Что я сделал, чтобы подключиться как root:
$ sudo mysql -u root
Затем я создал нового супер пользователя:
mysql> grant all privileges on *.* to 'myuser'@'%' identified by 'mypassword' with grant option;
mysql> quit
Тогда войдите как myuser
$ mysql -u myuser -p -h localhost
Попытка изменить пароль не дала мне никаких ошибок, но ничего не сделала для меня, поэтому я удалил и заново создал пользователя root
mysql> drop user 'root'@'localhost;
mysql> mysql> grant all privileges on *.* to 'root'@'localhost' identified by 'mypassword' with grant option;
Пользователь root теперь работает с новым паролем
Перейдите в phpMyAdmin> config.inc.php> $ cfg ['Servers'] [$ i] ['password'] = '';
phpmyadmin
.