Я инженер-электротехник, который в основном играет с энергосистемой вместо программирования. Недавно я изучил руководство по установке программного пакета на 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]
В большинстве случаев вы должны также настроить отдельные учетные записи пользователей, прежде чем активно работать с БД.
-proot <"Db.sql
часть -proot <"Db.sql
?
-p
указывает пароль, поэтому после изменения пароля root вы должны сделать следующее: mysql -u root -p[newpassword]
. < [filename]
использует ввод std для выполнения файла SQL по пути, указанному через предоставленные вами учетные данные пользователя.
Мне удалось решить эту проблему, выполнив этот оператор
sudo dpkg-reconfigure mysql-server-5.5
Что изменит пароль root.
dpkg --get-selections | grep sql
чтобы получить вашу версию
Вы должны сбросить пароль! шаги для 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
Ваш новый пароль - "пароль".
--skip-grant-tables
вместе с --skip-networking
для предотвращения подключения удаленных клиентов. о, а также, этот не работал для меня. Вот почему я пришел сюда: p
если проблема все еще существует, попробуйте принудительно изменить проход
/etc/init.d/mysql stop
mysqld_safe --skip-grant-tables &
mysql -u root
Настройка нового пароля пользователя root root
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
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
также преследовал мой сервер. «mysqld_safe» также не удался, пока я не сделал «killall mysqld» ПОСЛЕ вашего шага 1.
--skip-grant-tables
вместе с --skip-networking
для предотвращения подключения удаленных клиентов. о, а также, этот не работал для меня. Вот почему я пришел сюда: p
При первоначальном запуске сервера происходит следующее, учитывая, что каталог данных сервера пуст:
Чтобы открыть его, используйте следующую команду:
shell> sudo grep 'temporary password' /var/log/mysqld.log
Измените пароль root как можно скорее, войдя с созданным временным паролем и установите пользовательский пароль для учетной записи суперпользователя:
shell> mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass5!';
sudo grep 'temporary password' /var/log/mysqld.log
я получаю /var/log/mysqld.log: No such file or directory
sudo grep 'temporary password' /var/log/mysql/error.log
. Решение @Lahiru сработало для меня.
Это происходит, когда ваш пароль отсутствует.
Действия, чтобы изменить пароль, если вы забыли:
Остановите MySQL Server (в Linux):
sudo systemctl stop mysql
Запустите базу данных без загрузки таблиц грантов или включения сетей:
sudo mysqld_safe --skip-grant-tables --skip-networking &
Амперсанд в конце этой команды заставит этот процесс работать в
фон, так что вы можете продолжать использовать свой терминал и запустить #mysql -u root, он не будет запрашивать пароль.
Если вы получаете ошибку, как показано ниже:
2018-02-12T08: 57: 39.826071Z mysqld_safe Каталог '/var/run/mysqld' для UNIX
Файл сокета не существует. mysql -u root ERROR 2002 (HY000): не удается подключиться к локальному серверу MySQL через сокет
'/var/run/mysqld/mysqld.sock' (2) [1] + Выход 1
Сделать сервисный каталог MySQL.
sudo mkdir /var/run/mysqld
Дайте пользователю MySQL разрешение на запись в каталог службы.
sudo chown mysql: /var/run/mysqld
Выполните ту же команду на шаге 2, чтобы запустить mysql в фоновом режиме.
Запустите mysql -u root, вы получите консоль mysql без ввода пароля.
Запустите эти команды
FLUSH PRIVILEGES;
Для MySQL 5.7.6 и новее
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
Для MySQL 5.7.5 и старше
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');
Если команда ALTER USER не работает, используйте:
UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHERE User = 'root' AND Host = 'localhost';
Теперь выход
Чтобы остановить экземпляр запущен вручную
sudo kill 'cat /var/run/mysqld/mysqld.pid'
Перезапустите MySQL
sudo systemctl start mysql
sudo kill `sudo cat /var/run/mysqld/mysqld.pid`
Я знаю, что это старый вопрос, но я чувствую, что это может кому-то помочь. Недавно я столкнулся с той же проблемой, но в моем случае я хорошо помню свой пароль, но он продолжал выдавать мне ту же ошибку. Я пробовал так много решений, но все равно ни один не помог, тогда я попробовал это
mysql -u root -p
после чего он запрашивает у вас пароль
Enter password:
а затем я ввел пароль, который я использовал. Все это
Использую Ubuntu-16.04: установлен mysql - 5.7. У меня была та же проблема: вход в систему запрещен для пользователя root.
Попробовал следующие шаги:
dpkg --get-selections | grep mysql
dpkg --get-selections | grep mysql
(чтобы получить версию mysql).
dpkg-reconfigure mysql-server-5.7
mysql -u root -p
Без -p это не побуждает вас спрашивать пароль. Войдя в систему, вы можете создать пользователя с паролем, выполнив следующие действия:
CREATE USER 'your_new_username'@'your-hostname' IDENTIFIED BY 'your-password';
GRANT ALL PRIVILEGES ON *.* to 'your_new_username'@'your-hostname' WITH GRANT OPTION;
Выход из рута и логин с того, что вы дали выше.
mysql -u <your_new_username> -p
По какой-то причине все еще просто печатать mysql не работает. СОВСЕМ. Я предлагаю сделать это привычкой использовать mysql -u <name> -p
.
Я столкнулся с этой очень раздражающей проблемой и нашел много ответов, которые не работали. Лучшее решение, с которым я столкнулся, было полностью удалить mysql и переустановить его. При переустановке вы устанавливаете пароль root, и это решает проблему.
sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-core-5.5 mysql-client-core-5.5
sudo rm -rf /etc/mysql /var/lib/mysql
sudo apt-get autoremove
sudo apt-get autoclean
Я нашел этот код в другом месте, поэтому я не беру на себя ответственность за него. Но это работает. Чтобы установить mysql после его удаления, я думаю, что у digital Ocean есть хорошее руководство. Оформите мою суть для этого.
https://gist.github.com/JamesDaniel/c02ef210c17c1dec82fc973cac484096
Прочтите официальную документацию: Mysql: Как Reset пароль 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 -u {your_username}
Ответ может показаться глупым, но после того, как он потратил много времени, так я получил его на работу
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. Вы должны сохранить пароль. Пароль не может быть восстановлен.
Следуйте инструкциям
cd /usr/local/mysql/bin/
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('{YOUR_PASSWORD}');
Если вы хотите установить свой пароль: "root", тогда команда будет SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
exit
./mysql -u root -p
Для удобства вы должны добавить "/usr/local/mysql/bin"
в свой PATH
Теперь из любого места вы можете ввести ./mysql -u root -p
и затем ввести пароль, и вы получите приглашение mysql > .
Надеюсь, это поможет.
если проблема все еще существует, попробуйте принудительно изменить проход
Остановить сервер MySQL (в Linux):
/etc/init.d/mysql stop
Остановить сервер MySQL (в Mac OS X):
mysql.server stop
Запустите демон mysqld_safe с помощью -skip-grant-tables
mysqld_safe --skip-grant-tables &
mysql -u root
Настройка нового пароля пользователя root root
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 OS X):
mysql.server stop
Запустите службу сервера MySQL и проверьте для входа в систему root:
mysql -u root -p
В Ubuntu 16.04 (версия MySQL 5.7.13) я смог решить проблему с помощью следующих шагов:
Следуйте инструкциям из раздела B.5.3.2.2 Сброс корневого пароля: Unix и Unix-подобные системы Справочное руководство по MySQL 5.7
Когда я пробовал #sudo mysqld_safe --init-file =/home/me/mysql-init, и он не удался. Ошибка была в /var/log/mysql/error.log
2016-08-10T11: 41: 20.421946Z 0 [Примечание] Выполнено выполнение init_file '/home/me/mysql/mysql-init'. 2016-08-10T11: 41: 20.422070Z 0 [ERROR]/usr/sbin/mysqld: Файл '/home/me/mysql/mysql-init' не найден (Errcode: 13 - Permission denied) 2016-08-10T11: 41: 20.422096Z 0 [ОШИБКА] Отмена
Разрешение файла mysql-init не было проблемой, необходимо отредактировать разрешение аранжировщика
Редактировать #sudo vi/etc/apparmor.d/usr.sbin.mysqld
....
/var/log/mysql/ r,
/var/log/mysql/** rw,
# Allow user init file
/home/pranab/mysql/* r,
# Site-specific additions and overrides. See local/README for details.
#include <local/usr.sbin.mysqld>
}
Перезагрузите #sudo/etc/init.d/apparmor
Запустите mysqld_safe, повторите шаг 2 выше. Проверьте /var/log/mysql/error.log убедитесь, что нет ошибки, и mysqld успешно запущен.
Запустите #mysql -u root -p
Введите пароль:
Введите пароль, указанный в mysql-init. Теперь вы можете войти в систему с правами root.
Завершение работы mysqld_safe с помощью #sudo mysqladmin -u root -p shutdown
Запустите обычный mysqld путь #sudo systemctl запустите mysql
Только одна строка, и она решила мою проблему.
sudo dpkg-reconfigure mysql-server-5.5
На Mac, если у вас есть проблема при входе с первым паролем, который вы дали при установке, возможно, вы можете просто убить процесс mysql и затем попробовать.
Итак: 1- выполните следующую команду, чтобы найти PID mysql:
ps -aef | grep mysql | grep -v grep
2- убить процесс:
kill -15 [process id]
Затем вы можете войти с помощью первоначального пароля с помощью этой команды:
mysql -uroot -p
Которые просят вас ввести свой пароль. Просто введите первоначальный пароль.
Если вы еще не установили пароль, запустите mysql -uroot
, он работает для меня.
В последних версиях MySQL нет таблицы password
в mysql.user
.
Итак, вам нужно выполнить ALTER USER
. Поместите эту одну строку в файл.
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
И запустите его как файл init (как пользователь root или mysql)
mysqld_safe --init-file=/home/me/mysql-init &
Для запуска сервера mysqld_safe
необходимо остановить сервер MySQL.
Кроме того, может возникнуть проблема с разрешениями apparmor для загрузки этого файла инициализации. Подробнее здесь https://blogs.oracle.com/jsmyth/entry/apparmor_and_mysql
Пароль по умолчанию по умолчанию будет пустым, поэтому вам нужно изменить пароль, выполнив следующие шаги.
подключиться к mysql
root # mysql
Использовать mysql
mysql > update user set password = PASSWORD ('root'), где User = 'root'; Наконец, перезагрузите привилегии:
mysql > привилегии flush; mysql > quit