Создание нового пользователя с помощью SQL в phpMyAdmin

#mysql #sql #phpmyadmin

#mysql #sql #phpmyadmin

Вопрос:

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

  SELECT Host, User from mysql.user;

CREATE USER ‘David’ @‘localhost’ IDENTIFIED BY ‘password’;
SELECT Host, User from mysql.user;
Show databases;
Create database mydatabase;
Use mydatabase;
grant all on mydatabase.*to ‘David’ @‘localhost’;
set password for ‘David’ @‘localhost’ = password (‘newpassword’);
  

Я не знаю, что происходит и как это на самом деле работает. У меня на сервере запущены phpMyAdmin, SQL и Apache. Извините, если этот вопрос кажется расплывчатым (или слишком простым), но он беспокоит меня уже несколько часов. Это ошибка в коде?

ПРИМЕЧАНИЕ * LOCALHOST — это мое соединение, и этот код — всего лишь пример

Комментарии:

1. СОЗДАЙТЕ ПОЛЬЗОВАТЕЛЯ ‘David’ @‘localhost’, ИДЕНТИФИЦИРУЕМОГО ‘password’; создайте пользователя вашей базы данных, предоставьте все в mydatabase.*для ‘David’ @‘localhost’; предоставляет ему «все» разрешения, наконец, установите пароль для ‘David’ @‘localhost’ = password (‘newpassword’); дает ему пароль, просто делайте то же самое в каждой строке рядом с предыдущей, не создавайте базу данных дважды или что-либо подобное.

2. Я пробовал это, но все еще выдает ошибку в первой строке

3. в чем ошибка?

4. СОЗДАЙТЕ ПОЛЬЗОВАТЕЛЯ ‘David’ @‘localhost’, ИДЕНТИФИЦИРОВАННОГО ПО ‘password’ MySQL сказал: Документация # 1064 — У вас ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MariaDB, на предмет правильного синтаксиса, который следует использовать рядом с «паролем’ в строке 1

5. попробуйте ту же команду, но без пробела между ‘David’ и @

Ответ №1:

Используйте use ‘not‘ в вашем запросе.

 SELECT Host, User from mysql.user;
CREATE USER 'David'@'localhost' identified by 'password';
SELECT Host, User from mysql.user;
Show databases;
Create database mydatabase;
Use mydatabase;
grant all on mydatabase.* to 'David'@'localhost';
flush privileges;
  

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

Комментарии:

1. Да, спасибо, это работает! Я не знаю о пароле, это был просто пример кода, который дал мне мой учитель. большое вам спасибо!