#author("2019-05-08T06:00:06+09:00","default:kuji","kuji") #author("2019-05-08T06:00:48+09:00","default:kuji","kuji") CONTENTS #contents ---- Lastmodified &lastmod; ---- *mysql バージョンアップ [#n3a5bbd2] mysql56はメンテ終了なので、取り敢えず57へUPする。なお、mysql56は稼働させたまま作業する。 # pkg delete mysql56-server-5.6.44 Updating database digests format: 100% Checking integrity... done (0 conflicting) Deinstallation has been requested for the following 1 packages (of 0 packages in the universe): Installed packages to be REMOVED: mysql56-server-5.6.44 Number of packages to be removed: 1 The operation will free 82 MiB. Proceed with deinstalling packages? [y/N]: とサーバは、単独でdelete できるが、クライアントは、依存関係が多々あって、port deinstall するのがヨサゲ。 # pkg delete mysql56-client-5.6.44 Checking integrity... done (0 conflicting) Deinstallation has been requested for the following 11 packages (of 0 packages in the universe): Installed packages to be REMOVED: mysql56-client-5.6.44 apr-1.6.5.1.6.1_1 p5-DBD-mysql-4.050 postfix-3.4.5,1 mysql56-server-5.6.44 apache24-2.4.39 spamassassin-3.4.2_3 ja-mailman-2.1.14.j7_6,1 ap24-mod_http2-devel-1.11.4 mod_php71-7.1.28_2 amavisd-new-2.11.1_1,1 Number of packages to be removed: 11 The operation will free 199 MiB. Proceed with deinstalling packages? [y/N]: まず、pkg delete mysql56-server-5.6.44 する。 # portinstall mysql57-server [Reading data from pkg(8) ... - 483 packages found - done] ** Port marked as IGNORE: databases/mysql57-server: cannot install: MySQL versions mismatch: mysql56-client is installed and wanted version is mysql57-client ** Listing the failed packages (-:ignored / *:skipped / !:failed) - databases/mysql57-server # cd /usr/ports/databases/mysql56-client # make deinstall ===> Deinstalling for mysql56-client ===> Deinstalling mysql56-client-5.6.44 Checking integrity... done (0 conflicting) Deinstallation has been requested for the following 1 packages (of 0 packages in the universe): Installed packages to be REMOVED: mysql56-client-5.6.44 Number of packages to be removed: 1 The operation will free 38 MiB. [1/1] Deinstalling mysql56-client-5.6.44... [1/1] Deleting files for mysql56-client-5.6.44: 100% 以下を実行するとクライアントもインストールされる。 # portinstall mysql57-server [Reading data from pkg(8) ... - 482 packages found - done] 以下の様なスクリプトを実行してアップグレードする。 #/bin/sh! /usr/local/etc/rc.d/mysql-server restart && \ /usr/local/bin/mysql_upgrade -u root -pパスワード 実行すると・・・ mysql_upgrade: [Warning] Using a password on the command line interface can be insecure. Checking if update is needed. Checking server version. Running queries to upgrade MySQL server. Checking system database. mysql.columns_priv OK mysql.db OK mysql.engine_cost OK : : mysql.time_zone_transition OK mysql.time_zone_transition_type OK mysql.user OK Upgrading the sys schema. Checking databases. JM3.vg49r_assets OK JM3.vg49r_associations OK : : phpmyadmin.pma__tracking OK phpmyadmin.pma__userconfig OK phpmyadmin.pma__usergroups OK phpmyadmin.pma__users OK sys.sys_config OK Upgrade process completed successfully. Checking if update is needed. となって移行完了。 # portinstall mysql57-server --batch && /root/bin/check.sh * [#y55cdd91] ===> openldap-sasl-client-2.4.47 conflicts with installed package(s): openldap-client-2.4.47 They install files into the same place. You may want to stop build with Ctrl + C. ===> License OPENLDAP accepted by the user ===> openldap-sasl-client-2.4.47 depends on file: /usr/local/sbin/pkg - found ===> Fetching all distfiles required by openldap-sasl-client-2.4.47 for building ===> openldap-sasl-client-2.4.47 conflicts with installed package(s): openldap-client-2.4.47 They will not build together. Please remove them first with pkg delete. *** Error code 1 # pkg delete openldap-client-2.4.47 Updating database digests format: 100% Checking integrity... done (0 conflicting) Deinstallation has been requested for the following 3 packages (of 0 packages in the universe): Installed packages to be REMOVED: openldap-client-2.4.47 php71-ldap-7.1.28_2 php71-extensions-1.0 *Syntax error or access violation [#oe0ed2ed] ログには特にめぼしい情報がないので、これはSNSプログラム側の問題っぽい。 バックエンド_DEV形式でSNSを表示すると、こんなダイアログが・・・ Syntax error or access violation: 1055 Expression #124 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'カラム名' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by などとなって、OpenPNEの「あしあと」でエラー。 https://www.p-nt.com/technicblog/archives/204 どうやら、MySQL5.7になって、デフォルトのままだとsql_modeでONLY_FULL_GROUP_BYが設定されるようになったため、一意にできていない場合にこのエラーになるそうです。 ちんと対応する方法としてはSQLをきちんと一意に特定できるように、GroupBy句に取得するカラムを指定したり、MAXやMIN、SUMなどで一意になるように修正する必要があります。 ちんと対応する方法としてはSQLをきちんと一意に特定できるように、GroupBy句に取得するカラムを指定したり、MAXやMIN、SUMなどで一意になるように修正する必要があるとのこと。 ただ、SQLを全て修正するには自分はスキル不足なので、MySQL側の設定で動作を確保する。 要するに、sql_modeで、ONLY_FULL_GROUP_BYを未指定にして、エラー発生回避して、SNS「あしあと」動作確保します。 具体的には、 sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION とする。 取り敢えずOK? ---- Total access &counter(total);:本日 &counter(today);:昨日 &counter(yesterday); #counter([total|today|yesterday]);