Cloudron makes it easy to run web apps like WordPress, Nextcloud, GitLab on your server. Find out more or install now.


  • Categories
  • Recent
  • Tags
  • Popular
  • Bookmarks
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse

Cloudron Forum

Apps | Demo | Docs | Install

Disable Strict Mode Mysql

Scheduled Pinned Locked Moved Solved LAMP
lampsqlmode
15 Posts 5 Posters 1.3k Views
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    makemrproper
    wrote on last edited by
    #6

    The devs of Vanilla provided me with this solution

    *If you create a file /conf/bootstrap.after.php and put that into this file, it will be executed on each request:

    <?php
    Gdn::database()->query("SET sql_mode = '';");*
    
    1 Reply Last reply
    0
  • saikarthikS Offline
    saikarthikS Offline
    saikarthik
    replied to girish on last edited by
    #7

    @girish I am trying to do the same, edit the sql_mode, for the LAMP stack with multidatabase enabled. How can I set it in this case?

    1 Reply Last reply
    0
  • girishG Offline
    girishG Offline
    girish Staff
    wrote on last edited by
    #8

    @saikarthik You have to set it in your LAMP stack code at the point where you connect to the database(s). Is that what you are asking?

    saikarthikS 1 Reply Last reply
    0
  • saikarthikS Offline
    saikarthikS Offline
    saikarthik
    replied to girish on last edited by saikarthik
    #9

    @girish Yes. I'm trying to get more details on how to do exactly that. This is not a PHP app I coded. So where do I begin to look for where it makes the database connection? Could there be more than 1 place where I need to add SET sql_mode = '';??

    The PHP directories look like the attached.
    Screen Shot 2020-10-04 at 11.42.43 PM.png

    saikarthikS 1 Reply Last reply
    0
  • saikarthikS Offline
    saikarthikS Offline
    saikarthik
    replied to saikarthik on last edited by
    #10
    This post is deleted!
    1 Reply Last reply
    0
  • girishG Offline
    girishG Offline
    girish Staff
    wrote on last edited by
    #11

    It seems the way to access the db itself is like this https://github.com/X2Engine/X2CRM/blob/8718c36c5710e19b4155bb00315ffec08209438d/x2engine/protected/models/Fields.php#L795

    @saikarthik I am not a PHP dev as such but see https://yii2-framework.readthedocs.io/en/stable/guide/db-dao/ . Specifically, "Tip: If you need to execute a SQL query right after establishing a connection (e.g., to set the timezone or character set), you can do so in the [[yii\db\Connection::EVENT_AFTER_OPEN]] event handler. " .

    There's a code sample in the above link.

    1 Reply Last reply
    0
  • girishG Offline
    girishG Offline
    girish Staff
    wrote on last edited by
    #12

    Maybe https://github.com/X2Engine/X2CRM/blob/master/x2engine/protected/config/main.php#L250 is the place to put the on afterOpen event.

    1 Reply Last reply
    0
  • saikarthikS Offline
    saikarthikS Offline
    saikarthik
    wrote on last edited by
    #13

    @girish Thanks so much for your guidance!

    Here's the exact fix:
    Needed to add the following to the 'db' here (https://github.com/X2Engine/X2CRM/blob/master/x2engine/protected/config/main.php#L250) :

    'initSQLs'=>array("SET @@sql_mode = REPLACE(@@sql_mode, 'ONLY_FULL_GROUP_BY,', '')",),
    

    This is where I found 'initSQLs':
    https://github.com/X2Engine/X2CRM/blob/b60fb5c4ae969f59e6d4b9efa2ae72394ed45e60/x2engine/framework/db/CDbConnection.php#L244

    1 Reply Last reply
    2
  • P Offline
    P Offline
    p44 translator
    wrote on last edited by
    #14

    Dear All, I've to apply this small guide:

    https://sendy.co/forum/discussion/7752/campaign-sent-to-0-recipients-ubuntu-php-7/p1

    Inside "Sendy.co".

    Can you help me? Where I can add code below or something similar?

            $pDO->query("SET sql_mode = ''");
    

    Thank's a lot!

    1 Reply Last reply
    0
  • girishG Offline
    girishG Offline
    girish Staff
    wrote on last edited by
    #15

    @p44 The MySQL database in Cloudron is shared by all the apps. In MySQL 5.7.5+, they changed the behavior to have ONLY_FULL_GROUP_BY to be the default to be more compliant. Disabling this at the server level will cause issues for other apps.

    The correct way to fix this is to have the app disable this mode at a session level. Like https://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html . Essentially, the app has to call "SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));" after creating a connection.

    So, I guess the answer is:

    1. Either sendy has to provide a mechanism to do the above.
    2. Alternately, you cannot run sendy in Cloudron. You have to create a dedicated server for this and setup MySQL accordingly.
    1 Reply Last reply
    0
  • nebulonN nebulon referenced this topic on

  • Login

  • Don't have an account? Register

  • Login or register to search.
  • First post
    Last post
0
  • Categories
  • Recent
  • Tags
  • Popular
  • Bookmarks