Я пытаюсь изменить пароль root MySql.
То, что я сделал, ниже.
- Установите MySql-5.7.6 ~ .dmg (Сервер совместной работы) и верстак.
- Выключите сервер в настройках системы OSX.
- Доступ к MySql с консоли. Команда была
mysqld_safe --skip-grant
- Выполнить
update user set password=password('1111') where user='root';
и получил сообщение об ошибке ->ERROR 1054 (42S22): Unknown column 'password' in 'field list'
.
К вашему сведению, я сделал use mysql;
. Поэтому я выбрал запрос к пользовательской таблице и обнаружил, что столбец с паролями фактически не существует.
Это очень странно. Возможно ли, что исходная таблица пользователей не имеет столбца пароля?
Как я могу сменить пароль, которого нет?
Спасибо за ваш ответ: D
UPDATE mysql.user SET authentication_string= 'password' WHERE User = 'root';
Поскольку поле «Пароль» было удалено mysql и заменено на authentication_string. Обратите внимание: функция mysql PASSWORD («пароль») основана на алгоритме MD5, который был взломан давно с помощью атаки на день рождения. Поэтому его использование дает ложное чувство безопасности, поскольку злоумышленник может просто вставить хэши, которые он создает, на общедоступный веб-сайт, такой как hashkiller.co.uk/md5-decrypter.aspx, и получить ваш простой текстовый пароль.Ответы:
В MySQL 5.7 поле пароля в поле таблицы mysql.user было удалено, теперь имя поля - «authentication_string».
Сначала выберите базу данных:
А затем покажите таблицы:
Вы найдете пользовательскую таблицу, теперь давайте посмотрим ее поля:
Сюрприз! Нет поля с именем «пароль», поле с паролем называется «строка_ аутентификации». Итак, просто сделайте это:
Теперь все будет хорошо.
По сравнению с MySQL 5.6, изменения довольно обширны: что нового в MySQL 5.7
источник
use mysql;
update user set authentication_string=PASSWORD("") where User='root';
update user set plugin="mysql_native_password" where User='root'; # THIS LINE
flush privileges;
quit;
Эта ошибка происходит, если вы не установили пароль при установке, в этом случае mysql использует плагин unix-socket .
Но если удалить ссылку на плагин из настроек (таблица mysql.user) будет другая проблема. Это не решает проблему и создает другую проблему. Чтобы исправить удаленную ссылку и установить пароль («PWD»), выполните:
1) Бегите,
--skip-grant-tables
как сказано выше.Если он не работает , то добавьте строку
skip-grant-tables
в разделе[mysqld]
о/etc/mysql/mysql.conf.d/mysqld.cnf
. Тогда делайsudo service mysql restart
.2) Запустите
mysql -u root -p
, затем (измените «PWD»):тогда
sudo service mysql restart
. Проверка:mysql -u root -p
.Перед
restart
удалением этой строки из файла mysqld.cnf, если вы ее там установили.источник
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '("MYNEWPASSWORD"), plugin="mysql_native_password"
Одна ловушка, в которую я попал, это то, что сейчас нет поля пароля , оно было переименовано так:
update user set password=PASSWORD("YOURPASSWORDHERE") where user='root';
Теперь должно быть:
update user set authentication_string=password('YOURPASSWORDHERE') where user='root';
источник
Используйте
ALTER USER
команду вместо того, чтобы пытаться обновитьUSER
строку. Имейте в виду, что может быть более одного «корневого» пользователя, поскольку пользовательские сущности квалифицируются также на машине, с которой они подключаютсяhttps://dev.mysql.com/doc/refman/5.7/en/alter-user.html
Например.
источник
Это работало только со мной, когда я «покраснел» после команд, упомянутых здесь. Вот полный список команд, которые я использовал:
Предыдущие ответы могут не работать для более поздних версий MySQL. Попробуйте эти шаги, если предыдущие ответы не сработали для вас:
1- Нажмите на иконку wamp> mysql> консоль mysql
2 - написать следующие команды, одну за другой
источник
Спасибо за помощь. На всякий случай, если у людей все еще есть проблемы, попробуйте это.
Для MySQL версии 5.6 и ниже
Вы забыли пароль Mac OS X 'ROOT' и хотите его сбросить? Выполните следующие 4 простых шага:
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
sudo /usr/local/mysql/bin/mysql -u root UPDATE mysql.user SET Password=PASSWORD('NewPassword') WHERE User='root'; FLUSH PRIVILEGES; \q
Для MySQL версии 5.7 и выше
'System Prefrences' > MySQL > 'Stop MySQL Server'
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
sudo /usr/local/mysql/bin/mysql -u root UPDATE mysql.user SET authentication_string=PASSWORD('NewPassword') WHERE User='root'; FLUSH PRIVILEGES; \q
источник
Для этой проблемы я использовал простой и грубый метод, переименовал имя поля в пароль, причина в том, что я использую премиум-программное обеспечение mac navicat при визуальной ошибке операции: Неизвестный столбец «пароль» в «поле Список», Само программное обеспечение использует пароль, поэтому я не могу легко работать. Поэтому я рутаюсь в командную строку базы данных, запускаю
А затем измените имя поля:
Ведь нормально.
источник
Причина root: root не имеет пароля, и ваш оператор Python Connect должен это отражать.
Чтобы устранить ошибку 1698, измените пароль Python Connect на ''.
примечание: ручное обновление пароля пользователя не решит проблему, вы все равно получите ошибку 1698
источник
помните, что пароль должен быть установлен даже после перезапуска MySQL, как показано ниже
источник