Uncaught PDOException: SQLSTATE[42S02]: Base table or view not found
llgdd opened this issue · comments
While trying to do this:
I’m trying to install Known 1.2.2
(downloaded from https://withknown.marcus-povey.co.uk/known-1.2.2.tgz) on my Debian 5.10.46-3
VPS using Apache/2.4.53 (Debian)
, PHP 7.4.28 (cli)
, mysql 8.0.27 for Linux on x86_64 (MySQL Community Server - GPL)
.
I installed all the needed PHP components (successful installation verified by Known’s CLI Installer), enabled the usage of htaccess, applied the Mod_Rewrite tweak, secured my MySQL installation applying all the recommended changes but one (I refused to disable remote access), created a new MySQL user called known
and a new database called knowndb
. These are the privileges I’ve given to my known
MySQL user:
+-------------------------------------------------------------+
| Grants for known@localhost |
+-------------------------------------------------------------+
| GRANT USAGE ON *.* TO `known`@`localhost` WITH GRANT OPTION |
| GRANT ALL PRIVILEGES ON `knowndb`.* TO `known`@`localhost` |
+-------------------------------------------------------------+
I then added my credentials to /var/www/html/known/configuration/config.ini
(part of the password is edited out):
database = "MySQL"
dbname = "knowndb"
dbhost = "localhost"
dbuser = "known"
dbpass = "Known******_MySQL"
When I ran /var/www/html/known/warmup/CLI/CLIInstaller.php install
it said ”Known is already installed.“
I encountered this error:
Now when I go to http://xx.xxx.xx.xxx/known/
(my VPS’s IP), I’m greeted by this page:
Here’s the full message:
Known experienced a problem with this page and couldn't continue.
Uncaught PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'knowndb.config' doesn't exist in /var/www/html/known/Idno/Data/MySQL.php:369
The technical details are as follows:
Fatal Error: /var/www/html/known/Idno/Data/MySQL.php:369 - "Uncaught PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'knowndb.config' doesn't exist in /var/www/html/known/Idno/Data/MySQL.php:369
Stack trace:
#0 /var/www/html/known/Idno/Data/MySQL.php(369): PDOStatement->execute()
#1 /var/www/html/known/Idno/Core/Config.php(103): Idno\Data\MySQL->getAnyRecord()
#2 /var/www/html/known/Idno/Core/Idno.php(111): Idno\Core\Config->load()
#3 /var/www/html/known/Idno/Common/Component.php(18): Idno\Core\Idno->init()
#4 /var/www/html/known/Idno/Core/Idno.php(45): Idno\Common\Component->__construct()
#5 /var/www/html/known/Idno/start.php(126): Idno\Core\Idno->__construct()
#6 /var/www/html/known/index.php(30): require_once('/var/www/html/k...')
#7 {main}
thrown", on page xx.xxx.xx.xxx/known/
Some other notes:
I checked #563 which looks like the only issue with my error, but didn’t find any solution to my problem...
Also my /var/www/html/known/.htaccess
is intact:
## BEGIN Known Webserver Config (don't remove)
<IfModule mod_rewrite.c>
RewriteEngine on
#RewriteBase /
RewriteRule ^\.git(|hub)/ - [F]
RewriteCond %{HTTP:Authorization} ^(.+)$
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{ENV:BASE} ^$
RewriteCond $1::%{REQUEST_URI} ^(.*)::(.*?)\1$
RewriteRule ^(.*)$ - [ENV=BASE:%2]
RewriteRule ^js/canary\.js$ %{ENV:BASE}/js/known.min.js [L]
# The query string cache trick doesn't really work, so use rewrite rules instead
RewriteRule ^js/[0-9]+/(.*)$ %{ENV:BASE}/js/$1 [L]
RewriteRule ^css/[0-9]+/(.*)$ %{ENV:BASE}/css/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ %{ENV:BASE}/index.php?/$1 [L,QSA]
RewriteRule ^Uploads.* - [F]
</IfModule>
<Files ~ "\.dist$">
Order allow,deny
Deny from all
</Files>
<Files ~ "composer\.lock">
Order allow,deny
Deny from all
</Files>
<Files ~ "composer\.json">
Order allow,deny
Deny from all
</Files>
<Files ~ "package\.json">
Order allow,deny
Deny from all
</Files>
<Files ~ "Gruntfile\.js">
Order allow,deny
Deny from all
</Files>
<Files ~ "known\.php">
Order allow,deny
Deny from all
</Files>
<Files ~ "\.known">
Order allow,deny
Deny from all
</Files>
<Files ~ "\.ini$">
Order allow,deny
Deny from all
</Files>
<Files ~ "\.yml$">
Order allow,deny
Deny from all
</Files>
<Files ~ "\.xml$">
Order allow,deny
Deny from all
</Files>
<Files ~ "\.bak$">
Order allow,deny
Deny from all
</Files>
<Files ~ "sitemap\.xml">
Order allow,deny
Allow from all
</Files>
<Files ~ "feed\.xml">
Order allow,deny
Allow from all
</Files>
<Files ~ "rss\.xml">
Order allow,deny
Allow from all
</Files>
#<Files ~ "\.php$">
# Order allow,deny
# Deny from all
#</Files>
<Files ~ "warmup\/*\.*">
Order allow,deny
Allow from all
</Files>
<Files ~ "index\.php">
Order allow,deny
Allow from all
</Files>
AddType video/ogg .ogv
AddType video/mp4 .mp4
AddType video/webm .webm
# If you have problems uploading large images try uncommenting these lines
#
# php_value post_max_size 64M
# php_value upload_max_filesize 60M
## END Known Webserver Config (don't remove)
...and the database doesn’t look empty:
mysql> USE knowndb;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> SHOW TABLES;
+-------------------+
| Tables_in_knowndb |
+-------------------+
| config_metadata |
| config_search |
| entities_metadata |
| entities_search |
| reader |
| reader_metadata |
| reader_search |
| versions |
+-------------------+
8 rows in set (0.00 sec)
Give us some context:
version.known
version = '1.2.2'
build = 2020061101
revision = "bd43456"
Known 1.2.2
(downloaded from https://withknown.marcus-povey.co.uk/known-1.2.2.tgz), Debian 5.10.46-3
VPS using Apache/2.4.53 (Debian)
, PHP 7.4.28 (cli)
, mysql 8.0.27 for Linux on x86_64 (MySQL Community Server - GPL)
.