Пользователи mysql root localhost

Техника
#1698 - Access denied for user 'root'@'localhost'

то данная статья поможет вам разобраться в проблеме и устранить её.

Самым простым (и самым безопасным) решением будет создать нового пользователя и предоставить ему требуемые привилегии.

Но начнём мы с другого решения:

Note: Empty/blank password means there is no password; hence anyone can log in as long as MySQL privileges have been granted.

Содержание
  1. To log in as a root user in Linux:
  2. Чтобы войти в систему как пользователь root в Linux:
  3. Оглавление
  4. Введение
  5. Устанавливаем MySQL сервер на Ubuntu
  6. Настраиваем MySQL сервер
  7. Создаём нового пользователя в MySQL и выдаём ему разрешения
  8. Теперь давайте протестируем MySQL
  9. Удаленный доступ к MySQL
  10. Редактирование конфигурационного файла
  11. Даём привилегии пользователю на доступ из вне
  12. Ограничения файрвола
  13. Как установить, изменить и восстановить пароль root MySQL
  14. Установка пароля в первый раз
  15. Изменение пароля пользователя root MySQL
  16. How to set up, change, and recover a MySQL root password
  17. Setting the password for the first time
  18. Changing the MySQL root user password
  19. Восстановите свой пароль MySQL
  20. Как решить ошибку MySQL: доступ запрещен для пользователя root @ localhost
  21. Recover your MySQL password
  22. How To Solve The MySQL Error: Access denied for user root@localhost
  23. Разрешить пользователю root подключаться к MySQL и MariaDB без sudo
  24. Создание нового пользователя для работы с MySQL через phpMyAdmin
  25. Заключение
  26. Conclusion

To log in as a root user in Linux:

  1. Select start menu > Log Out on the top right corner. This allows you to log out of the user account that you are using at the moment.
  2. You will now see a login window, and here is where you log in using the username “root” and the password you set up for the root user. If there are several users in the login window, select others and log in.

If the password is not set up or you forgot or need to change your MySQL password, below is a guide on how to do set up/recover the password.

Учетная запись root — это учетная запись суперпользователя, которая предлагает широкий спектр привилегий во всех базах данных MySQL. По умолчанию начальный пароль для учетной записи root — «пустой / пустой», что позволяет любому пользователю получить доступ к серверу MySQL как root.

Чтобы войти в систему как пользователь root в Linux:

  1. Выберите меню «Пуск»> «Выход» в правом верхнем углу. Это позволяет вам выйти из учетной записи пользователя, которую вы используете в данный момент.
  2. Теперь вы увидите окно входа в систему, и здесь вы входите в систему, используя имя пользователя «root» и пароль, который вы установили для пользователя root. Если в окне входа несколько пользователей, выберите других и войдите в систему.

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

mysql> use mysql;
mysql> select user,host from user;
+--------------------+------------+
| user               | host       |
+--------------------+------------+
| root               | 127.0.0.1  |
| root               | testhost   |
| debian-sys-maint   | localhost  |
| root               | localhost  |
+--------------------+------------+

Из списка видно, что в базе имеются учетные данные суперпользователя root с возможностью подключаться только локально с данного сервера(адреса 127.0.0.1, localhost и имя сервера testhost).
Еще есть системная учетная запись debian-sys-maint служит для внутренних системных целей СУБД MySQL.

В предыдущей части я рассказывал как настроить в конфигурационном файле /etc/mysql/my.cnfудаленное подключение к серверу баз данных MySQL.
Напомню: для этого в параметре bind-address выставляется IP адрес 0.0.0.0 вместо 127.0.0.1, т.е. демон mysqld будет слушать не только локальный интерфейс 127.0.0.1, а все адреса имеющиеся на сервере.
В этой части я расскажу как создать пользователя mysql, какие права выдать для различных пользователей, как выставить пароль и хост с которого будет производиться подключение.

mysql> GRANT SELECT,INSERT,UPDATE,ALTER,DELETE,CREATE,DROP,INDEX ON website.* to 'website-user'@'localhost' IDENTIFIED BY 'website-PASSWORD;
mysql> flush privileges;

Здесь я сразу указал:

  •  выдать права GRANT SELECT,INSERT,UPDATE,ALTER,DELETE,CREATE,DROP,INDEX (возможно для вашего веб приложения список прав будет иной, обратитесь к документации веб приложения);
  • на базу website.* — имя базы указывается по маске (все файлы с названием website). Здесь можно указать *.*, тогда пользователь будет иметь права на все базы;
  • ‘websiteuser’@’localhost’ — имя пользователя, и хост с которого этот пользователь может подключаться в базу;
  • IDENTIFIED BY ‘website-password’ — указываем пароль пользователя.

Администратор баз данных
В следующем примере создадим учетную запись администратора баз данных который будет подключаться с  IP адреса компьютера администратора 192.168.8.10

mysql> create user 'admin'@'192.168.8.10' identified by 'blahblahblah';
Query OK, 0 rows affected (0.01 sec)
mysql> grant all on website.* to 'admin'@'192.168.8.10';
mysql> flush privileges;

Пользователь backup
Создадим пользователя backup для резервного копирования всех базы данных

mysql> GRANT SHOW DATABASES, SELECT, LOCK TABLES, RELOAD ON on *.* to 'backup'@'%' identified by 'backup-password';
mysql> flush privileges;
  • GRANT SHOW DATABASES, SELECT, LOCK TABLES, RELOAD — Здесь я указал необходимый набор прав для удаленного резервного копирования и в то же время достаточный для безопасного бэкапа;
  • *.* — Пользователь backup может просматривать все базы;
  • ‘backup’@’%’ — пользователь backup может подключаться с любого IP адреса. Обычно не требуется разрешать подключения с любого ip для целей резервного копирования, так как у сервера backup всегда постоянный IP адрес.
mysqladmin -u website-user -p password NEWPASSWORD

А так же можно воспользоваться командой (SQL синтаксис) из консоли MySQL

mysql> update mysql.user set password=PASSWORD('123') where user='website-user';
GRANT USAGE ON БД.* TO website-user @localhost IDENTIFIED BY 'пароль';

Как сбросить пароль root?
Поменять пароль root можно всеми теми же командами, что и для обычного пользователя. Но вот что делать если вы забыли пароль рута или по каким-то причинам его утеряли, тогда проделаем следующие операции.

1) Останавливаем MySQL:

/etc/init.d/mysqld stop

2) Запускаем MySQL с особыми параметрами:

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

3) Запускаем клиента MySQL:

mysql -u root

4) Выполняем запрос SQL:

UPDATE mysql.user SET Password=PASSWORD(`newpassword`) WHERE User=`root`;

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

5) Применяем изменения:

FLUSH PRIVILEGES;

6) Выходим из клиента MySQL:

exit

7) Перезапускаем MySQL сервер:

/etc/init.d/mysqld restart

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

mysql -uroot -p
<enter_mysql_root_pass>
CREATE DATABASE <DB_NAME>;
CREATE USER 'test'@'%' IDENTIFIED BY 'password';

Посмотрим существующих пользователей

SELECT user, host FROM mysql.user;

Дадим права пользователю test на чтение всех таблиц базы scada

GRANT SELECT ON scada.* TO test@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Дадим все права пользователю test на все таблицы базы scada

GRANT ALL PRIVILEGES ON scada.* TO 'my_user'@'localhost'
 IDENTIFIED BY 'my_password' WITH GRANT OPTION;

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

GRANT ALL PRIVILEGES ON *.* TO 'my_user'@'localhost'
 IDENTIFIED BY 'my_password' WITH GRANT OPTION;

Доступ к базе для данного пользователя возможен только с localhost. Если вы хотите дать ему доступ к базе с любого хоста, используете % вместо localhost:

GRANT ALL PRIVILEGES ON <DB_NAME>.* TO 'my_user'@'%'
  IDENTIFIED BY 'my_password' WITH GRANT OPTION;

Проверить права пользователя :

SHOW GRANTS FOR 'my_user'@'%';
DROP USER 'my_user'@'localhost';

Оглавление

<!—

—>

Дополнительно:  Root success rate can be increased by more than 20 что делать

Введение

MySQL – сервер баз данных, разработанный шведами, распростараняется бесплатно. Позже
стала частью компании Oracle. Сейчас мы рассмотрим процесс установки сервера MySQL 8 на Ubuntu Server 22.04 и настройки
внешнего доступа к базам данных.

Устанавливаем MySQL сервер на Ubuntu

sudo apt update
sudo apt install mysql-server mysql-client
sudo systemctl start mysql.service

Настраиваем MySQL сервер

sudo mysql
 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
 exit
sudo mysql_secure_installation

Вывод команды sudo mysql_secure_installation:

~$ 

Securing the MySQL server deployment.

Enter password for user root:

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: 

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 
Using existing password for root.

Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) :

 ... skipping.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : 
Success.


Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : 
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) : 
 - Dropping test database...
Success.

 - Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : 
Success.

All done!
  • Remove anonymous users – удалить аноноимных пользователей
  • Disallow root login remotely – отключить удалённые подключения для root пользователя, это касается только удалённых подключений, подключения с localhost удалёнными не считаются.
  • Remove test database and access to it – удалить тестовую базу данных.
  • Reload privilege tables now – перезагрузить таблицу привилегий.

Заходим в MySQL под пользователем root, вас попросят ввести пароль:

mysql -u root -p
 ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;
 exit

Создаём нового пользователя в MySQL и выдаём ему разрешения

Заходим в базу под рутом для того, чтобы создать нового пользователя:

sudo mysql
 CREATE USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

Выдаём новому пользователю привилегии:

 GRANT CREATE, ALTER, DROP, INSERT, UPDATE, INDEX, DELETE, SELECT, REFERENCES, RELOAD on *.* TO ''@'localhost' WITH GRANT OPTION;
 GRANT ALL PRIVILEGES ON *.* TO ''@'%';

Далее приминяем внесённые изменения:

 FLUSH PRIVILEGES;
 exit

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

mysql -u username -p

Теперь давайте протестируем MySQL

systemctl status mysql.service

На выводе мы видим, что сервис запушен и работает:

● mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active:  since Mon 2023-04-03 06:12:56 UTC; 52min ago
   Main PID: 35355 (mysqld)
     Status: "Server is operational"
      Tasks: 39 (limit: 1025)
     Memory: 361.4M
        CPU: 20.924s
     CGroup: /system.slice/mysql.service
             └─35355 /usr/sbin/mysqld

Apr 03 06:12:55 system systemd[1]: Starting MySQL Community Server...
Apr 03 06:12:56 system systemd[1]: Started MySQL Community Server.
sudo mysqladmin -p -u username version
~$ 
Enter password:
mysqladmin  Ver 8.0.32-0ubuntu0.22.04.2 for Linux on x86_64 ((Ubuntu))
Copyright (c) 2000, 2023, Oracle and/or its affiliates.

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

Server version          8.0.32-0ubuntu0.22.04.2
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /var/run/mysqld/mysqld.sock
Uptime:                 57 min 22 sec

Threads: 2  Questions: 25  Slow queries: 0  Opens: 182  Flush tables: 3  Open tables: 101 
Queries per second avg: 0.007

Удаленный доступ к MySQL

Открываем на редактирование файл mysqld.cnf:

Редактирование конфигурационного файла

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Переходим к конфигурированию параметра bind-address:

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 

Обратите внимание, что такая настройка может быть небезопасной. Рекомендуется использовать ваш IP адрес, с которого вы собираетесь работать с базой данных.

Для применения параметров перезапускаем сервер MySQL командой:

sudo systemctl restart mysql

Даём привилегии пользователю на доступ из вне

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

CREATE USER ''@'%' IDENTIFIED BY '';

Если мы хотим создать пользователя, который сможет подключаться только с определенного IP адреса:

CREATE USER ''@'' IDENTIFIED BY '';
GRANT REPLICATION SLAVE ON *.* TO ''@'%';
FLUSH PRIVILEGES;

Ограничения файрвола

В iptables нужно открыть порт 3306 (по умолчанию для MySQL сервера). Если мы хотим открыть на доступ только для конкретного ip адреса:

sudo iptables -A INPUT -s  -p tcp --destination-port 3306 -j ACCEPT

Если мы хотим открыть для всех входящих соединений:

sudo iptables -A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT

После можно проверить список правил в iptables командой:

sudo iptables -nvL

Также мы можем настроить iptables для входящих только с определенных ip адресов, а для остальных запретить:

/sbin/iptables -A INPUT -s 127.0.0.1 -p tcp --destination-port 3306 -j ACCEPT
/sbin/iptables -A INPUT -s 192.168.1.5 -p tcp --destination-port 3306 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 3306 -j DROP

Также в Ubuntu по дефолту идёт оболочка UFW, можно через неё открыть доступ к порту сервера MySQl:

sudo ufw allow 3306

А также, если нам нужно открыть только для определенного ip адреса:

sudo ufw allow from  to any port 3306

После завершения настройки проверьте, что пользователь может подключиться к MySQL удаленно.

mysql -u  -h  -p

Как установить, изменить и восстановить пароль root MySQL

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

Дополнительно:  Приложение для проверки root прав

Этот процесс выполняется через командную строку и работает с установками MySQL или MariaDB. И хорошо, пока у вас есть доступ администратора, используя синтаксис sudo или su, используемый вами дистрибутив Linux не имеет значения, поскольку процесс аналогичен.

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

Установка пароля в первый раз

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

  1. Сначала откройте окно терминала.
  2. После запуска терминала вставьте и выполните эту команду:
mysqladmin -u пароль root Fosslinux

Где Fosslinux — это пароль, который вы будете использовать с этого момента, это означает, что каждый раз, когда вы входите в MySQL с помощью команды mysql -u корень -p, вам нужно будет ввести пароль, который мы только что настроили.

В качестве альтернативы вы можете использовать следующий метод для установки пароля root в первый раз. Используйте команду ниже:

mysql_secure_installation
безопасная установка mysql
Безопасная установка MySQL

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

После установки пароля root MySQL в первый раз пора узнать, как его изменить.

Изменение пароля пользователя root MySQL

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

  • Сначала создайте новый файл, используя следующую команду:
ALTER USER 'root' @ 'localhost' ОПРЕДЕЛЕННЫЙ 'Fosslinux $ 11';
создать новый пароль
создать новый пароль

Где Fosslinux $ 11 — это новый пароль, который будет использоваться. Не забудьте удовлетворить текущую политику паролей, комбинируя прописные, строчные, числовые и специальные символы.

Сохраните файл как ~ / mysql-pwd

  • Затем остановите демон MySQL, используя следующую команду:
sudo systemctl остановить mysql
остановить службу mysql
остановить службу MySQL
  • Теперь, когда демон остановлен, введите и выполните следующую команду на своем терминале:
Судо mysqld -init-file = ~ / mysql-pwd
сохранить пароль mysql
сохранить пароль MySQL
  • Как только командная строка завершит выполнение указанной выше команды, продолжите и перезапустите демон MySQL, используя следующую команду:
sudo systemctl запустить mysql
запустить службу mysql
запустить службу MySQL
  • На этом этапе вы должны иметь возможность войти в командную строку MySQL, используя только что установленный пароль администратора, выполнив команду ниже:
mysql -u корень -p

Когда появится запрос, введите созданный вами пароль администратора, и все будет готово.

войдите как пользователь root
войдите как пользователь root

Теперь, когда мы плодотворно узнали, как изменить только что созданный пароль root MySQL, пришло время узнать, как восстановить забытый или утерянный пароль root MySQL.

How to set up, change, and recover a MySQL root password

Please note: there have been many attacks across the IT landscape, thus necessitating very strong passwords, which I highly recommend for your databases. You can try out an unsystematic password generator, then save the password via the aid of a password manager.

Let’s carry on.

Setting the password for the first time

Typically, during the installation of MySQL, you are required to set an initial password. However, if this was not done while installing and setting up MySQL, you will first have to set up a password. Here is how to do that:

  1. First, open up a terminal window.
  2. After launching the terminal, paste and execute this command:
mysqladmin -u root password Fosslinux

Where Fosslinux is the password that you will be using from now on, this means that every time you log into MySQL using the command mysql -u root -p, you will have to key in the password we have just configured.

mysql_secure_installation

mysql secure installation

MySQL secure installation

After setting up the MySQL root password for the first time, it is time to learn how to change it.

Changing the MySQL root user password

  • First, create a new file using the command below:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Fosslinux$11';

create new password

create new password

Where Fosslinux$11 is the new password that will be used.  Remember to satisfy the current password policy by combining uppercase, lowercase, numeric and special characters.

Save the file as ~/mysql-pwd

  • Next, stop the MySQL daemon using the following command:
sudo systemctl stop mysql

stop mysql service

stop MySQL service

  • Now that the daemon is stopped, issue and execute the following command on your terminal:
sudo mysqld -init-file=~/mysql-pwd

save mysql password

save MySQL password

  • As soon as the command prompt completes executing the above command, proceed and restart the MySQL daemon using the following command:
sudo systemctl start mysql

start mysql service

start MySQL service

  • At this point, you should be able to log into the MySQL command prompt using the newly set admin passcode by executing the command below:
mysql -u root -p

login as a root user

Now that we have fruitfully learned how to change the newly created MySQL root password, it is time to learn how to recover a forgotten or lost MySQL root password.

Восстановите свой пароль MySQL

Что ж, допустим, вы забыли свой пароль пользователя root в MySQL и вам отчаянно нужно его восстановить. Все, что вам нужно сделать, это выполнить шаги, упомянутые здесь:

1. Остановите процесс сервера MySQL с помощью команды:

служба sudo mysql stop
остановка службы mysql
остановка службы MySQL

2. Запустите сервер MySQL, используя следующую команду:

sudo mysqld_safe --skip-grant-tables --skip-network &

3. Подключитесь к серверу MySQL как пользователь root, используя команду:

mysql -u корень

Вам потребуется выполнить следующие команды MySQL, чтобы сбросить пароль root после выполнения шагов, упомянутых выше:

mysql> используйте mysql; mysql> обновить набор пользователей authentication_string = password ('NEWPASSWORD'), где user = 'root'; mysql> очистить привилегии; mysql> выйти

Примечание. Не забывайте, что НОВЫЙ ПАРОЛЬ относится к новому паролю, который вы будете использовать для входа в систему как пользователь root.

Дополнительно:  Windows 10 не запускается после обновления: что делать, чтобы восстановить загрузку системы

После того, как вы закончите выполнение всех команд, упомянутых выше, продолжите и перезапустите демон MySQL, используя эту команду:

перезапуск службы sudo mysql
перезапустить службу mysql
перезапустить службу MySQL

Это все. Мы полагаем, что теперь вы можете установить, сбросить и восстановить свой пароль root MySQL.

Ключевой момент, на который следует обратить внимание: Не забудьте установить очень надежный пароль для пользователя root MySQL. Пароль, который сложно взломать. Это повысит безопасность ваших баз данных. Как вы уже знаете, в базах данных хранятся очень конфиденциальные данные, поэтому меньше всего вам нужно, чтобы кто-либо имел доступ к вашей информации без вашего согласия. Настоятельно рекомендуется использовать длинные пароли и пароли, которые сложно запомнить и угадать. Если вы используете генератор паролей для создания пароля, не забудьте сохранить его в хранилище паролей.

Как решить ошибку MySQL: доступ запрещен для пользователя root @ localhost

Это сообщение об ошибке обычно появляется для новых установок MySQL, когда вы пытаетесь подключиться к MySQL от имени пользователя root.

Вот как быстро разрешить доступ, запрещенный для пользователя root на localhost. Описанные шаги можно использовать как для MySQL, так и для MariaDB. Вам не нужно вносить изменения в какие-либо таблицы или выполнять какие-либо сложные конфигурации.

Как мы уже видели в этой статье, когда вы устанавливаете MySQL и хотите получить к нему доступ на локальном компьютере с пользователем root, вы используете следующую команду:

mysql -u корень -p
sudo mysql

Затем введите свой пароль в приглашении. Оболочка MySQL загрузится.

оболочка mysql
Оболочка MySQL
ALTER USER 'root' @ 'localhost' ИДЕНТИФИЦИРОВАН mysql_native_password ПО 'insert_password';

В целях обучения я изменю пароль на «Fosslinux», как показано в командной строке и выводе ниже:

ALTER USER 'root' @ 'localhost' ИДЕНТИФИЦИРОВАН mysql_native_password ПО 'Fosslinux';
открыть оболочку mysql
открыть оболочку MySQL

Приведенная выше командная строка изменяет пароль для пользователя root и устанавливает метод аутентификации на mysql_native_password. Это традиционный способ аутентификации. К сожалению, в большинстве случаев указанная выше ошибка возникает из-за того, что используемый режим аутентификации auth_plugin что небезопасно, отсюда и ошибка.

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

перезапуск службы sudo mysql 
перезапустить службу mysql
перезапустить службу MySQL

На этом этапе вы можете снова попытаться получить доступ к MySQL с правами root. В терминале введите:

mysql -u корень -p
войдите в mysql как root
войдите в MySQL как root

Recover your MySQL password

1. Stop the MySQL server process using the command:

sudo service mysql stop

service stop mysql

service stop MySQL

sudo mysqld_safe --skip-grant-tables --skip-networking &
mysql -u root
mysql> use mysql;

mysql> update user set authentication_string=password('NEWPASSWORD') where user='root';

mysql> flush privileges;

mysql> quit

Once you are done running all the commands mentioned above, proceed and restart the MySQL daemon using this command:

sudo service mysql restart

restart mysql service

restart MySQL service

By now, you should be able to log into MySQL using the newly set password.

That’s all. We believe you are now in a position to set, reset, and recover your MySQL root password.

How To Solve The MySQL Error: Access denied for user root@localhost

mysql -u root -p
sudo mysql

Then, input your passcode at the prompt. A MySQL shell will load.

mysql shell

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'insert_password';

For the sake of the tutorial, I will change the password to ‘Fosslinux as shown in the command line and output below:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Fosslinux';

open mysql shell

open MySQL shell

After running the commands listed above, exit the MySQL shell by clicking CTRL + D on your keyboard or key in “exit” on the MySQL shell and click enter. You do not have to restart the MySQL service for you to log in using the command below:

sudo service mysql restart 

restart mysql service

restart MySQL service

At this point, you can now attempt to access MySQL with root again. In the terminal, key in:

mysql -u root -p

login to mysql as root

login to MySQL as root

Разрешить пользователю root подключаться к MySQL и MariaDB без sudo

Для получения доступа к базе данных MySQL/MariaDB обычному пользователю без использования sudo привилегий, зайдите в приглашение командной строки MySQL

sudo mysql

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

Переключиться на аутентификацию по паролю можно следующим SQL запросом:

use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'ПАРОЛЬ';
exit

Обратите внимание, что вам нужно ввести ПАРОЛЬ.

mysql -u root -p

Это устаревший метод, он не работает в новых версиях MariaDB, но может по-прежнему работать в MySQL.

Для получения доступа к базе данных MySQL/MariaDB обычному пользователю без использования sudo привилегий, зайдите в приглашение командной строки MySQL

sudo mysql

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

use mysql;
update user set plugin='' where User='root';
flush privileges;
exit
sudo systemctl restart mysql.service
mysql -u root -p

==================Конец устаревшего метода==================

Создание нового пользователя для работы с MySQL через phpMyAdmin

1. Подключитесь к mysql

sudo mysql --user=root mysql

Запустите следующие команды (замените some_pass на желаемый пароль):

CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;

3. Опционально: разрешение удалённых соединений

Помните: разрешение удалённому пользователю иметь все привилегии – это вопрос безопасности, имейте это ввиду, выполняя последующие шаги. Если вы хотите, чтобы этот пользователь имел те же привилегии во время удалённых подключений, дополнительно выполните (замените some_pass на пароль, используемый на Шаге #2):

CREATE USER 'phpmyadmin'@'%' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
# dbc_dbuser: database user
#       the name of the user who we will use to connect to the database.
dbc_dbuser='phpmyadmin'

# dbc_dbpass: database user password
#       the password to use with the above username when connecting
#       to a database, if one is required
dbc_dbpass='some_pass'

Заключение

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

Conclusion

The article further breaks down the steps to set up, change and recover a MySQL root password and set up the root password for the first time. Ensure to stick to all the processes provided in this article to avoid security breaches by using strong password combinations. We hope the article will be helpful. If yes, give a thumbs up via the comments section.

Оцените статью
Master Hi-technology
Добавить комментарий