idno / known

A social publishing platform.

Home Page:https://withknown.com/opensource

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Uncaught PDOException: SQLSTATE[42S02]: Base table or view not found

llgdd opened this issue · comments

commented

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:
vivaldi_n3KXQGULoX
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).