Ознакомьтесь с нашей политикой обработки персональных данных
  • ↓
  • ↑
  • ⇑
 
Записи с темой: mysql (список заголовков)
23:35 

[Решено?] Удалённый доступ к MySQL: bash может, PHP не может – почему?

Скептичный циник
Миру - мир. А Вам - пломбир!
Доброго времени суток!

В наличии два сервера в сети /24: 2 и 88 соответственно.

Задача: из PHP приложения на 88 забирать данные из MySQL с обоих серверов.

tl;dr:
– bash успешно коннектится и забирает правильные данные
– PDO+стандартный dsn и MySQLi валятся с "Permission denied"
– PDO+socket коннектится, но к локальной базе

Ничто лучше не опишет ситуацию как небольшие тесты:
1. Bash:

[trogwar@centos ~]$ mysql --host="42.42.42.2" --user="foobar" --password='blowfish'
# ... credits ...
mysql> use cooldb
Database changed
mysql> select count(*) from rem_tests;
+----------+
| count(*) |
+----------+
| 98 |
+----------+
1 row in set (0.00 sec)
mysql>


2. PHP + PDO + default dsn:

try {
$dbh = new PDO(
'mysql:host=42.42.42.2;dbname=cooldb',
'foobar',
'blowfish'
);
$sql = 'SELECT COUNT(*) FROM rem_tests'; // Таблица существует только на удалённом сервере
$stmt = $dbh->prepare($sql);
$status = $stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $exception) {
echo $exception->getMessage();
}
var_dump($result); // PDOException: SQLSTATE[HY000] [2002] Permission denied
die();


3. PHP + PDO + sockets:

// ... тот же самый код ...
'mysql:unix_socket=/var/lib/mysql/mysql.sock;dbname=cooldb',
// ... тот же самый код ...
var_dump($result); // PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'coldb.rem_tests' doesn't exist
die();


Вопросы:
1. В чём разница между PHP и Bash в плане коннекта к мускулу? (о.0)
2. Есть идеи получить доступ из пыха?

Спасибо!

@темы: База данных, remote, PHP, PDO, MySQL, *nix

18:47 

alhames
alhames.ru
Ребят, я иссяк. Может у вас будут идеи:
как хранить многомерный массив в плоской базе данных (MySQL), так чтобы удобно можно было организовывать поиск по всем элементам?
К примеру:
{
id: 1,
name: 'Иванов Иван Иваныч',
mother: {
id: 2,
name: 'Иванова Ивания Ивановна'
},
father: {
id: 7,
name: 'Иванов Абдула Иванович'
},
hobby: [
[{name: 'Спорт',id: 334},{name: 'Велосипед',id: 745}],
[{name: 'Телевизор',id: 644},{name: 'Дом 3',id: 838}]
]
}

И после к примеру мне нужно будет сделать выборку всех людей, кто увлекается спортом, всех людей кто увлекается ездой на велосипедах, или кто не смотрит дом 3. Как?

@темы: SQL, MySQL

ru_programming

главная