Как найти и отключить строгий режим MySQL?
Привет всем, я хотел найти этот строгий режим mysql для whmcs и отключить его, но у меня не было прогресса, я новичок, так что извините, если я не упомянул другие вещи Кто-нибудь может мне помочь? Я работаю над WHM/Cpanel
6 ответов
Чтобы отключить (или включить) строгий доступ mysql из cpanel.
1, поиск "phpmyadmin", в окне поиска, нажмите на него
2, как только phpmyadmin загружен, нажмите на вкладку "переменные"
3, поиск "режим SQL"
затем
включить строгий режим при входе
STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
чтобы выключить строгий режим, введите
NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Если у вас есть контроль над сценарием, который вы будете использовать, то стоит оставить строгий режим включенным, он предупредит вас о любых ошибках в вашем коде, прежде чем они станут проблемой в будущем.
В настоящее время я использую сервер Centos 6.9 с MariaDB и многоканальной конфигурацией, поэтому для клиентов они не смогли самостоятельно отключить строгий режим без получения ошибки отсутствия разрешения. Вот как вы отключите это глобально:
Откройте SSH/ Консоль и проверьте текущий режим:
# mysql -e "SELECT @@sql_mode;"
+----------------------------------------------------------------------+
| @@sql_mode |
+----------------------------------------------------------------------+
|STRICT_TRANS_TABLES, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, |
|NO_ENGINE_SUBSTITUTION |
+----------------------------------------------------------------------+
Найдите и отредактируйте файл my.cnf
vim /etc/my.cnf
Найдите и измените следующее или добавьте строку, если ее нет
Строгий режим включен:
sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Строгий режим отключен:
sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Перезапустите службу MySQL
/etc/init.d/mysql restart
Убедитесь, что строгий режим отключен:
# mysql -e "SELECT @@sql_mode;"
+--------------------------------------------+
| @@sql_mode |
+--------------------------------------------+
| NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+--------------------------------------------+
Готово:)
Прежде всего, чтобы отключить строгий режим MySQL, вам нужен root-доступ к серверу. Если у вас его нет, вы не сможете этого сделать. Если у вас есть только доступ cPanel, это означает, что вы не являетесь администратором этого сервера или у вас нет доступа с правами root.
Чтобы отредактировать ваш конфигурационный файл mysql my.cnf, вам нужно будет получить доступ к вашему серверу через SSH (с правами root или sudo), а затем отредактировать файл /etc/my.cnf и добавить следующую строку, если он отсутствует:
[ТуздЫ]
sql_mode = "ТРАДИЦИОННЫЙ,NO_AUTO_CREATE_USER"
После редактирования этого файла сохраните его и перезапустите службу MySQL. Опять же, вам нужен полный root-доступ для вашего сервера, чтобы изменить это.
Я думаю, что в последней версии невозможно изменить файл *.cnf Вместо этого вы можете изменить файл mysql.service
/lib/systemd/system/mysql.service
ExecStart=/usr/sbin/mysqld --sql-mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
Открыто my-default.ini
файл и удалите STRICT_TRANS_TABLES
параметр из значения sql_mode.
[Пример: в localhost xampp файл находится по адресу xampp/mysql/my-default.ini]
значение по умолчанию sql_mode, как показано ниже
sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
измените это на
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
Это отключит строгий режим в MYSQL
Сначала проверьте, в каком режиме работает MYSQL, с помощью следующей команды:
mysql -u root -p -e "SHOW VARIABLES LIKE 'sql_mode';"
Вам нужно будет заменить root на любое имя пользователя, имеющее права суперпользователя на вашем сервере (но обычно это просто root). Вам также будет предложено ввести пароль.
Чтобы отключить строгий режим через командную строку SQL:
Вы можете отключить строгий режим на своем сервере MySQL, выполнив следующую команду в командной строке:
mysql -u root -p -e "SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION';"