> Op 12 april 2017 om 7:23 schreef Koushik Das <koushik....@accelerite.com>: > > > Hi Wido, > > Check initDataSource() in TransactionLegacy.java. The connection properties > are read from db.properties.
Thanks! After looking into this I found that you can just add this to db.cloud.url.params sessionVariables=sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' My line now looks like this in db.properties: db.cloud.url.params=prepStmtCacheSize=517&cachePrepStmts=true&sessionVariables=sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' Created a issue: https://issues.apache.org/jira/browse/CLOUDSTACK-9871 I created a PR to include this into db.properties by default: https://github.com/apache/cloudstack/pull/2037 Wido > > -Koushik > > On 11/04/17, 10:27 PM, "Wido den Hollander" <w...@widodh.nl> wrote: > > > > Op 11 april 2017 om 10:51 schreef Rohit Yadav > <rohit.ya...@shapeblue.com>: > > > > > > Hi Wido, > > > > > > You're right, MySQL 5.7 has by default strict(er) sql mode enabled. To > make CloudStack work with MySQL 5.7, changing the sql mode makes MySQL 5.7 > behave like 5.6 with which the mgmt server/usage server should work. > > > > Yes, but a client can do this as well. It doesn't have to be server wide. > > Do you know where the MySQL client is initiated by CloudStack? A few > lines of code there should/might be enough. > > Wido > > > > > Regards. > > > > ________________________________ > > From: Wido den Hollander <w...@widodh.nl> > > Sent: 10 April 2017 20:30:55 > > To: dev@cloudstack.apache.org > > Subject: MySQL 5.7 and SQL Mode > > > > Hi, > > > > While testing with Ubuntu 16.04 and CloudStack 4.10 (from master) I've > ran into this error on the management server: > > > > com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression > #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column > 'cloud.i.id' which is not functionally dependent on columns in GROUP BY > clause; this is incompatible with sql_mode=only_full_group_by > > at > sun.reflect.GeneratedConstructorAccessor50.newInstance(Unknown Source) > > at > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) > > at > java.lang.reflect.Constructor.newInstance(Constructor.java:423) > > at com.mysql.jdbc.Util.handleNewInstance(Util.java:404) > > at com.mysql.jdbc.Util.getInstance(Util.java:387) > > at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:939) > > at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3878) > > at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3814) > > > > I was able to fix this to add this to my my.cnf: > > > > [mysqld] > > sql_mode = > "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" > > > > Should we maybe set the SQL Mode as a connection parameter when > connecting to the DB? This prevents users from having to set this manually in > their MySQL configuration. > > > > Did somebody else run into this with MySQL 5.7? > > > > Thank you, > > > > Wido > > > > rohit.ya...@shapeblue.com > > www.shapeblue.com > > 53 Chandos Place, Covent Garden, London WC2N 4HSUK > > @shapeblue > > > > > > > > > > > > DISCLAIMER > ========== > This e-mail may contain privileged and confidential information which is the > property of Accelerite, a Persistent Systems business. It is intended only > for the use of the individual or entity to which it is addressed. If you are > not the intended recipient, you are not authorized to read, retain, copy, > print, distribute or use this message. If you have received this > communication in error, please notify the sender and delete all copies of > this message. Accelerite, a Persistent Systems business does not accept any > liability for virus infected mails.