Как отключить строгий режим MySQL

После установки и настройки нового веб сервера на ubuntu 20.04 lts и установки MariaDB, столкнулся с проблемами mysql, были ошибка типа:

Truncated incorrect DOUBLE value

Field ‘filed_name’ doesn’t have a default value

 Incorrect integer value: » for column ‘field_name’ at row 1

и т.д.

Оказалось проблема в строгом режиме MySQL. Нужно его временно отключить, т.к. сервер в продакшене.

Проверить режим MySQL через phpmyadmin

Переменные->sql_mode

sql_mode phpmyadmin

Отключаем строгий режим через phpmyadmin

Выполняем запрос:

set global sql_mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

Как включить строгий режим через phpmyadmin

set global sql_mode="STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

Перегрузим мускул

sudo service mysql restart

PDOException “could not find driver”

После обновления до последней LTS версии убунты 20.04, не смог открыть локальный сайт:

PDOException “could not find driver”

Подумал что-то не так с модулем php-mysql или pdo, пробовал обновлять, переустанавливать, ничего не получилось. 

Проверяем свою версию php через терминал:

php -v

Создаем файл в директории сайта со следующим текстом:


phpinfo(); 
?>

Здесь у меня почему-то версия php 7.3 вместо php 7.4.

Проверяем через терминал все установленные версии php на компьютере:

sudo update-alternatives --config php
Установленные версии php на компьютере

Попытался переключиться на php 7.4.

Перегрузил веб-сервер

sudo service apache2 restart

Проверил снова phpinfo. не помогло, так и висит php 7.3

Плюнул, удалил все версии 7.*

sudo apt-get purge php7.*

Установил последнюю актуальную, 7.4

sudo apt install php libapache2-mod-php php-mysql

Перезапустил апач. Проверил сайт. Все работает 🙂 

Возможно придется установить phpmyadmin

sudo apt install phpmyadmin

Если после установки увидели ошибку 500. Установите нужный модуль

sudo apt install php-mbstring

Перезагрузите апач. И на этом все) 

sudo service apache restart

Как очистить inodes на сервере

Сегодня утром меня разбудили звонком. На работе сайт. Открыл, смотрю не погружается. Пошел смотреть логи, а там ошибка:

No Space Left On Device

Проверяем свободное место на диске:

df -h
Место надиске

Место на диске есть, странно.

Закончились иноды? Проверим.

Пошел гуглить, посоветовали проверить иноды:

df -i

full inodes

На скриншоте выше у меня вместо 60% было 100%. 

Как найти директории которые заполнены файлами, инодами? 

Выполняем команду

sudo find / -xdev -printf '%h\n' | sort | uniq -c | sort -k 1 -n
Количество файлов в директории

Как оказалось в директории tmp сайта. Временные фалы php-сессий, почему-то перестали очищаться. Раньше такой проблемы не было.

Как удалить иноды?

Очищаем папку от всех файлов старше 7 дней tmp:

sudo find /var/www/clients/client1/web1/tmp -mtime +7 -delete

Через несколько минут все заработало. Осталось разобраться почему так случилось, ти почему сессии перестали очищаться самостоятельно. 

Установка w-fi драйверов Realtek

Приехал wi-fi адаптер с Китая. При подключении до пк автоматически не появился в сетях, пришлось установить драйверы.

2,4 ГГц + 5 ГГц wi-fi адаптер с алиекспресс

Для полной установки выполняем команды по порядку.

sudo apt update
sudo apt install build-essential git dkms
git clone https://github.com/brektrou/rtl8821CU.git
cd rtl8821CU
chmod +x dkms-install.sh
sudo ./dkms-install.sh
sudo modprobe 8821cu

Теперь в сетях у вас должен появится адаптер:

 

Появился wi-fi адаптер

Ошибка при обновлении дистрибутива LTS

Обновляем убунту до нового LTS релиза:

do-release-upgrade

На выходе получаем ошибку:

Please install all available updates for your release before upgrading.

Первый способ:

sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get dist-upgrade
sudo do-release-upgrade

Если вдруг не помогло, как мне, тогда второй способ.

sudo apt-get update

 

Вот и ошибка в самом низу
sudo apt list --upgradable

 

Поиск вредителя

А вот и проблема из-за которой я не мог обновиться. Осталось просто удалить ее:

sudo apt remove opera-stable

Вот и все. Обновляемся 🙂 

Ошибка: MySQL Server Has Gone Away

При импорте большой бд, из файла, получил ошибку.
В логах прочел, о нехватки значения параметра max_allowed_packet

Редактируем файл конфигурации MySQL

sudo nano /etc/mysql/my.cnf

Заменяем следующее значение:

max_allowed_packet = 1024M

Перезагружаем мускул

sudo service mysql restart