Fornex
Европейский
хостинг

    Чтобы изменить пароль root пользователя MySQL нужно подключение к серверу по SSH.

    Подключаемся к MySQL как пользователь root при помощи команды:

    mysql –u root –p  
    

    Нажимаем Enter, указываем пароль и снова нажимаем Enter;

    Выполним следующие команды:

    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');  
    quit  
    

    После этого пароль будет изменён на newpass.

    Данный способ также подходит и для изменений паролей других MySQL пользователей. Для этого в вышеуказанной команде необходимо указать пользователя, для которого меняется пароль (например, вместо root@localhost — dovecot@localhost) и новый пароль.

    Сброс root-пароля MySQL

    Если mysql root-пароль был утерян, его можно сбросить следующим образом:

    Подключаемся к VPS с правами root.

    Останавливаем mysql-сервер.

    На Ubuntu для остановки mysql-сервера используем команду:

    service mysql stop  
    

    Создадим каталог /var/run/mysqld который будет использоваться mysql для хранения и доступа к файлу сокета и назначим необходимые права:

    sudo mkdir -p /var/run/mysqld  
    sudo chown mysql:mysql /var/run/mysqld  
    

    Запустим mysql со следующими параметрами:

    sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &  
    

    Проверим, что процесс запущен:

    jobs  
    

    На этом этапе мы можем получить доступ к mysql без пароля.
    Входим командой:

    mysql -u root  
    

    Затем сбросим пароль root следующей последовательностью запросов:

    mysql> FLUSH PRIVILEGES;  
    Query OK, 0 rows affected (0.00 sec)  
    
    mysql> USE mysql;  
    Database changed  
    
    mysql> UPDATE user SET authentication_string=PASSWORD("новый_root_пароль") WHERE User='root';  
    Query OK, 1 row affected, 1 warning (0.03 sec)  
    Rows matched: 1  Changed: 1  Warnings: 1  
    
    mysql> UPDATE user SET plugin="mysql_native_password" WHERE User='root';  
    Query OK, 1 row affected (0.00 sec)  
    Rows matched: 1  Changed: 1  Warnings: 0  
    
    mysql> quit  
    

    Новый_root_пароль, мы установили "1111".

    Завершим процесс mysqld:

    sudo pkill mysqld  
    

    Запустим службу mysql:

    sudo service mysql start  
    

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

    mysql -u root --password=1111  
    

    На Debian для остановки mysql-сервера используем команду:

    service mysql stop  
    

    Запускаем mysql с ключем --skip-grant-tables в фоновом режиме :

    /usr/bin/mysqld_safe --skip-grant-tables --user=root &
    

    Заходим в mysql от пользователя root (пароль запрашиваться не будет):

    mysql -u root  
    

    Меняем пароль и применяем привилегии:

    mysql> UPDATE mysql.user SET Password=PASSWORD('новый_root_пароль') WHERE User='root';  
    mysql> FLUSH PRIVILEGES;  
    mysql> exit  
    

    На CentOS 7 для остановки mysql-сервера используем команду:

    sudo /etc/init.d/mysqld stop  
    

    Далее выполняем команду:

    sudo mysqld_safe --skip-grant-tables &  
    

    Символ & в конце команды означает, что она перейдёт в фоновый режим и мы получим терминал обратно.

    Подключаемся к mysql с правами root. Поскольку mysql запущен в безопасном режиме, пароль для входа не требуется:

    mysql -u root  
    

    Выбираем базу данных mysql:

    use mysql;  
    

    Устанавливаем новый mysql root-пароль командой:

    update user set password=PASSWORD("новый_root_пароль") where User='root';  
    

    Перезагружаем привилегии:

    flush privileges;  
    

    Отключаемся от mysql:

    quit;  
    

    Останавливаем и затем вновь запускаем сервер MySQL командами:
    Debian/Ubuntu:

    service mysql stop  
    service mysql start  
    

    CentOS 7

    /etc/init.d/mysql stop
    /etc/init.d/mysql start
    

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