Uploaded image for project: 'ZABBIX BUGS AND ISSUES'
  1. ZABBIX BUGS AND ISSUES
  2. ZBX-24122

mysql .sql files generated using dbschema_mysql target is missing 3 files and on import conflicting with an ERROR for data.sql

XMLWordPrintable

    • Icon: Incident report Incident report
    • Resolution: Duplicate
    • Icon: Trivial Trivial
    • None
    • 6.4.11
    • Server (S)
    • None
    • Fedora 38
      community-mysql-server-8.0.35

       

      I use a simple script after install as follows, quite simply:

      mysql DB backend initialisation for zabbix_server
      export zabbix_db=localhost zabbix_server=localhost zabbix_web=localhost
      mysql -h $zabbix_db -e "create database zabbix character set utf8mb4 collate utf8mb4_bin"
      mysql -h $zabbix_db -e "set global log_bin_trust_function_creators = 1;"
      xzcat /usr/share/doc/zabbix-server/mysql_server_schema.sql.xz | mysql -h $zabbix_db zabbix
      xzcat /usr/share/doc/zabbix-server/mysql_server_images.sql.xz | mysql -h $zabbix_db zabbix
      # < missing 3 sql files >
      mysql -h $zabbix_db -e "set global log_bin_trust_function_creators = 0;"
      mysql -h $zabbix_db -e "CREATE USER 'zabbix'@'$zabbix_server' IDENTIFIED WITH caching_sha2_password BY 'password'; GRANT SELECT, DROP, CREATE, INSERT, UPDATE, DELETE, INDEX, ALTER, REFERENCES ON zabbix.* TO 'zabbix'@'$zabbix_server'; FLUSH PRIVILEGES;"
      mysql -h $zabbix_db -e "CREATE USER 'zabbix_web'@'$zabbix_web' IDENTIFIED WITH caching_sha2_password BY 'password'; GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER, REFERENCES ON zabbix.* TO 'zabbix_web'@'$zabbix_web'; FLUSH PRIVILEGES;"
      
       
      
      I proceed to try this whole process again being aware I am missing 3 sql files, inserting where you see the "# < missing 3 sql files >" for each of the ones provided by the files from zabbix-dbfiles-mysql RPM from Fedora.
      
      The two files of mysql_server_schema and mysql_server_images come from my own RPM.
      
       
      
      # cat /usr/share/zabbix-mysql/data.sql | mysql -h $zabbix_db zabbix
      ERROR 1054 (42S22) at line 8: Unknown column 'internal' in 'field list'​
      
      ^ The first ERROR I have.
      
      Others are ok:
      # cat /usr/share/zabbix-mysql/double.sql | mysql -h $zabbix_db zabbix
      # cat /usr/share/zabbix-mysql/history_pk_prepare.sql | mysql -h $zabbix_db zabbix
      
       
      
      When looking at files provided by our own RPM zabbix-server to show:
      
      ls -la /usr/share/doc/zabbix-server/
      -rwxr-xr-x 1 root root 1002424 Jan 29 18:09 mysql_server_images.sql.xz
      -rwxr-xr-x 1 root root 15160 Jan 29 18:09 mysql_server_schema.sql.xz​
      
      When looking at files provided by zabbix-dbfiles-mysql from Fedora:
      
      ls -la /usr/share/zabbix-mysql/
      -rw-r--r-- 1 root root 38905383 Jan 4 00:00 data.sql
      -rw-r--r-- 1 root root 282 Dec 13 08:17 double.sql
      -rw-r--r-- 1 root root 1527 Dec 13 08:18 history_pk_prepare.sql
      -rw-r--r-- 1 root root 1978341 Dec 13 08:17 images.sql
      -rw-r--r-- 1 root root 166156 Dec 13 08:18 schema.sql​
      
       
      
      Our Zabbix 6.4.11 is built from an RPM where an autogenerated tar is coming from the git tag.
      
      The purpose of this is quickly integrate patches taken from the git repo between official releases. The target should contain an up-to-date procedure independently from dist tarballs to generate necessary *.sql files.
      
      Part of the adaptation we use within our spec file for the RPM: 
      %{?with_mysql:
      %make_build dbschema_mysql}
      In the source code whole database schema is described in a text file format independently from the DB backend, this adaptation we use will generate *.sql files for the exact DB backend being used.
      
      
      Definitely it was working initially, however from the lack of other 3 files and error above I suspect now that make target is generating faulty *sql files for mysql.
      
      To find out what is wrong it might be necessary to compare the differences between files generated by that dbschema_mysql make target and those files which are in dist tar ball.
      
      (used xz on dist files)
      
      xzdiff -u /usr/share/doc/zabbix-server/mysql_server_images.sql.xz /usr/share/zabbix-mysql/images.sql.xz - no diff.
      
      xzdiff -u /usr/share/doc/zabbix-server/mysql_server_schema.sql.xz /usr/share/zabbix-mysql/schema.sql.xz > xzdiff-schema.txt
      
      xzdiff -u /usr/share/doc/zabbix-server/mysql_server_schema.sql.xz /usr/share/zabbix-mysql/schema.sql.xz | wc -l 
      929
      
      Many differences appear.
      
       
      
      Additional supplimental notes, please also note this:
      
      mysqld runs fine:
      "/usr/libexec/mysqld: ready for connections. Version: '8.0.35' socket: '/var/lib/mysql/mysql.sock' port: 3306 Source distribution."
      
      mysql> select max(imageid) from images;
      +--------------+
      | max(imageid) |
      +--------------+
      | 187 |​
      
       
      
      Journalctl informs me that:
      "Failed to start zabbix-server.service - Zabbix Server."
      
      From zabbix_server.log I see:
      "cannot use database "zabbix": its "users" table is empty (is this the Zabbix proxy database?)"
      
      Using Mysql:
      mysql> use zabbix;
      mysql> select * from users;
      Empty set (0.00 sec)​
      
      ​mysql> SHOW GRANTS FOR 'zabbix'@'localhost';
      +--------------------------------------------------------------------------------------------------------------------+
      | Grants for zabbix@localhost |
      +--------------------------------------------------------------------------------------------------------------------+
      | GRANT USAGE ON *.* TO `zabbix`@`localhost` |
      | GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER ON `zabbix`.* TO `zabbix`@`localhost`
      

            zabbix.support Zabbix Support Team
            Himcules Scott S.
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: