Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Подключиться ко 2-ой бд при отказе 1-ой

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
leshiy
Отправлено: 11 Октября, 2016 - 13:44:28
Post Id


Частый гость


Покинул форум
Сообщений всего: 188
Дата рег-ции: Июнь 2008  


Помог: 0 раз(а)




Как бы при отказе первой бд сайт подключался бы к резервной.
Пробовал так
bd.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $host="localhost";
  4. $user="user";
  5. $password="password";
  6. $baza="baza";
  7. mysql_connect($host, $user, $password) or die(include "db1.php");
  8.   mysql_query("SET NAMES 'utf8'");
  9. mysql_select_db($baza) or die();
  10. ?>
  11.  

db1.php
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $host="localhost";
  4. $user="user1";
  5. $password="password1";
  6. $baza="baza1";
  7. mysql_connect($host, $user, $password) or die(include "db1.php");
  8.   mysql_query("SET NAMES 'utf8'");
  9. mysql_select_db($baza1) or die();
  10. ?>

так не выходит.
 
 Top
3d_killer
Отправлено: 11 Октября, 2016 - 13:58:19
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




ну так в первом коде or die(); означает не смог подключиться все прекратить работу прекратить вывод, вот надо не die() а как раз подключение ко второй БД
 
My status
 Top
leshiy
Отправлено: 11 Октября, 2016 - 14:01:19
Post Id


Частый гость


Покинул форум
Сообщений всего: 188
Дата рег-ции: Июнь 2008  


Помог: 0 раз(а)




3d_killer пишет:
ну так в первом коде or die(); означает не смог подключиться все прекратить работу прекратить вывод, вот надо не die() а как раз подключение ко второй БД

PHP:
скопировать код в буфер обмена
  1.  
  2. mysql_connect($host, $user, $password) or (include "db1.php");
  3.  

так тоже не выходит.
 
 Top
3d_killer
Отправлено: 11 Октября, 2016 - 14:10:13
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




отдельно пробовал подключиться к 1 БД, 2 БД, одновременно, какую ошибку пишет
 
My status
 Top
leshiy
Отправлено: 11 Октября, 2016 - 14:13:01
Post Id


Частый гость


Покинул форум
Сообщений всего: 188
Дата рег-ции: Июнь 2008  


Помог: 0 раз(а)




3d_killer пишет:
отдельно пробовал подключиться к 1 БД, 2 БД, одновременно, какую ошибку пишет

Если в бд нет ошибок то все работает, а если допустим в 1-ой неправильный пароль то выдает просто пустую страницу.
 
 Top
3d_killer
Отправлено: 11 Октября, 2016 - 14:22:09
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




Во второй в конце mysql_select_db($baza1) or die("Ошибка"); и посмотри, и нужно включить вывод ошибок чтобы их видеть
 
My status
 Top
OrmaJever Модератор
Отправлено: 11 Октября, 2016 - 14:25:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




leshiy пишет:
mysql_

сколько можно это терпеть. Господи, да перейдите вы уже на mysqli, а лучше pdo, там есть таймаут соединения, он выбрасывает исключения, там всё по людски, а не костылями в виде or die()


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
3d_killer
Отправлено: 11 Октября, 2016 - 14:25:13
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




судя по тому куда подключаешься это один и тот же сервер денвер или опен сервер, не? если меняешь пароль на базу то и на вторую он тоже меняется?
(Добавление)
OrmaJever, почему-то все с этого начинают
 
My status
 Top
leshiy
Отправлено: 11 Октября, 2016 - 14:41:03
Post Id


Частый гость


Покинул форум
Сообщений всего: 188
Дата рег-ции: Июнь 2008  


Помог: 0 раз(а)




OrmaJever пишет:
leshiy пишет:
mysql_

сколько можно это терпеть. Господи, да перейдите вы уже на mysqli, а лучше pdo, там есть таймаут соединения, он выбрасывает исключения, там всё по людски, а не костылями в виде or die()

Попробовал
PHP:
скопировать код в буфер обмена
  1.  
  2.   $mysqli = @new mysqli('localhost', 'user', 'password', 'baza');
  3.     echo "Подключение невозможно: ".mysqli_connect_error();
  4.   }
  5.   $mysqli->close();
  6.  

Подключение невозможно: Access denied for user 'user'@'localhost' (using password: YES)Access denied for user 'apache'@'localhost' (using password: NO)
 
 Top
3d_killer
Отправлено: 11 Октября, 2016 - 14:44:02
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




ну так пароль не подходит
(Добавление)
скорее всего меняешь пароль и не может подключиться ни к первой базе ни ко второй и в результате пусто
 
My status
 Top
leshiy
Отправлено: 11 Октября, 2016 - 14:45:55
Post Id


Частый гость


Покинул форум
Сообщений всего: 188
Дата рег-ции: Июнь 2008  


Помог: 0 раз(а)




3d_killer пишет:
ну так пароль не подходит

Как это?По старому значит подходит а по новому нет.
 
 Top
3d_killer
Отправлено: 11 Октября, 2016 - 14:47:29
Post Id



Участник


Покинул форум
Сообщений всего: 1916
Дата рег-ции: Апр. 2011  
Откуда: Ростов-на-Дону


Помог: 21 раз(а)




Access denied for user 'user'@'localhost' (using password: YES) доступ к базе запрещен пользователю user (пароль неверный)

Access denied for user 'apache'@'localhost' (using password: NO) apache доступ к базе запрещен пользователю (пароль пустой)

Что непонятного?
(Добавление)
скажи а во втором подключении
mysql_select_db($baza1) or die();
где переменную $baza1 объявлял?
 
My status
 Top
armancho7777777 Супермодератор
Отправлено: 11 Октября, 2016 - 15:12:01
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




leshiy пишет:
Как бы при отказе первой бд сайт подключался бы к резервной.

Почитайте про репликации.

Книга: Обеспечение высокой доступности систем на основе MySQL
Глава 2 Основы репликации MySQL.

Книга: MySQL. Оптимизация производительности
Глава 8. Топологии репликации.
Глава 9. Масштабирование и высокая доступность.

Думаю, подойдёт Multi-Master репликация.

(Отредактировано автором: 11 Октября, 2016 - 15:14:18)

 
 Top
Мелкий Супермодератор
Отправлено: 11 Октября, 2016 - 15:29:40
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




armancho7777777 пишет:
Думаю, подойдёт Multi-Master репликация.

Для того, чтобы не спать ночами? Да, идеально подойдёт. Даст много интересных воспоминаний, пока не дойдёт простая CAP-теорема.

Учитывая, что непреодолимая сложность началась с подключения к базе - ой как сомневаюсь, что хватит знаний на мультимастер. К тому же мультимастер всё равно требует логику подключения. Хотя эту логику можно завернуть через haproxy тот же.


-----
PostgreSQL DBA
 
 Top
armancho7777777 Супермодератор
Отправлено: 11 Октября, 2016 - 16:09:42
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Мелкий пишет:
Для того, чтобы не спать ночами?

Можно подробнее?
Мне интересно.
(Добавление)
И какой Вариант на Ваш взгляд лучше.
В плане распределения общей нагрузки.
(Добавление)
armancho7777777 пишет:
Мне интересно.

Именно с Ваших уст)
(Добавление)
armancho7777777 пишет:
И какой Вариант на Ваш взгляд лучше.

Один Master и множество подчинённых (slave) серверов?
(Добавление)
armancho7777777 пишет:
Можно подробнее?

Уже ознакомился.
Эрик Брюер пишет:
Невозможно создать распределенное (состоящие из нескольких равноценных экземпляров — звеньев) веб-приложение, которое будет одновременно обладать тремя свойствами: согласованность (consistency), доступность(availability) и устойчивость к разделению(partition tolerance), сокращенно CAP.

Благодарю.
(Добавление)
Хотя есть и такое мнение:
https://habrahabr.ru/post/258145/

(Отредактировано автором: 11 Октября, 2016 - 16:15:22)

 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB