2013-10-25 2 views
0

У меня есть пользователь, имеющий доступ из шаблона%, wildcard.mysql db открыт для всех хост-подключений

У этого пользователя "БОГ" также есть доступ ко всем db.

Должен ли я открыть сам db, чтобы разрешать соединения с любого хоста?

Я понимаю, что это очень опасно для производства, но я не работаю в производственной среде. Просто играйте с ним и не можете заставить его работать.

GRANT ALL ON foo.* TO [email protected]'%' IDENTIFIED BY '[email protected]$w0rd'; 

Это предоставляет пользователю доступ к foo дб для bar пользователя из % в любом месте, с паролем идентифицированной.

Я пытаюсь, но это не работает. Насколько я читал, это должно открывать его во что угодно, но это не так.

define('DB_HOST','98.76.54.321',true); 
define('DB_USER','bar',true); 
define('DB_PASS','[email protected]$w0rd',true); 
define('DB_DBAS','foo',true); 

$link = mysqli_connect(DB_HOST,DB_USER,DB_PASS,DB_DBAS); 
if (!$link) { 
    echo 'FAIL! : '.mysqli_connect_error(); 
} 
else { echo 'Success.'; } 
+0

Вам не хватает единой цитаты после '%'? –

+0

извините, исправно. Но проблема не в синтаксисе mysql, но когда я пытаюсь подключиться через php. Мой синтаксис php действителен, я также опубликую его. – Plummer

+0

Значит ли сам хост разрешает доступ к порту 3306 MySQL от любого клиента? Если брандмауэр широко открыт на 3306, а 'skip-networking' не включен в my.cnf, вы не сможете подключаться с удаленных хостов независимо от предоставленных разрешений. –

ответ

0

mysqli_connect() принимает поле для порта, поэтому порт не помещается в узел.

mysqli_connect(HOST,USER,PASS,DATABASE,PORT); 
Смежные вопросы