Недостаточно памяти
Если такая ошибка возникла, это может означать, что в MySQL недостаточно памяти для хранения всего результата запроса.
Сначала нужно убедиться, что запрос правильный. Если это так, то нужно выполнить одно из следующих действий:
- если клиент MySQL используется напрямую, запустите его с ключом , чтобы отключить кешированные результаты;
- если вы используете драйвер MyODBC, пользовательский интерфейс (UI) имеет расширенную вкладку с опциями. Отметьте галочкой «Do not cache result» (не кешировать результат).
Также может помочь MySQL Tuner. Это полезный скрипт, который подключается к работающему серверу MySQL и даёт рекомендации по настройке для более высокой производительности.
Установка и настройка MariaDB
Установка
Для установки MariaDB без вопросов выполним команду со следующими параметрами:
yum install -y mariadb mariadb-server
Создадим ссылки на автозагрузку:
systemctl enable mariadb.service = вывод команды = Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
Запустим службу:
systemctl start mariadb.service
Начальная настройка
Произведем начальную настройку базы данных:
mysql_secure_installation
Сразу при старте попросит указать пароль! Так как его просто нет нажимаем Enter. На все вопросы обычно отвечаю Y.
Проверка и команды сервиса
Проверим сервис MariaDB:
netstat -tap | grep mysql = вывод команды = tcp 0 0 0.0.0.0:mysql 0.0.0.0:* LISTEN 769/mysqld
Проверим статус:
systemctl status mariadb.service = вывод команды = ● mariadb.service - MariaDB database server Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled) Active: active (running) since Чт 2017-03-23 04:59:53 MSK; 1 day 16h ago - часть вывода не указана -
Видим что всё хорошо и служба стартует при перезагрузке сервера.
Варианты команд при работе с MariaDB
systemctl mariadb.service
В случае если что то пошло не так, вы всегда можете ознакомится посмотрев логи в папке /var/log/mariadb.
Настройка MySQL
После завершения установки запускается MySQL Server Instance Configuration Wizard (его можно запустить вручную из Компьютер → Program Files → MySQL → MySQL Server 5.5 → bin → MySQLInstanceConfig.exe). Нажимаем Next:
Далее выбираем пункт Detailed Configuration (расширенная настройка):
Выбираем сценарий установки: Developer Machine — для установки на домашний компьютер (наш выбор), Server Machine — для установки на сервер, Dedicated MySQL Server Machine — для установки на сервер полностью выделенный под MySQL. Эти опции влияют в первую очередь на объем потребляемой MySQL памяти:
MySQL поддерживает два основных типа БД (InnoDB — с поддержкой транзакций и MyISAM — без транзакций). Multifunctional Database — будет установлена поддержка БД обоих типов (наш выбор). Transactional Database Only — будет установлена поддержка только InnoDB. Non-Transactional Database Only — будет установлена поддержка только MyISAM.
Если на предыдущем этапе была выбрана поддержка InnoDB, здесь можно настроить расположение файлов данных InnoDB:
Поддержка одновременных соединений. Decision Support — до 20 одновременных соединений (наш выбор). Online Transaction Processing — до 500 соединений. Manual Setting — ручная установка количества соединений.
Отмечаем опции «Enable TCP/IP Networking» и «Enable Strict Mode». Port Number оставляем без изменений — 3306. Если к серверу планируются прямые подключения с других компьютеров, отмечаем опцию «Add firewall exception for this port» (открыть порт в брандмауэре windows).
Выбираем кодировку по умолчанию. Сейчас самый разумный выбор — это UTF-8. Выбираем опцию Best Support For Multilingualism:
Обязательно отмечаем опцию «Install As Windows Service» (запускать как службу Windows). Отмечаем «Launch the MySQL Server automatically», если нужен автозапуск службы.
Завершающий этап. Установка пароля администратора (root). Этот пароль лучше не терять! Опции «Enable root access from remote machines» и «Create An Anonymous Account» отмечать не рекомендуется, т.к. они снижают безопасность.
Далее нажимаем Next и Execute. На этом базовая настройка завершена.
Примечание: если вы до этого устанавливали MySQL, а потом удалили или переустановили, то на последнем этапе будет возникать ошибка 1045 (Connection Error). Чтобы этого не было, придется удалить MySQL, затем удалить скрытую папку MySQL находящуюся в C:\ProgramData (в этой папке находятся файлы информации о данных пользователя). После этого повторите процедуру установки и настройки.
Теперь осталось проверить успешно ли прошла установка. Открываем Пуск → Все программы → MySQL → MySql Server 5.5 → MySQL 5.5 Command Line Client (утилита для работы с MySQL в командной строке).
Далее вводим пароль администратора (root). Если пароль правильный, вы попадете в командную строку ( mysql> ). Введите команду: show databases; (точка с запятой на конце обязательны). В результате вы должны увидеть список баз данных (как минимум две — information_schema и mysql). Это означает, что сервер работает правильно. Закрываем командную строку выполнив команду exit.
Шаг 3 — Управление процессом Apache
Теперь ваш веб-сервер запущен и работает, и настало время изучить некоторые простые команды управления.
Чтобы остановить веб-сервер, введите:
Чтобы запустить остановленный веб-сервер, введите:
Чтобы остановить и снова запустить службу, введите:
Если вы просто вносите изменения в конфигурацию, во многих случаях Apache может перезагружаться без отключения соединений. Для этого нужно использовать следующую команду:
По умолчанию Apache настроен на автоматический запуск при загрузке сервера. Если вы не хотите этого, отключите такое поведение с помощью следующей команды:
Чтобы перезагрузить службу для запуска во время загрузки, введите:
Apache должен будет запуститься автоматически при следующей загрузке сервера.
Конфигурация по умолчанию для Apache позволит вашему серверу размещать один веб-сайт. Если вы планируете разместить несколько доменов на сервере, вам нужно будет настроить виртуальные хосты на веб-сервере Apache.
Открытие портов в файрволе на CentOS 7.1
Как уже было сказано выше, для того чтобы наш web сервер был доступен по определенным портам, т.е. обычно это 80 для http и 443 для https, необходимо открыть соответствующие порты на файрволе, делается это достаточно просто, поэтому отключать файрвол, как рекомендуют некоторые web мастера, нет необходимости и я даже больше скажу — это крайне не рекомендуется.
Выполняем от имени суперпользователя следующие команды, 1 для открытия 80 порта, 2 для 443 и 3 для перезапуска файрвола:
firewall-cmd --permanent --zone=public --add-service=http firewall-cmd --permanent --zone=public --add-service=https firewall-cmd --reload
Предоставление доступа пользователю с удаленного компьютера
Следующим шагом является предоставление доступа к базе данных удаленному пользователю.
Войдите на сервер MySQL от имени пользователя root, введя:
sudo mysql
Если вы используете старый плагин аутентификации MySQL для входа в систему от имени пользователя root, введите команду ниже и введите пароль при появлении запроса:
mysql -uroot -p
Внутри оболочки MySQL используйте GRANTоператор для предоставления доступа удаленному пользователю.
GRANT ALL ON database_name.* TO user_name@'ip_address' IDENTIFIED BY 'user_password';
Где:
- database_name – Имя базы данных, к которой будет подключаться пользователь.
- user_name – это имя пользователя MySQL.
- ip_address – это IP – адрес , с которого пользователь будет подключаться. Используйте, %чтобы позволить пользователю подключаться с любого IP-адреса.
- user_password – это пароль пользователя.
Например, чтобы предоставить доступ к базе данных dbname пользователю с именем andreyex с паролем my_passwd с клиентского компьютера с IP 10.8.0.5, вы должны выполнить:
GRANT ALL ON dbname.* TO andreyex@'10.8.0.5' IDENTIFIED BY 'my_passwd';
Настройка брандмауэра
Последний шаг – настройка брандмауэра для разрешения трафика через порт 3306( порт MySQL по умолчанию) с удаленных компьютеров.
Iptables
Если вы используете iptables в качестве брандмауэра, команда ниже разрешит доступ с любого IP-адреса в Интернете к порту MySQL. Это очень небезопасно.
sudo iptables -A INPUT -p tcp --destination-port 3306 -j ACCEPT
Разрешить доступ с определенного IP-адреса:
sudo iptables -A INPUT -s 10.8.0.5 -p tcp --destination-port 3306 -j ACCEPT
UFW
UFW – это инструмент брандмауэра по умолчанию в Ubuntu. Чтобы разрешить доступ с любого IP-адреса в Интернете (очень небезопасно), выполните:
sudo ufw allow 3306/tcp
Разрешить доступ с определенного IP-адреса:
sudo ufw allow from 10.8.0.5 to any port 3306
FirewallD
FirewallD является инструментом управления брандмауэром по умолчанию в CentOS. Чтобы разрешить доступ с любого IP-адреса в Интернете (очень небезопасно), введите:
sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp sudo firewall-cmd --reload
Чтобы разрешить доступ с определенного IP-адреса на конкретном порту, вы можете создать новую зону FirewallD или использовать расширенное правило. Хорошо создайте новую зону с именем mysqlzone:
sudo firewall-cmd --new-zone=mysqlzone --permanentsudo firewall-cmd --reload sudo firewall-cmd --permanent --zone=mysqlzone --add-source=10.8.0.5/32 sudo firewall-cmd --permanent --zone=mysqlzone --add-port=3306/tcp sudo firewall-cmd --reload
Проверка изменений
Чтобы убедиться, что удаленный пользователь может подключиться к серверу MySQL, выполните следующую команду:
mysql -u user_name -h mysql_server_ip -p
Где user_name имя пользователя, которому вы предоставили доступ и mysql_server_ip, IP-адрес хоста, на котором работает сервер MySQL.
Если все настроено правильно, вы сможете войти на удаленный сервер MySQL.
Если вы получаете сообщение об ошибке, как показано ниже, либо порт 3306 не открыт, либо сервер MySQL не прослушивает IP-адрес.
ERROR 2003 (HY000): Can't connect to MySQL server on '10.8.0.5' (111)"
Приведенная ниже ошибка указывает на то, что пользователь, которому вы пытаетесь войти, не имеет прав доступа к удаленному серверу MySQL.
"ERROR 1130 (HY000): Host ‘10.8.0.5’ is not allowed to connect to this MySQL server"
Заключение
MySQL, самый популярный сервер баз данных с открытым исходным кодом по умолчанию, прослушивает входящие соединения только на локальном хосте.
Чтобы разрешить удаленные подключения к серверу MySQL, вам необходимо выполнить следующие шаги:
- Настройте сервер MySQL для прослушивания всего или определенного интерфейса.
- Предоставьте доступ удаленному пользователю.
- Откройте порт MySQL в вашем брандмауэре.
Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.
Установка
Команда установки:
yum install -y phpmyadmin
После установки в папке /etc/httpd/conf.d появится новый файл-конфиг phpMyAdmin.conf. Сделаем резервную копию на всякий случай:
cp /etc/httpd/conf.d/phpMyAdmin.conf /etc/httpd/conf.d/phpMyAdmin.conf.orig
Открываем на редактирование конфиг:
mcedit /etc/httpd/conf.d/phpMyAdmin.conf
Можно просто сделать так:
Находим эту секцию <Directory /usr/share/phpMyAdmin/> AddDefaultCharset UTF-8 <IfModule mod_authz_core.c> # Apache 2.4 <RequireAny> # Require ip 127.0.0.1 # Require ip ::1 Require all granted (и просто добавляем эту строчку, чтобы открыть доступ к phpMyAdmin извне) </RequireAny> </IfModule> <IfModule !mod_authz_core.c> (а эту секцию можно вообще удалить, если версия апача не 2.2) # Apache 2.2 Order Deny,Allow Deny from All # Order Allow,Deny # Require ip 127.0.0.1 # Require ip ::1 </IfModule> </Directory>
Сохраняем и перезапускаем апач.
systemctl restart httpd
По сути все, но чтобы было куда логиниться, должна быть предварительно установлена база данных.
Если вкратце, то выполняем последовательность команд:
yum install -y mariadb mariadb-server systemctl enable mariadb.service systemctl start mariadb /usr/bin/mysql_secure_installation
Установка PHP на CentOS 7 / RHEL 7
Для установки PHP и модулей, такие как GD / mysql введите следующую комманду
Shell
yum install php php-mysql php-gd php-pear
1 | yum install php php-mysql php-gd php-pear |
Необходимо перезагрузить HTTPD (Apache) сервер, введите:
Shell
systemctl restart httpd.service
1 | systemctl restart httpd.service |
Для поиска всех других PHP модулей:
Shell
yum search php-
1 | yum search php- |
Чтобы получить более подробную информацию о модуле:
Shell
yum info php-pgsql
1 | yum info php-pgsql |
Проверка PHP на сервере
Создайте файл с именем /var/www/html/test.php следующим образом:
Shell
vi /var/www/html/test.php
1 | vi/var/www/html/test.php |
Добавьте следующий код:
LAMP сервер установлен, если у вас есть проблемы с настройкой сервера, мы производим разовые работы по установке и настройке web сервера LAMP.
Step One — Install phpMyAdmin
With our LAMP platform already in place, we can begin right away with installing the phpMyAdmin software. Unfortunately, phpMyAdmin is not available in CentOS 7’s default repository.
To get the packages we need, we’ll have to add an additional repo to our system. The EPEL repo (Extra Packages for Enterprise Linux) contains many additional packages, including the phpMyAdmin package we are looking for.
The EPEL repository can be made available to your server by installing a special package called . This will reconfigure your repository list and give you access to the EPEL packages.
To install, just type:
Now that the EPEL repo is configured, you can install the phpMyAdmin package using the packaging system by typing:
The installation will now complete. The installation included an Apache configuration file that has already been put into place. We will need to modify this a bit to get it to work correctly for our installation.
Open the file in your text editor now so that we can make a few changes:
Inside, we see some directory blocks with some conditional logic to explain the access policy for our directory. There are two distinct directories that are defined, and within these, configurations that will be valid for both Apache 2.2 and Apache 2.4 (which we are running).
Currently, this setup is configured to deny access to any connection not being made from the server itself. Since we are working on our server remotely, we need to modify some lines to specify the IP address of your home connection.
Change any lines that read or to refer to your home connection’s IP address. If you need help finding the IP address of your home connection, check out the next section. There should be four locations in the file that must be changed:
When you are finished, restart the Apache web server to implement your modifications by typing:
With that, our phpMyAdmin installation is now operational. To access the interface, go to your server’s domain name or public IP address followed by , in your web browser:
To sign in, use a username/password pair of a valid MariaDB user. The user and the MariaDB administrative password is a good choice to get started. You will then be able to access the administrative interface:
Find Your IP Address
You will need to know the IP address of the computer you are using to access your databases in order to complete the step above. This is a security precaution so that unauthorized people cannot connect to your server.
Note: This is not the IP address of your VPS, it is the IP address of your home or work computer.
You can find out how the greater web sees your IP address by visiting one of these sites in your web browser:
- What’s My IP Address?
- What’s My IP?
- My IP Address
Compare a few different sites and make sure they all give you the same value. Use this value in the configuration file above.
Установка phpMyAdmin
Нет ничего проще, чем установить PMA на Linux. Я опишу как сделать это на Ubuntu 14.x в Digital Ocean. Зайдите на сервер через SSH.
Во время установки можете использовать стандартные настройки или подлатать их под себя.
Если вы ограничите доступ MySQL только через localhost (что вы должны сделать), то для хакера база будет вне зоны досягаемости. Конечно он может попытаться подключиться через SSH или осуществит атаку посредством SQL инъекций, но напрямую атаковать базу данных не сможет
Как только вы установите PMA, то данный инструмент становится потенциально уязвим для атак, поэтому меры предосторожности не повредят
Есть несколько мер, которые я бы посоветовал при конфигурировании PMA.
- Используйте очень надежные пароли для всех учетных записей MySQL, особенно для пользователя root. Например, 25 символов для пароля.
- Для каждого из сайтов, используйте различные учетные записи и привилегии. Таким образом, если один пароль будет украден, пострадает только одна база данных.
- Меняйте стандартный URL доступа к PMA. Таким образом люди не смогут достучаться до него по адресу http://yourblog.com/phpmyadmin. Хотя данная мера не очень эффективна, она всё же увеличивает безопасность.
Добваляем алиас в файл :
Перезагружаем apache:
Теперь PMA будет доступен по адресу http://yourblog.com/myobscuredpma.
Если вам необходимо изменить пароль вашего phpMyAdmin, измените содержимое файла :
4. Настройте веб-аутентификацию для доступа к PMA. После этого вам потребуется ввести дополнительный пароль:
Для настройки ограничений пользователя apache следуйте этим шагам:
Установите из пакета :
Создайте директорию для хранения ваших паролей:
Добавьте в поддержку для PMA:
Далее добавьте :
<Directory /usr/share/phpmyadmin> Options FollowSymLinks DirectoryIndex index.php AllowOverride All
Настраиваем дополнительную аутентификацию:
AuthType Basic AuthName "Login Required for Access" AuthUserFile /etc/htpasswd/.htpasswd Require valid-user
Укажите пароль:
И перезапустите Apache:
Теперь для доступа к PMA вам необходимо будет ввести ещё один пароль, как показано выше.
Установка Apache on a CentOS 7 /RHEL 7 сервер
Для установки веб сервера используем команду
Shell
yum install httpd
1 | yum install httpd |
Включите службу HTTPd в автозагрузки
Shell
systemctl enable httpd.service
1 | systemctl enable httpd.service |
Shell
ln -s ‘/usr/lib/systemd/system/httpd.service’ ‘/etc/systemd/system/multi-user.target.wants/httpd.service’
1 | ln-s’/usr/lib/systemd/system/httpd.service»/etc/systemd/system/multi-user.target.wants/httpd.service’ |
Чтобы отключить, автоматическую загрузку
Shell
systemctl disable httpd.service
1 | systemctl disable httpd.service |
Shell
rm ‘/etc/systemd/system/multi-user.target.wants/httpd.service’
1 | rm’/etc/systemd/system/multi-user.target.wants/httpd.service’ |
Запустите HTTPd службу на CentOS 7 / RHEL 7
Shell
systemctl start httpd.service
1 | systemctl start httpd.service |
На данном этапе вы можете указать в веб-браузере IP-адрес вашего сервера, http://10.180.10.10. Вы увидите стартовую страницу apache:
Shell
systemctl stop httpd.service
1 | systemctl stop httpd.service |
Shell
systemctl restart httpd.service
1 | systemctl restart httpd.service |
Просмотр статуса apache службы на CentOS 7 / RHEL 7
Убедитесь что веб сервер запущен
Shell
systemctl status httpd.service
1 | systemctl status httpd.service |
Также перезапуск веб сервера может быть выполнен следующей командой
Shell
apachectl graceful
1 | apachectl graceful |
Проверка apache / httpd на наличие ошибок конфигурации в Centos 7/ RHEL 7
Shell
apachectl configtest
1 | apachectl configtest |
Конфигурация по умолчанию HTTPD сервера:
- По умолчанию конфигурационный файл: /etc/httpd/conf/httpd.conf
- Файлы конфигурации, загружаемых модулей: /etc/httpd/conf.modules.d/ (например, PHP)
- Выберите MPMs как загружаемые модули и события: / etc/httpd/conf.modules.d/00-mpm.conf
- Стандартные порты: 80 и 443 (SSL)
- Файлы журналов по умолчанию: /var/log/httpd/{access_log,error_log}
Установка Phpmyadmin CentOS 7
Система управления базами данных mysql набрала огромной популярности в последнее время. Она используется на большинстве веб-серверов, поскольку для работы современных веб-технологий нужно быстрое и надежное хранилище данных.
Время от времени нам нужно вручную внести изменения в хранимые данные, но по умолчанию mysql поддерживает работу только через терминал. Это достаточно сложно, поэтому был разработан веб-интерфейс phpmyadmin. В этой статье мы рассмотрим как выполняется установка Phpmyadmin CentOS 7 и как все настроить для максимально правильной работы.
Установка Phpmyadmin CentOS 7
В репозиториях, которые поставляются по умолчанию вместе с дистрибутивом Phpmyadmin нет. Он находится в репозитории EPEL или Extra Packages for Enterprise Linux. Поэтому сначала нам нужно установить этот репозиторий:
sudo rpm -iUvh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Затем обновляем списки доступных пакетов из нового репозитория. В CentOS это делать не обязательно в отличие от Ubuntu, но будет так будет более правильно:
sudo yum -y update
Заодно команда установит все доступные обновления. Дальше можно устанавливать Phpmyadmin:
sudo yum -y install phpmyadmin
Установка новой версии Phpmyadmin
Но, таким образом, вы получите старую версию phpmyadmin 4.4, которая работает на php 5.4. Если вы хотите php 7 и самый свежий phpmyadmin, то его можно установить из репозитория remi. Сначала добавляем репозиторий в систему:
sudo rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
Обновляем доступные пакеты, как и выше:
sudo yum update
Включаем поддержку новой версии PHP 7.1:
yum-config-manager —enable remi-php71
И теперь осталось только установить phpmyadmin Centos 7, нужную версию php он возьмет сам:
sudo yum install phpmyadmin
Дальше phpmyadmin будет доступен по тому же адресу при условии, что вы используете Apache.
Настройка Phpmyadmin Nginx
Если же вы используете Nginx, то перед тем, как вы сможете открыть веб-интерфейс, вам будет необходимо его включить. Для этого выполните команду:
sudo ln -s /usr/share/phpMyAdmin /var/www/html/phpmyadmin
Тут /var/www/html/phpmyadmin — это папка с вашим проектом. Затем перезапустите php-fpm:
sudo systemctl restart php-fpm
В основной конфигурационный файл nginx.conf, в секцию http добавьте такую команду, это включит поддержку перехода по символическим ссылкам:
sudo vi /etc/nginx/nginx.conf
И еще, если у вас ISPManager поищите строчку disable_symlinks if_not_owner в настройке сайта и удалите ее иначе тоже ничего не заработает. Перезапустите nginx:
sudo nginx -s reload
Теперь вы сможете получить доступ к phpmyadmin добавив его адрес к адресу вашего рабочего проекта. Дальше про безопасность. Нам нужно, чтобы к этому адресу могли получить доступ только вы. Несмотря на то, что интерфейс запрашивает пароль, его можно пытаться перебрать, а это для нас очень нежелательно. Во-первых, вы можете переименовать ссылку во что-то более непонятное, например:
mv /var/www/html/phpmyadmin /var/www/html/pppma
Но для большей надежности можно использовать аутентификацию Nginx. Сначала создадим зашифрованный пароль:
Полученное значение нужно скопировать. Дальше создайте файл /etc/nginx/passwords и поместите в него имя пользователя и пароль через двоеточие, например:
sudo vi /etc/nginx/passwords
Теперь добавьте такой location в файл настройки вашего сайта, адрес pppma, в случае, если вы меняли название ссылки:
location /pppma auth_basic «Admin Login»; auth_basic_user_file /etc/nginx/passwords; >
Теперь при запросе этого адреса будет спрашиваться пароль.
И только после ввода этого пароля и пароля базы данных вы сможете войти в интерфейс управления.
Настройка phpmyadmin Apache
Радует то, что при работе с Apache Phpmyadmin будет доступен сразу же, без необходимости выполнять кучу дополнительных настроек. Но безопасность настраивать все же надо. Настройки phpmyadmin для Apache находится в файле /etc/httpd/conf.d/phpMyAdmin.conf нам будет достаточно добавить несколько строк. Но сначала создаем пароль:
htpasswd -c /etc/httpd/passwords admin
Дальше редактируем файл настроек:
Добавьте в секцию <Directory> такие строки:
Options Indexes FollowSymLinks AllowOverride All AuthType Basic AuthName «Restricted Content» AuthUserFile /etc/httpd/passwords Require valid-user
Теперь, как и в предыдущем варианте, при попытке открыть phpmyadmin вы увидите запрос пароля.
Как удалить Phpmyadmin
Удаление Phpmyadmin выполняется такой командой:
sudo yum remove phpmyadmin
Не забудьте после этого удалить оставшиеся символические ссылки и конфигурации.
Вывод
Судя по статье может показаться что обновление версии PHP не такое уж и сложное дело но уверяю что эта простота придет только с опытом. Многое зависит от того как долго не обновляли систему, какие ресурсы там работают и какие у каждого в отдельности требования к версии php. В случае если вам досталась система с которой работали разные люди и мало чего комментировали в коде сложностей может возникнуть очень много и единственное что вас спасет от головной боли в случае неправильной работы важных ресурсов это резервное копирование перед выполнением обновления. Лучшим вариантом при обновлении таких систем это сделать клон системы и производить все действия на нем. Конечно при работе с клоном может возникнуть дополнительные сложности но это уже другая тема.