Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Sh@dow777
16 / 16 / 6
Регистрация: 10.12.2013
Сообщений: 710
1

Создание базы данных

26.03.2016, 08:45. Просмотров 785. Ответов 15
Метки нет (Все метки)

Привет всем. У меня к вам один вопрос по MySQL. Сразу оговорюсь, что использую Денвер.

Скажите, перед тем, как работать с какой-то БД в php скрипте, нужно создавать ее сначала в самом MySQL? Если да, то когда я пробую создать какую-либо БД, пишу create database blabla;... и мне выдает ошибку Error 1044 <42000>: Access denied for user ' '@'localhost' to database 'blabla'.

Что это может быть? Почему отказано в доступе?

Хост у меня 127.0.0.1, порт 3306, если что.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2016, 08:45
Ответы с готовыми решениями:

Создание базы данных
Хочу создать приложение которая при установку сама создаёт для себя базу...

Создание базы данных
&lt;?php $connect=mysql_connect(&quot;localhost&quot;,&quot;root&quot;,&quot;&quot;) or die (&quot;Не удалось...

Создание базы данных
Что за ошибка при создании базы данных на денвере? CREATE USER...

Создание базы данных
Здравствуйте Читатю туториал по Zend Framework 2 и возникла необходимость...

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

15
Massa4
19 / 19 / 2
Регистрация: 12.12.2014
Сообщений: 49
26.03.2016, 09:52 2
У вас в тексте ошибки даже нет имени пользователя. Может в самой dbms нету пользователей, вы их создавали?
1
Sh@dow777
16 / 16 / 6
Регистрация: 10.12.2013
Сообщений: 710
26.03.2016, 10:21  [ТС] 3
Massa4, Нет. Я только начал знакомиться с MySQL, так как нужно написать по нему лабораторную.

Нужно прописать что-то типа такого?

mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost
-> IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@"%"
-> IDENTIFIED BY 'some_pass' WITH GRANT PTION;
mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost;
mysql> GRANT USAGE ON *.* TO dummy@localhost;
0
Massa4
19 / 19 / 2
Регистрация: 12.12.2014
Сообщений: 49
26.03.2016, 10:26 4
Цитата Сообщение от Sh@dow777 Посмотреть сообщение
Нужно прописать что-то типа такого?
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost
Да, что-то типа этого, monty, admin, dummy - имена пользователей.
1
Sh@dow777
16 / 16 / 6
Регистрация: 10.12.2013
Сообщений: 710
26.03.2016, 13:07  [ТС] 5
Massa4, То есть, вместо monty, admin, dummy какое-то одно мое имя, а вместо some_pass какой-то мой пароль придуманный?
0
Massa4
19 / 19 / 2
Регистрация: 12.12.2014
Сообщений: 49
26.03.2016, 20:13 6
Цитата Сообщение от Sh@dow777 Посмотреть сообщение
То есть, вместо monty, admin, dummy какое-то одно мое имя, а вместо some_pass какой-то мой пароль придуманный?
Почитайте синтаксис команды создания пользователя БД CREATE USER, возможно перед тем как давал пользователю полномочия, его нужно создать.
1
Sh@dow777
16 / 16 / 6
Регистрация: 10.12.2013
Сообщений: 710
28.03.2016, 17:28  [ТС] 7
Попробовал создать пользователя, и мне выдало ошибку "Access denied; you need at least one of the CREATE USER privileges for this operation" Что за бред? Как эти привилегии получить?
0
Massa4
19 / 19 / 2
Регистрация: 12.12.2014
Сообщений: 49
28.03.2016, 18:30 8
Лучший ответ Сообщение было отмечено Sh@dow777 как решение

Решение

Попробуйте:
пользователь - root
пустой пароль

Кажется по умолчанию при установке именно так, если вы при установке не задавали свой пароль. Или попробуйте открыть phpmyadmin по ссылке http://localhost/Tools/phpMyAdmin/ (надеюсь эта ссылка не будет считаться сторонним ресурсом, а то один модератор "умудрился" потересь ссылку в посте которая вела на этот же форум в другую тему, описав ее как "сторонний ресурс" )
1
Sh@dow777
16 / 16 / 6
Регистрация: 10.12.2013
Сообщений: 710
29.03.2016, 02:53  [ТС] 9
Massa4,
Цитата Сообщение от Massa4 Посмотреть сообщение
Попробуйте:
пользователь - root
пустой пароль
Попробовал. Отказано в доступе...
Нашел папку phpmyadmin, в ней куча php файлов. Что дальше делать?
0
Massa4
19 / 19 / 2
Регистрация: 12.12.2014
Сообщений: 49
30.03.2016, 15:37 10
У вас два выхода, или переставить Денвер и задать пароль root mysql заново или сбросить существующий.
Я давно не ставил Денвер, потому на личном опыте уже не вспомню, вот примеры как это сделать: 1, 2, 3.

Ссылки лучше скопируйте сразу, а то тут есть не понятные модераторы которые удаляю ссылки даже на другие темы на этом же форуме.
1
Sh@dow777
16 / 16 / 6
Регистрация: 10.12.2013
Сообщений: 710
30.03.2016, 20:54  [ТС] 11
Massa4, Почему я вообще заморачиваюсь над этим вопросом...
Мне нужно сделать лабораторку по PHP, в которой нужно создать БД, 2 таблицы.....и т.д.(с этим я сам справлюсь).

Сначала я попробовал установить соединение с MySQL. Написал скрипт:
PHP
1
2
3
4
5
6
7
8
<?php
   $connection = mysqli_connect();
   
   if(!$connection)
      echo "Ошибка подключения(". mysqli_connect_errno(). "): ". mysqli_connect_error();
      
   echo "Соединение установлено!<br/>";
?>
Соединение устанавливается. Но теперь же нужно выбрать БД, с которой работать. А из чего выбирать, если ничего нет? Попробовал mysql_create_db, но мне выдало "Call to undefined function". Поискал в инете про эту ошибку, нашел в php.ini строчку extension_dir = "/usr/local/php5/ext", понял, что вроде всё верно, и теперь я вообще в ступоре
0
Jodah
Эксперт PHP
2706 / 2378 / 1013
Регистрация: 01.08.2012
Сообщений: 8,408
30.03.2016, 21:19 12
Цитата Сообщение от Sh@dow777 Посмотреть сообщение
Попробовал mysql_create_db
Так вы используете драйвер mysqli, соответственно нужно mysqli_* функции и использовать.
Цитата Сообщение от Sh@dow777 Посмотреть сообщение
нужно создать БД
PHP
1
mysqli_query($connection, "CREATE DATABASE mydatabase");
1
Sh@dow777
16 / 16 / 6
Регистрация: 10.12.2013
Сообщений: 710
30.03.2016, 23:01  [ТС] 13
Jodah, Скрипт:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
   $connection = mysqli_connect();
   
   if(!$connection)
      echo "Ошибка подключения(". mysqli_connect_errno(). "): ". mysqli_connect_error();
      
   echo "Соединение установлено!<br/>";
   
   $create = mysqli_query($connection, "CREATE DATABASE db");
   
   if(!$create)
       echo "Oops...(". mysqli_error($connection). ")";
   else
       echo "Yes!";
?>
Вывод в браузере:

Соединение установлено!
Oops...(Access denied for user ''@'localhost' to database 'db')
.

Вот что это за бред?

Добавлено через 4 минуты
И пользователя создать тоже не могу, так как нет привилегий.

Переустанавливать Денвер? Я просто сомневаюсь, что это поможет.
0
Jewbacabra
Эксперт PHP
3421 / 2847 / 1283
Регистрация: 24.04.2014
Сообщений: 8,640
31.03.2016, 00:24 14
Лучший ответ Сообщение было отмечено Sh@dow777 как решение

Решение

Цитата Сообщение от Sh@dow777 Посмотреть сообщение
Вот что это за бред?
Документацию изучать надо прежде чем что-то делать.

PHP
1
2
3
4
5
6
7
8
// если эти данные не были изменены до или после установки, в противном случае придется вспоминать
$connection = mysqli_connect('127.0.0.1', 'root', '');
if (!$connection) die(mysqli_connect_error());
$create = mysqli_query($connection, "CREATE DATABASE db");
if(!$create)
   echo "Oops...(". mysqli_error($connection). ")";
else
    echo "Yes!";
1
Sh@dow777
16 / 16 / 6
Регистрация: 10.12.2013
Сообщений: 710
31.03.2016, 09:09  [ТС] 15
Massa4, Jewbacabra, Спасибо вам огромное!!! Всё заработало. Ступил я с хостом и паролем просто Надо было в самом скрипте это добро вводить.

P.S. А почему все таки в самом MySQL нет привилегий? Пытаюсь теперь сделать так: GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY ""; - выводит ошибку Access denied for user ' '@' localhost'(using password: NO). Попробовал без IDENTIFIED BY, тоже самое.
0
Jewbacabra
Эксперт PHP
3421 / 2847 / 1283
Регистрация: 24.04.2014
Сообщений: 8,640
31.03.2016, 12:13 16
Цитата Сообщение от Sh@dow777 Посмотреть сообщение
P.S. А почему все таки в самом MySQL нет привилегий?
потому что от имени пользователя у которого есть для этого права нужно делать.
1
31.03.2016, 12:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2016, 12:13

Создание базы данных
Вот прочитал все как по книге, а она зараза не создается. Может у кого-то есть...

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

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru