Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

step2.php - Base table or view not found #2651

Open
prismplex opened this issue Dec 6, 2019 · 16 comments
Open

step2.php - Base table or view not found #2651

prismplex opened this issue Dec 6, 2019 · 16 comments

Comments

@prismplex
Copy link

prismplex commented Dec 6, 2019

Expected behaviour

step2.php should create the tables and the user should be able to precede to the next step.

Actual behaviour

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'nzedb.user_roles' doesn't exist
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'nzedb.binaryblacklist' doesn't exist
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'nzedb.categories' doesn't exist
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'nzedb.category_regexes' doesn't exist
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'nzedb.collection_regexes' doesn't exist
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'nzedb.countries' doesn't exist
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'nzedb.forum_posts' doesn't exist
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'nzedb.genres' doesn't exist
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'nzedb.groups' doesn't exist
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'nzedb.menu_items' doesn't exist
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'nzedb.page_contents' doesn't exist
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'nzedb.release_naming_regexes' doesn't exist
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'nzedb.settings' doesn't exist
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'nzedb.tmux' doesn't exist
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'nzedb.tmux' doesn't exist

Steps to reproduce the behaviour

Install nzedb following the guides and try to connect to a mariadb database.

Background:

  • Started clean
  • Everything in docker-containers (modified docker-image and for mariadb linuxserver/mariadb)
  • nzedb is installed at /opt/http: Permissions were fixed by using chmod -R 777 /opt
  • MariaDB 10.4.10, followed guide: create database nzedb; grant all on nzedb.* to 'nzedb'@'localhost' identified by 'your-password'; grant file on *.* TO 'nzedb'@'localhost'; flush privileges; exit; and mysql_tzinfo_to_sql /usr/share/zoneinfo | sudo mysql -u root -p mysql
  • Database can be accessed, manually importing mysql-ddl.sql and mysql-data.sql works without problems
  • nzedb is configured to access the database via port 3306
  • Running the install progress again removes all tables created manually before (so it seems nzedb cannot access the /opt/http/resources/db/schema/mysql-ddl.sql - but why?)
  • php-fpm 7.2
  • Error log of php and nginx are empty

I am thankful for every idea/solution! Thank you!

@niel
Copy link
Contributor

niel commented Dec 6, 2019

It is the mysql-ddl.sql file that removes previously existing tables, so it sounds like it is being used but failing to create the new tables.

@prismplex
Copy link
Author

prismplex commented Dec 6, 2019

Thank you for your fast response.
I have the same opinion, but I really don't know why it fails to create the tables because importing mysql-ddl.sql manually succeeds.

@niel
Copy link
Contributor

niel commented Dec 7, 2019

Install uses the mysql client program to create the tables, so it might be a problem in your mysql.cnf settings for [client].
I probably need to rewrite that part of the code, which will definitely happen with the refactoring to a new framework.

@prismplex
Copy link
Author

So that's my mysql.cnf on the server (if that helps). Currently trying older versions of mariadb, maybe it works with them

## custom configuration file, please be aware that changing options here may break things

[mysqld_safe]
nice		= 0

[mysqld]
max_connections		= 100
connect_timeout		= 5
wait_timeout		= 600
max_allowed_packet	= 16M
thread_cache_size       = 128
sort_buffer_size	= 4M
bulk_insert_buffer_size	= 16M
tmp_table_size		= 32M
max_heap_table_size	= 32M
binlog_format=mixed
#default_time_zone       = 'Europe/Berlin'
#secure-file-priv        = ""
group_concat_max_len     = 8192
sql_mode                 = ''
#
# * MyISAM
#
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched. On error, make copy and try a repair.
myisam_recover_options = BACKUP
key_buffer_size		= 128M
#open-files-limit	= 2000
table_open_cache	= 400
myisam_sort_buffer_size	= 512M
concurrent_insert	= 2
read_buffer_size	= 2M
read_rnd_buffer_size	= 1M
#
# * Query Cache Configuration
#
# Cache only tiny result sets, so we can fit more in the query cache.
query_cache_limit		= 128K
query_cache_size		= 64M
# for more write intensive setups, set to DEMAND or OFF
#query_cache_type		= DEMAND
#
# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
# As of 5.1 you can enable the log at runtime!
#general_log_file        = /config/log/mysql/mysql.log
#general_log             = 1
#
# Error logging goes to syslog due to /etc/mysql/conf.d/mysqld_safe_syslog.cnf.
#
# we do want to know about network errors and such
log_warnings		= 2
#
# Enable the slow query log to see queries with especially long duration
#slow_query_log[={0|1}]
slow_query_log_file	= /config/log/mysql/mariadb-slow.log
long_query_time = 10
#log_slow_rate_limit	= 1000
log_slow_verbosity	= query_plan

#log-queries-not-using-indexes
#log_slow_admin_statements
#
# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
#       other settings you may need to change.
#server-id		= 1
#report_host		= master1
#auto_increment_increment = 2
#auto_increment_offset	= 1
log_bin			= /config/log/mysql/mariadb-bin
log_bin_index		= /config/log/mysql/mariadb-bin.index
# not fab for performance, but safer
#sync_binlog		= 1
expire_logs_days	= 10
max_binlog_size         = 100M
# slaves
#relay_log		= /config/log/mysql/relay-bin
#relay_log_index	= /config/log/mysql/relay-bin.index
#relay_log_info_file	= /config/log/mysql/relay-bin.info
#log_slave_updates
#read_only
#
# If applications support it, this stricter sql_mode prevents some
# mistakes like inserting invalid dates etc.
#sql_mode		= NO_ENGINE_SUBSTITUTION,TRADITIONAL
#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
default_storage_engine	= InnoDB
# you can't just change log file size, requires special procedure
#innodb_log_file_size	= 50M
innodb_buffer_pool_size	= 256M
innodb_log_buffer_size	= 8M
innodb_file_per_table	= 1
#innodb_large_prefix     = 1 ## Only needed if version < 10.2.2
innodb_open_files	= 400
innodb_io_capacity	= 400
innodb_flush_method	= O_DIRECT
#
# * Security Features
#
# Read the manual, too, if you want chroot!
# chroot = /var/lib/mysql/
#
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem

#
# * Galera-related settings
#
[galera]
# Mandatory settings
#wsrep_on=ON
#wsrep_provider=
#wsrep_cluster_address=
#default_storage_engine=InnoDB
#innodb_autoinc_lock_mode=2
#
# Allow server to accept connections on all interfaces.
#
#bind-address=0.0.0.0
#
# Optional setting
#wsrep_slave_threads=1
#innodb_flush_log_at_trx_commit=0

[mysqldump]
quick
quote-names
max_allowed_packet	= 16M

[mysql]
#no-auto-rehash	# faster start of mysql but no tab completion

[isamchk]
key_buffer_size		= 16M

@prismplex
Copy link
Author

Tried different mariadb versions down to 10.1.23, getting the same errors every time. Tried different docker images users and configs, logging in as root database user, modified privileges... - does not work unfortunately...

@Bart39
Copy link
Contributor

Bart39 commented Dec 8, 2019

run php /nZEDb/cli/verify_permissions.php yes
and check the response

@SpookyDex
Copy link

Looks like the installer is broken, i had the same. Checkout commit 0317e5e, install, then update to master.

@niel
Copy link
Contributor

niel commented Dec 10, 2019

@SpookyDex are you saying that is the last working commit you can install from?
If so, I'll take a closer look at the commit that follows it. Narrowing down the point of failure helps a lot.

@Bart39
Copy link
Contributor

Bart39 commented Dec 10, 2019

@niel i could be wrong but doesn’t sourceSQL() assume local MySQL database ?
I don’t see any MySQL client parameters for remote database

@niel
Copy link
Contributor

niel commented Dec 10, 2019

@Bart39 You're correct, there is no host parameter so the same device would be assumed. I'll update that to use the configured host info.

@prismplex
Copy link
Author

Thank you for your suggestions!
Tried to use the commit mentioned, unfortunatly I'm getting a white screen after entering the correct credentials for the database.

@niel
Copy link
Contributor

niel commented Dec 16, 2019

For white screens you'll need to check PHP's error log, you may need to enable it first.

@leukosaima
Copy link

i had to uncomment the following line in step2.php to get the install to work. been having the same problems as OP

//$DbSetup->processSQLFile(); // Setup default schema

@Bart39
Copy link
Contributor

Bart39 commented Dec 30, 2019

@leukosaima - is your database local or remote ?

@leukosaima
Copy link

@leukosaima - is your database local or remote ?

Remote technically. Using docker containers. The mariadb is in its own container on the same host

@Bart39
Copy link
Contributor

Bart39 commented Dec 30, 2019

@leukosaima - is your database local or remote ?

Remote technically. Using docker containers. The mariadb is in its own container on the same host

Ok, so will benefit from the fix in dev once it’s promoted to master

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants