Я инженер-электрик, который вместо программирования в основном занимается системами электропитания. Недавно я следовал руководству по установке программного пакета на Ubuntu. На самом деле, у меня нет никаких знаний о mySQL
. Я выполнил следующие установки на моем Ubuntu.
sudo apt-get update
sudo apt-get install mysql-server-5.5
sudo apt-get install mysql-client-5.5
sudo apt-get install mysql-common
sudo apt-get install glade
sudo apt-get install ntp
Затем я делаю
me@ubuntu:~/Desktop/iPDC-v1.3.1/DBServer-1.1$ mysql -uroot -proot <"Db.sql"
В итоге я получил следующее сообщение об ошибке.
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Как я могу исправить это и продолжить?
Примечание: Для MySQL 5.7+, пожалуйста, смотрите ответ от @Lahiru на этот вопрос. Там содержится более актуальная информация.
Для MySQL < 5.7:
Пароль root по умолчанию пустой (т.е. пустая строка), а не root
. Поэтому вы можете просто войти в систему как:
mysql -u root
Очевидно, что вам следует изменить пароль root после установки
mysqladmin -u root password [newpassword]
В большинстве случаев вам также следует настроить учетные записи отдельных пользователей перед началом работы с БД.
Вы должны сбросить пароль! шагов для Mac и OSX(протестировано и работает) и Ubuntu
Остановить MySQL, используя
sudo service mysql stop
или
$ sudo /usr/local/mysql/support-files/mysql.server stop
Запустить его в безопасном режиме:
$ sudo mysqld_safe --skip-grant-tables --skip-networking
(выше линии вся команда)
Это будет постоянной команды, пока процесс не закончен, так что открыть еще одно окно консоли/терминала, войти без пароля:
$ mysql -u root
mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
Как за @IberoMedia'ы комментарий, для более новых версий MySQL, поле называется authentication_string
:
mysql> UPDATE mysql.user SET authentication_string =PASSWORD('password') WHERE User='root';
Запустить MySQL, используя:
sudo service mysql start
или
sudo /usr/local/mysql/support-files/mysql.server start
ваш новый пароль 'пароль'.
если проблема все еще существует, попробуйте принудительно изменить пасс
/etc/init.d/mysql stop
mysqld_safe --skip-grant-tables &
mysql -u root
Установка нового пароля корневого пользователя MySQL
use mysql;
update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
flush privileges;
quit;
Остановите сервер MySQL:
/etc/init.d/mysql stop
Запустите сервер MySQL и протестируйте его:
mysql -u root -p
На начальном запуске сервера происходит следующее, Учитывая, что каталог данных сервера пустые:
Чтобы показать это, используйте следующую команду:
shell> sudo grep 'temporary password' /var/log/mysqld.log
Как можно скорее измените пароль, войдя в созданный временный пароль и задать собственный пароль для учетной записи суперпользователя:
shell> mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass5!';
Я знаю, это старый вопрос, но я чувствую, что это может помочь кому-то. Я недавно столкнулся с такой же проблемой, но в моем случае, я помню, мой пароль довольно хорошо, но он продолжал давать мне ту же ошибку. Я пробовал так много решений, но еще ни один не помогал я попытался это
mysql -u root -p
после чего он спросит у вас пароль такой
Enter password:
и тогда я ввел пароль, которые я использую. Что's все
Это происходит, когда пароль отсутствует.
Шаги, чтобы изменить пароль, когда вы забыли:
команду sudo systemctl остановить MySQL
судо mysqld_safe --Skip-с грант-столы --скип-сетей &
Амперсанд в конце команды сделает этот процесс запустить в фоновом режиме, так что вы можете продолжать использовать ваш терминал и выполните #для mysql -u в корень, он не будет запрашивать пароль.
Если вы получаете сообщение об ошибке, как показано ниже:
2018-02-12T08:57:39.826071 з mysqld_safe каталог ' файл/var/работа/тузды' для Unix сокет-файла Дон'т существует. в mysql -u в корень Ошибка 2002 (HY000): может'т подключиться к локальному серверу MySQL через сокет ' файл/var/работа/тузды/тузды.носок' (2) [1]+ Выход 1
судо команды mkdir /ВАР/работа/тузды
Дать разрешение пользователя MySQL на запись в каталог сервиса.
судо команду chown MySQL в каталог /var/работа/тузды
Выполните ту же команду в шаге 2, чтобы запустить MySQL в фоновом режиме.
Выполнить mysql -u в корень вы получите в консоли MySQL без ввода пароля.
Выполните эти команды
ЗАПОДЛИЦО ЛЬГОТ;
Для MySQL 5.7.6 и новее
Изменять пользователя 'корне'@'localhost в' определенных 'новый_пароль';
Для MySQL 5.7.5 и старше
Установить пароль для 'корне'@'локальный' = пароль('новый_пароль');
Если изменить пользователя команда не'т работы использовать:
Обновите MySQL.пользователь может установить authentication_string = пароль('новый_пароль'), где пользователь = 'корне' и узел = 'локальный';
Теперь выход
судо убить кот /ВАР/работа/тузды/тузды.пид`
команду sudo systemctl запуска MySQL
Я использую Ubuntu-16.04 : установлен MySQL - 5.7. У меня была та же проблема : логин запрещен для пользователя root.
Пробовал следующие действия:
команды dpkg --вам-выбор | команда grep MySQL на
(для получения версии MySQL).
помощью dpkg-перенастроить MySQL-сервера-5.7
для mysql -u в корень -п
Без -P, который не'т предложит вам задать пароль. Как только вы находитесь в, вы можете создать пользователя с паролем, выполните следующие действия : `` Создать пользователя 'your_new_username'@'ваш-узла' определенных 'ваш-пароль';
ВСЕ ПРИВИЛЕГИИ ПО . в 'your_new_username'@'ваш-узла' с возможностью предоставления; ``
Выход из корня и логин от в <имя> ты дал выше.
вернуться <your_new_username> -п
Почему-то все еще просто набрав MySQL не работают. НА ВСЕХ. Я предлагаю сделать это привычкой, чтобы использовать вернуться в <имя> -п
.
Я наткнулся на эту очень досадную проблему и нашел много ответов, которые не работают. Лучшее решение я наткнулся был полностью удалить MySQL и повторно установить его. На повторной установке вы установили пароль администратора и это решило проблему.
``
суда apt-получить продувки с MySQL-сервером mysql-mysql клиент-общих MySQL-сервер-ядро-5.5 MySQL-клиента-ядро-5.5 судо РМ -РФ в /etc/mysql в файле /var/библиотека/MySQL в судо apt-получить autoremove судо apt-получить автоочистка ``
Я нашел этот код в другом месте, поэтому я не несу никакой кредит на это. Но это работает. Чтобы установить MySQL после его удаления, я думаю, цифровом океане есть хороший учебник по нему. Оформить заказ моя суть в этом. <БР> https://gist.github.com/JamesDaniel/c02ef210c17c1dec82fc973cac484096
Пожалуйста, прочитайте официальную документацию: для MySQL: как сбросить пароль root
Если у вас есть доступ к терминалу:
В MySQL 5.7.6 и позже:
$ mysql
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
В MySQL 5.7.5 и раньше:
$ mysql
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
У меня установлен MySQL в качестве суперпользователя(
$судо
) и получил этот же вопрос Вот как я это исправил-
$ судо кошка файле /etc/mysql в/дебиан.КНФ
Это покажет детали как
# Автоматически сгенерированных скриптов в Debian. НЕ ТРОГАТЬ! [клиент] хост = localhost в пользователь = дебиан-системы мейнт пароль = GUx0RblkD3sPhHL5 сокет = /ВАР/работа/тузды/тузды.носок [mysql_upgrade] хост = localhost в пользователь = дебиан-системы мейнт пароль = GUx0RblkD3sPhHL5 сокет = /ВАР/работа/тузды/тузды.носок
Выше мы можем видеть пароль, просто мы собираемся использовать(GUx0RblkD3sPhHL5)
, что в приглашении-
для MySQL -у дебиан-системы мейнт -п Введите пароль:
теперь Укажите пароль(GUx0RblkD3sPhHL5).
для mysql -u в корень -п Введите пароль:
Теперь дают новый пароль. Что's все, у нас есть новый пароль для дальнейшего использования.
Он работал для меня, надеюсь, помочь вам тоже!
просто введите в терминале
в mysql -u в корень -п . чем он будет просить пароль
Ответ может звучать глупо, но после тратить часы времени, это, как я получил его на работу
mysql -u root -p
Я получил сообщение об ошибке
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Хотя я был введя правильный пароль(временный пароль, который вы получаете, когда вы впервые установить MySQL)
Я получил это право, когда я набирается пароль, если пароль был мигающий
Я с помощью MySQL-5.7.12-osx10.11-архитектуру x86_64.DMG в Mac и OSX с
Процесс установки автоматически устанавливает временный пароль для пользователя root. Вы должны сохранить пароль. Пароль не может быть восстановлен.
Следуйте инструкции
Если вы желаете установить пароль: "в корень" тогда команда будет иметь вид,
Установить пароль для 'корне'@'локальный' = пароль('корне');`Для удобства можно добавить в "/usr/местные/MySQL в/бин"
в ваш путь
Теперь в любом месте вы можете типа ./СУБД MySQL -U в корень -п
, а затем введите пароль, и вы будете заставить MySQL> быстрое.
Надеюсь, что это помогает.
Это сработает, если вы вводите команды, отметил в другие ответы, но вы все еще получаете эти ошибки:
mysqld_safe Logging to '/var/log/mysql/error.log'.
mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
[1]+ Exit 1 sudo mysqld_safe --skip-grant-tables
Выполните указанные ниже команды шаг за шагом, пока вы сбросить ваш пароль:
# Stop Your Server First
sudo service mysql stop
# Make MySQL service directory.
sudo mkdir /var/run/mysqld
# Give MySQL permission to work with the created directory
sudo chown mysql: /var/run/mysqld
# Start MySQL, without permission and network checking
sudo mysqld_safe --skip-grant-tables --skip-networking &
# Log in to your server without any password.
mysql -u root mysql
# Update the password for the root user:
UPDATE mysql.user SET authentication_string=PASSWORD('YourNewPasswordBuddy'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
#if you omit (AND Host='localhost') section, it updates the root pass regardless of its host
FLUSH PRIVILEGES;
EXIT;
#Now you can use your new password to login to your Server
mysql -u root -p
если проблема существует до сих пор пытаются заставить изменить пасс
Остановить MySQL сервер (на Linux):
/etc/init.d/mysql stop
Остановить сервер MySQL (на Mac):
mysql.server stop
Запустить демон mysqld_safe с --Skip-грант-столы
mysqld_safe --skip-grant-tables &
mysql -u root
Установить новый пароль root пользователя MySQL
use mysql;
update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
flush privileges;
quit;
Остановить MySQL сервер (на Linux):
/etc/init.d/mysql stop
Остановить сервер MySQL (на Mac):
mysql.server stop
Запустить сервер MySQL обслуживания и тестирования для входа в систему с помощью корня:
mysql -u root -p
Только одна линия и она решила мою проблему.
sudo dpkg-reconfigure mysql-server-5.5
В Ubuntu 16.04 (версия MySQL 5.7.13) мне удалось решить проблему с шагами ниже:
Следуйте инструкциям в разделе B. 5.3.2.2 сброс пароля пользователя root: Unix и Unix-подобных систем В MySQL 5.7 справочное руководство
Когда я попробовал #судо mysqld_safe --инит-файл=/домой/меня/в MySQL-инит & это не удалось. Ошибка была в /var/журнал/MySQL в/ошибки.журнал
2016-08-10T11:41:20.421946 з 0 [Примечание] выполнение init_file '/домой/меня/СУБД MySQL/MySQL с-инит' начал. 2016-08-10T11:41:20.422070 з 0 [ошибка] файл /usr на/sbin/mysqld в: файл '/домой/меня/СУБД MySQL/MySQL с-инит' не найден (Errcode: 13 - отказано в доступе) 2016-08-10T11:41:20.422096 з 0 [ошибка] прерывание
Разрешение файла для MySQL Init не было проблемой, нужно изменить разрешение в AppArmor
.... в /var/журнал/MySQL в/ р в /var/журнал/MySQL в/** РВ,
/главная/Пранаб/MySQL в/* р
Сайт-специфические # дополнений и замещений. Увидеть местные/README для деталей.
} 4. Сделать #суда /и т. д./init.Д/в AppArmor перезагрузить
Начать mysqld_safe снова попробовать шаге 2 выше. Проверьте /var/журнал/MySQL в/ошибки.журнал убедитесь, что нет ошибки и mysqld не удачно начал
Запуска #для mysql -u в корень -п
Введите пароль:
Введите пароль, который вы указали в MySQL-инит. Вы должны быть в состоянии войти в систему как root теперь.
Выключение mysqld_safe на #судо команды mysqladmin -U в корень -п выключения
Запустить mysqld обычным способом на #команду sudo systemctl запуска MySQL
На Mac, Если у вас возникли проблемы при входе в первый пароль вам выдали при установке, может быть, вы можете просто убить процесс MySQL, а затем попробовать.
Так: 1 - выполните следующую команду, чтобы найти идентификатор в MySQL:
ps -aef | grep mysql | grep -v grep
2 - убить процесс:
kill -15 [process id]
Затем вы можете войти с первичным паролем, используя эту команду:
mysql -uroot -p
Который попросит вас ввести ваш пароль. Просто введите начальный пароль.
У меня была аналогичная проблема:
ошибка 1045 (28000): Доступ запрещен для пользователя 'корне'@'локальный' (через пароля: нет)
Но в моем случае, причина была очень глупой. Я скопировал команду из документа Word, и проблема была в том, что дефис не имеют 2Д код ASCII, но E28093 Юникод.
Неправильный путь:
mysql -u root –pxxxx
Правильный путь:
mysql -u root -pxxxx
Обе выглядят одинаково, но они'т то же (попробуйте, скопируйте и вставьте замены пароля).
Столкнувшись с такого рода ошибка, рекомендуется попробовать вводить команду вместо копирования и вставки.