Как сменить пароль в mysql windows

Если у вас Linux, то смотрите статью «Как сбросить пароль root для MySQL или MariaDB».

Если у вас Linux, то смотрите статью «Как сбросить пароль root для MySQL или MariaDB».

Пароль пользователя root спрашивается во время установки СУБД. Если установка делалась вручную, то есть без инстолятора, как это описано, например, в этой статье, то пароль может быть не установлен вовсе.

Если вы используете какие-то готовые сборки, которые включают в себя MySQL/MariaDB, то обратитесь за паролем на официальные сайты этих сборок. Также попробуйте такие учётные данные:

  • Пользователь: root
  • Пароль: root

Если вы действительно забыли пароль MySQL/MariaDB и вам нужно сбросить пароль root в MySQL на Windows, то данная статья расскажет, как это сделать.

Шаг 1 — Определяем версию системы управления базой данных

Найдите, в какой папке у вас расположен файл mysqld.exe. При установке по данной инструкции, этот файл расположен в папке C:Serverbinmysql-8.0bin.

Откройте командную строку. Нам понадобятся права администратора, поэтому делаем следующее: нажмите Win+x и там выберите Windows PowerShell (администратор):

Теперь перейдите в командной строке в директорию с файлом mysqld.exe, для этого используйте команду вида:

cd путьдопапки

Например, у меня это папка C:Serverbinmysql-8.0bin, тогда команда такая:

cd C:Serverbinmysql-8.0bin

Нужно определить версию MySQL/MariaDB, для этого выполните команду:

.mysql --version

Пример вывода:

C:Serverbinmysql-8.0binmysqld.exe Ver 8.0.19 for Win64 on x86_64 (MySQL Community Server - GPL)

Шаг 2 — Остановка сервера базы данных

Для изменения пароля root вы должны заранее отключить сервер базы данных. Для MySQL и MariaDB вы можете сделать это командой:

net stop mysql

После того, как сервер остановлен, вы вручную получите к нему доступ для сброса пароля рута.

Шаг 3 — Перезапуск сервера базы данных без проверки разрешений

Если вы запускаете MySQL и MariaDB без загрузки информации о привилегиях пользователя, она позволит вам без ввода пароля получить доступ к командной строке базы данных с привилегиями рута. Это позволит вам получить доступ к базе данных без знания парольной фразы. Чтобы это сделать, вам нужно не дать базе данных загрузить таблицы привилегий, которые содержат информацию о привилегиях пользователя. Поскольку это несёт риск безопасности, вы также должны избежать сетевой активности, чтобы не допустить подключения других клиентов.

Запустите базу данных без загрузки таблиц привилегий и без доступа к сети:

.mysqld --skip-grant-tables --skip-networking --shared-memory

Программа НЕ должна завершить работу, то есть теперь в это окно командной строки ничего нельзя ввести.

Шаг 4 — Смена пароля рута

Теперь вы можете подключиться к базе данных как пользователь рут, у которого не спросят пароль.

Открываем новое окно командной строки, можно без прав администратора.

Опять переходим в нужную папку

cd C:Serverbinmysql-8.0bin

И подключаемся к серверу MySQL/MariaDB

.mysql -u root

Вы сразу же увидите приглашение оболочки базы данных. Приглашение командной строки MySQL:

Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 8
Server version: 8.0.19 MySQL Community Server - GPL

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

Теперь, когда у вас имеется рут доступ, вы можете изменить пароль рута.

Простым способом смены пароля рута для современных версий MySQL является использование запроса ALTER USER. Тем не менее эта команда не будет работать прямо сейчас, поскольку таблицы привилегий не загружены. Давайте скажем серверу баз данных перегрузить таблицы привилегий введя команду:

FLUSH PRIVILEGES;

Теперь действительно мы можем поменять пароль рута.

Для MySQL 5.7.6 и новее, а также для MariaDB 10.1.20 и новее используйте следующую команду:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'новый_пароль';

Для MySQL 5.7.5 и старее, а также для MariaDB 10.1.20 и старее используйте:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('новый_пароль');

Не забудьте поменять новый_пароль на выбранный вами новый пароль.

Примечание: если команда ALTER USER не работает, то это обычно является признаком более серьёзной проблемы. Тем не менее вместо этой вы можете попробовать UPDATE … SET для сброса root пароля:

UPDATE mysql.user SET authentication_string = PASSWORD('новый_пароль') WHERE User = 'root' AND Host = 'localhost';

После этого не забудьте перегрузить таблицы привилегий:

FLUSH PRIVILEGES;

В любом случае вы должны видеть подтверждение, что команда успешно выполнена. Вывод:

Query OK, 0 rows affected (0.02 sec)

Выходим из сессии:

exit;

Пароль изменён, вы можете остановить запущенный вручную экземпляр сервера базы данных и перезапустить его как это было раньше.

Шаг 5 — Обычный перезапуск сервера базы данных

Для начала, остановите экземпляр сервера базы данных, который вы запустили вручную на Шаге 3. Для этого перейдите в окно с запущенной mysqld и нажмите Ctrl+c.

Затем перезапустите сервис обычным образом:

net start mysql

Теперь вы можете подтвердить, что новый пароль работает, запустите:

.mysql -u root -p

Эта команда должна вызвать приглашение в который нужно ввести новый пароль. Введите его, вы должны получить доступ к интерфейсу командной строки базы данных, как это обычно и происходит.

Заключение

Теперь вы восстановили административный доступ к серверу MySQL или MariaDB. Убедитесь, что новый пароль рута, который вы выбрали, безопасный и храните его в надёжном месте.

Ошибка «—shared-memory, or —named-pipe should be configured on NT OS»

Если при запуске mysqld вы столкнулись со следующей ошибкой:

[ERROR] [MY-010131] [Server] TCP/IP, --shared-memory, or --named-pipe should be configured on NT OS

то вам необходимо к команде запуска mysqld добавить флаг —shared-memory.

Связанные статьи:

  • MariaDB для Windows (100%)
  • Как обновить MySQL (100%)
  • Как обновить MariaDB в Windows (100%)
  • Как сделать резервную копию баз данных MySQL (MariaDB) в Windows без phpMyAdmin (100%)
  • Как в phpMyAdmin поменять настройки экспорта по умолчанию (100%)
  • Как исправить «Configuration File (php.ini) Path» no value (RANDOM — 50%)

Если вы забыли пароль root для базы данных MySQL или хотите его поменять в целях безопасности, нужно выполнить сброс пароля. В статье расскажем, как это сделать с помощью командной строки Windows. 

1.Остановите сервер MySQL

  • Проверьте, вошли ли вы в систему как администратор.
  • Нажмите Win + R. Когда откроется окно «Выполнить», введите:

    services.msc

  • Нажмите ОК.
  • В списке служб найдите MySQL. Кликните правой кнопкой мыши по ней, после чего левой кликните Stop.

msql.png

2. Измените пароль в текстовом редакторе

  • В меню найдите «Блокнот», либо используйте путь: Меню > Стандартные Windows > Блокнот.
  • Создайте новый текстовый документ с помощью команды пароля
  • В текстовом редакторе введите строку:

    ALTER USER ‘root’@’localhost’, IDENTIFIED BY ‘NewPassword’;

  • Проверьте, на месте ли кавычки и точка с запятой. Замените NewPassword своим новым паролем. «Файл» > «Сохранить как», чтобы сохранить файл в корень жесткого диска (C:). Придумайте осмысленное имя файлу.

Команда localhost изменит пароль в вашей локальной системе. Если вы пытаетесь изменить пароль по сети, замените текущее имя хоста на localhost.

3. Запустите cmd

  • Откройте командную строку и нажмите Ctrl+Shift+Esc.
  • В меню выберите «Файл» > «Запустить новую задачу».
  • Введите cmd.exe и установите флажок для запуска от имени администратора.
  • Нажмите ОК.

Бесплатный тестовый доступ к облаку на 30 днейПолучить

4. Перезапустите сервер MySQL с обновлённым файлом конфигурации.

Чтобы перейти в каталог MySQL используйте командную строку:

cd «C:Program FilesMySQLMySQL Server 8.0bin»

  • Командная строка покажет, что вы работаете в этой папке.
  • Далее введите:
  • mysqld —init-file=C:\ИМЯ_ФАЙЛА.txt

    Вместо ИМЯ_ФАЙЛА вы вводите своё название, которое использовали в пункте 2.

    5. Теперь можете зайти на свой сервер MySQL как root, введя новый пароль.

    • Повторите вход с новым паролем, чтобы убедиться, что всё работает. Если у вас есть уникальные параметры конфигурации (например, запуск MySQL с параметром -defaults-file ), делайте всё, что нужно.
    • После запуска MySQL и подтверждения смены пароля удалите файл C:ИМЯ_ФАЙЛА.txt .

    Вот и всё, вы благополучно сбросили пароль root для базы данных MySQL.

    There might arise a situation where you need to reset the root password for your MySQL database.  It can be because you forgot your password or you need to change the password for security reasons. 

    In this article, we will look into the process of resetting the MySQL password using Windows cmd. To do so follow the below steps:

    Step 1: Stop the MySQL server

    • Begin by checking if you’re logged in as an administrator.
    • Press Win+R (hold the Windows/Super key, and press “r”.) Once the “Run” box appears type:
    services.msc
    • Click OK.
    • Scroll down the list of services to find the MySQL service. Right-click that entry then left-clicks Stop.

    Step 2: Launch a Text Editor

    • Click on the menu and search for Notepad.
    • Alternatively, you can use the path: Menu > Windows Accessories > Notepad.

    Step 3: Create a New Text File with the Password Command

    • Enter the following line into the text editor:
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
    • Make sure you keep the quote marks and semicolon. Replace NewPassword with the password of your choice.

    • Use the File > Save As menu to save the file to the root of your hard drive (C: ). Choose a filename that makes sense, such as mysql-init.txt.

    Consequently, the localhost command will make the password change on your local system. If you’re trying to change the password on a system over the network, substitute the hostname for localhost.

    Step 4: Open a Command Prompt

    • Press Ctrl+Shift+Esc.
    • Then, click on the File menu > Run new task.
    • Type cmd.exe, and check the box to run as administrator.
    • Click OK.

    Step 5: Restart the MySQL Server with Your New Config File

    •  Navigate to the MySQL directory using the command prompt:
    cd "C:Program FilesMySQLMySQL Server 8.0bin"

    Accordingly, the command line will show that you’re working in this folder.

    •  Enter the following:
    mysqld --init-file=C:\mysql-init.txt

    Note that there are two slashes after the C: prompt.

    Also, if you choose a different name in Step 2, use the same name after the double slash.

    Step 6: Clean up

    Now, you can log into your MySQL server as root using the new password.

    • Double-check to make sure it works. If you have unique configuration options (such as launching MySQL with a -defaults-file option), go ahead and do so.

    Once MySQL launches, and you’ve confirmed the password change, delete the C:myswl-init.txt file.

    At this stage, you have successfully reset the root password for your MySQL database.

    Introduction

    MySQL is a popular database management system for web application software. Like many web services, MySQL has an administrator-level or root password. The root password allows a user to perform all top-level functions in the database.

    If you’ve never set a root password on your MySQL database, you should be able to connect to it. However, this is not a good security practice as anyone can access your database.

    If your database has a root password, but you lost track of it, this guide will help you reset a MySQL Root password on Linux and Windows.

    How to reset or change MySQL root password on Linux or Windows.

    Prerequisites

    • An existing MySQL database
    • Access to a Linux or Windows server running MySQL
    • Administrator privileges on the computer that hosts the MySQL database
    • A text editor. Notepad is included by default in Window. Vim is installed by default in Linux.
    • Access to a command-line interface (or terminal)

    Step 1: Log in as the MySQL User

    When you boot into your Linux installation, make sure you’re logged in as the same user that normally runs MySQL. Although you can log in as root, once you start the MySQL server, make sure you start it with the --user=mysql option.

    Otherwise, the system may create files owned by the root user, which can cause problems.

    Step 2: Find the .pid File for the MySQL Service

    The next step is to find the .pid file for the MySQL service.

    Most systems store them in /var/lib/mysql/, /var/run/mysqld/, or /usr/local/mysql/data/ path. The filename usually starts with mysqld (or your system’s hostname) and ends with the .pid extension.

    Step 3: Kill the mysqld Process

    Before you create a new root password, stop the MySQL server. To kill the mysqld process, open a command line, and run the following:

    kill `cat /mysql-data-directory/host_name.pid`

    Replace mysql-data-directory/host_name.pid with the filename you found in the previous step. Ensure to specify the whole path to the file. Also, make sure to use the back-tick key (usually above the tab key) and not a single-quote mark in the beginning of the command.

    Step 4: Create the Password File

    1. Open your favorite text editor. In this example, we use vim:

    sudo vim

    2. Next, add the following line in the file:

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
    create a password file for mysql

    Bear in mind to include the single-quote marks and the semicolon. Replace NewPassword with the password you want to use. Finally, make sure to use a strong secure password, like these examples.

    The command will work for the machine you’re currently using. If you’re connecting to a different system, replace localhost with the appropriate hostname.

    3. Save the file to home/me/mysql-init.

    Step 5: Restart the MySQL Server and Apply the New Password

    To apply the changes to the password, restart the MySQL server by running the following command in the terminal:

    mysqld --init-file=/home/me/mysql-init &

    This launches MySQL, and apply the text-file password change. Depending on how you start your server, you may need to add other options (such as --defaults-file before the init command.)

    Step 6: Cleaning Up

    Lastly, log into your MySQL server using the root account, and verify the new password works. Then, delete the file you created in Step 4.

    How to Reset MySQL Root Password in Windows

    Step 1: Stop the MySQL server

    1. Begin by checking if you’re logged in as an administrator.

    2. Press Win+R (hold the Windows/Super key, and press “r”.) Once the “Run” box appears type:

    services.msc

    3. Click OK.

    find-windows services using run

    4. Scroll down the list of services to find the MySQL service. Right-click that entry, then left-click Stop.

    Step 2: Launch a Text Editor

    Click on the menu and search for Notepad.

    Alternatively, you can use the path: menu > Windows Accessories > Notepad.

    Step 3: Create a New Text File with the Password Command

    1. Enter the following line into the text editor:

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';

    Make sure you keep the quote marks and semicolon. Replace NewPassword with the password of your choice.

    create a file with password command windows

    2. Use the File > Save As menu to save the file to the root of your hard drive (C: ). Choose a filename, such as mysql-init.txt.

    Consequently, the localhost command makes the password change on your local system. If you’re changing the password on a system over the network, substitute the hostname for localhost.

    Step 4: Open a Command Prompt

    1. Press Ctrl+Shift+Esc.

    2. Then, click on the File menu > Run new task.

    3. Type cmd.exe, and check the box to run as administrator.

    4. Click OK.

    Step 5: Restart the MySQL Server with Your New Config File

    1. Navigate to the MySQL directory using the command prompt:

    cd "C:Program FilesMySQLMySQL Server 8.0bin"

    2. Then, enter the following:

    mysqld --init-file=C:\mysql-init.txt

    Note that there are two slashes after the C: prompt.
    Also, if you chose a different filename in Step 2, use that name after the double slash.

    Step 6: Clean up

    Now, you can log into your MySQL server as root using the new password.

    Double-check to make sure it works. If you have unique configuration options (such as launching MySQL with a --defaults-file option), go ahead and do so.

    Once MySQL launches, and you’ve confirmed the password change, delete the C:mysql-init.txt file.

    Conclusion

    After reading this guide, you should be ready to reset the root password on MySQL in Linux and Windows. Granted, it is not too challenging, yet it is a secure way to change a sensitive password.

    Если Вы только установили службу Mysql сервера то вам просто необходимо сменить пароль так как он вообще не задан. Открываем консоль (пуск>выполнить>cmd) и сразу вводим:

    mysqladmin -u root password ‘newpassword’

    где newpassword – новый пароль

    Если же у Вас уже существует пароль то сменить его можно командой

    mysqladmin -u root -pcurrentpassword password ‘newpassword’

    где currentpassword – старый пароль,

    newpassword – новый пароль

    более сложный метод без команды mysqladmin (может и не стоило это писать но для информации пригодится)

    установка пароля:

    mysql -u root
    mysql> SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(‘newpassword’);

    смена пароля:

    mysql -u root
    mysql> use mysql;
    mysql> UPDATE user SET Password = PASSWORD(‘newpassword’) WHERE User = ‘root’;
    mysql> FLUSH PRIVILEGES;

    А как сменить пароль если его не помнит никто?

    для особо одаренных (у кого в голове много паролей или кто их не запоминает )

    пишу по шагам

    1) нужно остановить службу mysql сервера в большинстве случаев service mysqld stop или service mysql stop

    2) выполнить команду

    mysqld_safe –skip-grant-tables

    3) после успешного старта mysqld

    mysql –user=root mysql

    там вводим команды

    update user set Password=PASSWORD(‘new-password’) where user=’root’;
    flush privileges;
    exit;

    4) перегружаем mysqld (обычно service mysqld restart)

    Содержание:

    • Вход в учетную запись root без пароля на ОС Linux;
      • Смена пароля пользователя MySQL из терминала;
    • Сброс пароля суперпользователя root на ОС Linux;
    • Сброс пароля суперпользователя root на ОС Windows;
    • Галопом по полезным MySQL-командам.

    Вход в учетную запись root без пароля на ОС Linux.

    Начнем с того, что современные версии MySQL не запрашивают пароль суперпользователя при установке сервера. Если после установки сервера, пароль пользователя root так и не был установлен, то консоль MySQL можно запустить БЕЗ ПАРОЛЯ от имени пользователя, от которого производилась установка сервера (или от имени которого работает/запущен MySQL-сервер).

    В этом случае запуск консоли без пароля будет выглядеть следующим образом:

    $ mysql -uroot
    mysql [(none)]>
    
    # или просто
    $ mysql
    mysql [(none)]>
    

    Чтобы определить от какого пользователя запущен сервер MySQL, необходимо запустить консольную команду htop (если htop не установлен, то установите командой $ sudo apt install htop). После запуска htop нужно нажать клавишу F4(фильтр) и на клавиатуре набрать mysql. В результате этих действий на экране отобразятся все процессы mysql, а в графе USER можно увидеть пользователя от которого работает сервер MySQL. Также в графе Command расположен рабочий директорий, в котором находится файл родительского процесса mysql.pid (имя может быть другим).

    Далее, если пароль пользователя, от имени которого работает/запущен MySQL-сервер неизвестен, то задаем новый пароль этому пользователю командой $ sudo passwd mysql_user (где mysql_user — пользователь от которого работает MySQL) и заходим под этой учетной записью.

    Смена пароля пользователя MySQL из командной строки.

    Смена пароля root БД MySQL из командной строки терминала:

    $ mysqladmin -u root oldpassword newpassword
    

    Смена пароля обычного пользователя БД MySQL из консоли терминала:

    $ mysqladmin -u username -h hostname -p oldpassword newpassword
    

    Сброс пароля суперпользователя root на ОС Linux.

    Если все таки пароль пользователя root ранее был установлен или установлена старая версия MySQL или стоит сервер MariaDB, то для восстановления пароля к учетной записи root необходимо как-то зайти в консоль MySQL с привилегиями суперпользователя root, но при этом без пароля. Чтобы «просочится» в учетную запись root без пароля, перезапустим сервер в безопасном режиме (mysqld_safe), при этом отключим проверку информации о пользовательских привилегиях (параметр командной строки --skip-grant-tables).

    Далее, все команды выполняются на машине, где запущен MySQL-сервер.

    Для начала остановим сервер баз данных MySQL. Заходим в терминал и пишем:

    $ sudo systemctl stop mysql
    # или
    $ sudo service mysql stop
    

    Теперь запускаем БД MySQL в безопасном режиме, а параметр командной строки --skip-grant-tables отключит проверку пароля:

    # запуск БД MySQL в безопасном режиме
    $ sudo mysqld_safe --skip-grant-tables &
    

    Амперсанд (&) в конце команды переводит консольную команду в фоновый режим и можно будет продолжить работу с терминалом. Если в консоли не появилось приглашение, то просто нажните Enter.

    Далее, подключаемся к БД MySQL как суперпользователь root, при этом пароль запрашиваться не будет:

    $ mysql -uroot
    mysql [(none)]>
    

    В современных версиях MySQL (MySQL >= 8.0) изменить пароль пользователя root можно с помощью команды ALTER USER.

    -- сбрасываем кеш системных таблиц
    -- и перезагружаем таблицы привилегий
    mysql [(none)]> FLUSH PRIVILEGES;
    
    -- теперь инструкция `ALTER USER` должна работать
    -- устанавливаем пароль пользователю 'root'@'localhost'
    mysql [(none)]> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
    

    Примечание: замените строку ‘MyNewPass’ на свой новый пароль пользователя root.

    Однако, данный запрос не сработает для старых версий MySQL < 8.0. В этом случае, пароль учетной записи root необходимо менять напрямую, в системной таблице таблице mysql.user при помощи оператора UPDATE . Это небезопасный способ, по этому необходимо быть внимательным:

    -- внимательно и аккуратно меняем пароль `root`
    mysql [(none)]> UPDATE mysql.user SET password=PASSWORD("MyNewPass") WHERE user="root";
    -- сбрасываем кеш системных таблиц и
    -- перезагружаем таблицы привилегий
    mysql [(none)]> FLUSH PRIVILEGES;
    

    Пароль для пользователя root успешно изменен.

    Обратите внимание

    , что на старых версиях серверов, для изменения пароля пользователя root использовалась MySQL-функция PASSWORD(). Эта функция являлась интерфейсом SQL к алгоритму, используемому сервером для шифрования паролей MySQL для хранения в таблице привилегий.

    Внимание! Функция PASSWORD() устарела в MySQL 5.7 и удалена с версии MySQL 8.0. Не пытайтесь сменить пароль таким способом в современных версиях MySQL. Узнать версию MySQL можно выполнив команду терминала $ mysqld --version или сделать запрос в консоле MySQL SELECT VERSION();.

    Теперь можно перезапустить сервер базы данных в обычном режиме.

    $ sudo systemctl stop mysql
    $ sudo systemctl start mysql
    # или
    $ sudo service mysql stop
    $ sudo service mysql start
    

    Если возникает ошибка при остановке/старте MySQL-сервера, то нужно «убить»

    ВСЕ ПРОЦЕССЫ

    MySQL командой:

    # убиваем все процессы MySQL
    $ sudo killall mysql
    # Завершён sudo mysqld_safe --skip-grant-tables
    
    # теперь запустим MySQL
    $ sudo systemctl start mysql
    # или
    $ sudo service mysql start
    

    Пробуем зайти в БД MySQL с учетной записью root и паролем, который был установлен (MyNewPass), выполняя команды от обычного пользователя операционной системы:

    $ mysql -uroot -pMyNewPass
    mysql [(none)]>
    

    Сброс пароля суперпользователя root в ОС Windows.

    В ОС Windows, для сброса пароля для учетной записи MySQL 'root'@'localhost' будем использовать следующую процедуру.

    Первое, что надо сделать, это войти в ОС Windows как администратор и остановить сервер MySQL (если он запущен). Для сервера MySQL, работающего как служба Windows, необходимо перейти к диспетчеру служб: меню «Пуск» выбрать «Панель управления«, затем «Администрирование«, затем «Службы«. В списке запущенных служб Windows ищем MySQL и останавливаем ее.

    Создаем текстовый файл c запросом на смену пароля суперпользователя root, который должен занимать одну строку (без переносов).

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
    

    Строку 'MyNewPass' замените новым паролем, который необходимо использовать.

    Сохраняем файл, например, как C:>mysql-init.txt. Затем открываем окно консоли Windows, для этого в меню «Пуск» выбираем «Выполнить«, затем вводим команду для запуска консоли cmd.

    Запустим MySQL-сервер с системной переменной init-file, указанной как параметр командной строки --init-file со значением созданного файла с запросом на изменение пароля C:>mysql-init.txt. Если сервер MySQL установлен в другое место, то необходимо изменить команду cd соответствующим образом.

    Обратите внимание

    , что обратная косая черта в значении параметра --init-file удваивается:

    # консоль Windows
    C:> cd "C:Program FilesMySQLMySQL Server 8.0bin"
    C:> mysqld --init-file=C:\mysql-init.txt
    

    При выполнении команды, MySQL-сервер выполнит содержимое файла, указанного системной переменной init_file и изменит пароль учетной записи 'root'@'localhost'. !!! После успешного запуска сервера удалите C:>mysql-init.txt.

    Для просмотра выходных данных сервера в окне консоли, необходимо в команду C:> mysqld ... добавить параметр командной строки --console.

    Если MySQL-сервер был установлен с помощью мастера установки, то может потребоваться указать параметр командной строки --defaults-file. Например:

    # консоль Windows
    C:> mysqld
             --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini"
             --init-file=C:\mysql-init.txt
    

    Параметр, который необходимо указать в --defaults-file можно найти с помощью диспетчера служб: меню «Пуск«, выбрать «Панель управления«, затем «Администрирование«, затем «Службы«. В списке находим службу MySQL, щелкаем правой кнопкой мыши и выбираем «Свойства«. Поле «Путь к исполняемому файлу» будет содержать параметр --defaults-file.

    Теперь можно подключиться к серверу MySQL как суперпользователь root, используя новый пароль. Для этого: остановим сервер MySQL и перезапустим его в обычном режиме. Если MySQL-сервер работал как служба, то его необходимо запустить из окна служб Windows.

    Галопом по полезным MySQL-командам.

    Создание БД MySQL

    mysql [(none)]> CREATE DATABASE `db_name`;
    

    Создание БД MySQL с указанием необходимой кодировки:

    mysql [(none)]> CREATE DATABASE `db_name` DEFAULT CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci';
    

    Удалить БД MySQL:

    mysql [(none)]> DROP DATABASE `db_name`;
    

    Получить список всех баз данных на сервере:

    mysql [(none)]> SHOW DATABASES;
    

    Переключится/выбрать базу данных по умолчанию:

    mysql [(none)]> USE `db_name`;
    

    Получить список таблиц в базе данных по умолчанию:

    mysql [db_name]> SHOW TABLES;
    

    Удалить таблицу из базы данных по умолчанию:

    mysql [db_name]> DROP TABLE `table_name`;
    

    Посмотреть структуру таблицы:

    mysql [db_name]> DESCRIBE `table_name`;
    

    Ещё один вариант:

    mysql [db_name]> SHOW COLUMNS FROM `table_name`;
    

    Введение

    Доступы к серверам и сервисам нужно тщательно хранить, никому их не передавать и не терять. Но иногда случаются ситуации, когда пароли все-таки теряются или после смены их забывают записать, восстановить такой пароль тоже нет возможности. Если вы забыли пароль от root-пользователя MySQL — не отчаивайтесь, пароль root в MySQL легко сменить.

    Важно понимать, что у вас должны быть права администратора на том сервере, где установлен MySQL-сервер. Это может быть либо root-пользователь напрямую, либо доступ через sudo.

    Все описанные ниже действия нужно выполнять именно на этом сервере, то есть удаленно сменить пароль от root-пользователя не удастся.

    Возможности MySQL в «Облачных базах данных»

    Подробнее

    Самый простой способ для последних версий

    В версиях MySQL, начиная с 5.7, можно логиниться в MySQL от root-пользователя без пароля, если системный пользователь тоже root. Это позволяет подключиться к MySQL как root-пользователь без ввода пароля, а потом изменить его. Это возможно если для пользователя root используется плагин аутентификации auth_socket.

    Выполните команду:

        sudo mysql
    

    Вы подключитесь к MySQL-серверу как root-пользователь. Теперь можно сбросить пароль одной командой. Вместо 12345 укажите свой пароль:

        ALTER USER 'root'@'localhost' IDENTIFIED BY '12345';
    
    

    Это самый простой способ, доступный в последних версиях MySQL при использовании плагина аутентификации auth_socket.

    Сбросить пароль root в MySQL с помощью SKIP-GRANT-TABLES

    В этом способе мы отключим проверку полномочий при запуске MySQL-сервера, и тогда подключиться сможет вообще любой пользователь без указания пароля. Важно, чтобы на это время сервер не был доступен по сети для внешних запросов, иначе к нему сможет подключиться любой желающий.

    Для начала нужно остановить сервер:

        sudo systemctl stop mysql
    
    

    Теперь отредактируем service-файл, который запускает MySQL. Выполним команду:

        sudo systemctl edit mysql
    
    

    Откроется текстовый редактор, в котором мы можем переопределить дефолтный файл запуска. Вставим в него следующую конфигурацию:

        [Service]
    ExecStart=
    ExecStart=/usr/sbin/mysqld --skip-grant-tables --skip-networking
    
    

    Мы указываем, что сервер нужно запустить без проверки grant-таблиц, а также ограничить подключения по сети. Сохраните файл и выйдите из текстового редактора. Теперь нужно обновить конфигурацию systemd, чтобы он учитывал наш новый конфиг, а затем можно запустить сервер:

        sudo systemctl daemon-reload
    sudo systemctl start mysql
    
    

    Теперь мы можем залогиниться под учетной записью root без ввода пароля. Для этого нам даже не нужно быть root или использовать sudo:

        mysql -u root
    

    Так как мы запустили сервер без проверки полномочий, сначала нам нужно применить таблицу привилегий, чтобы мы могли записать в нее новый пароль. Вместо 12345 укажите свой пароль:

        FLUSH PRIVILEGES;
    ALTER USER 'root'@'localhost' IDENTIFIED BY '12345';
    
    

    Выходим из MySQL и возвращаем настройки запуска по умолчанию. Для этого нам нужно удалить service-файл для systemd, перечитать конфигурацию и снова запустить сервер БД:

        sudo systemctl revert mysql
    sudo systemctl daemon-reload
    sudo systemctl restart mysql
    
    

    Все, мы перезапустили MySQL-сервер и теперь можем залогиниться с новым паролем.

    Сбросить пароль с помощью init-file

    Еще один способ — написать init-файл. Это файл, который MySQL считывает перед запуском. В нем можно указать различные команды, в том числе установить пароль любого пользователя.

    Создайте простой текстовый файл, например в вашей домашней директории. Назвать его можно как угодно. Вставьте в этот файл команду для смены пароля. Вместо 12345 укажите свой настоящий пароль:

        ALTER USER 'root'@'localhost' IDENTIFIED BY '12345';
    

    Теперь нужно остановить MySQL-сервер, чтобы при следующем запуске ему можно было указать путь к нашему init-файлу. Выполните команду:

        sudo systemctl stop mysql
    
    

    Теперь снова запустим сервер, при этом указав путь к созданному нами файлу:

        sudo mysqld --user=mysql --init-file=/path/to/init-file &
    
    

    После запуска этой команды в консоли отобразится PID этого процесса, например 7508. Значит все прошло успешно, MySQL-сервер запустился и выполнил нашу команду. Теперь нам нужно его остановить, удалить init-файл и запустить сервер обычным способом:

        sudo kill -15 7508
    rm /path/to/init-file
    sudo systemctl start mysql
    
    

    Заключение

    Мы рассмотрели три разных способа сброса пароля для root-пользователя. Теперь MySQL-сервер работает в стандартном режиме, а у вас есть root-доступ к базе данных.

    Понравилась статья? Поделить с друзьями:
  • Как сменить пароль администратора в windows server 2012 r2
  • Как сменить пароль администратора в windows 10 через другого пользователя
  • Как сменить пароль админа в windows
  • Как сменить пароль vpn соединение на windows 10
  • Как сменить пароль postgres на windows