#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. Да, спасибо, это работает! Я не знаю о пароле, это был просто пример кода, который дал мне мой учитель. большое вам спасибо!