Add full monorepo: virtual-banker, backend, frontend, docs, scripts, deployment
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
215
docs/VMID_5000_DATABASE_FIX_COMMANDS.md
Normal file
215
docs/VMID_5000_DATABASE_FIX_COMMANDS.md
Normal file
@@ -0,0 +1,215 @@
|
||||
# Database Password Fix Commands for VMID 5000 (Blockscout)
|
||||
|
||||
## Commands for Root User in VMID 5000
|
||||
|
||||
These commands should be run **inside VMID 5000** as the root user. You can execute them using:
|
||||
|
||||
```bash
|
||||
# From Proxmox host
|
||||
pct exec 5000 -- bash -c "COMMAND_HERE"
|
||||
|
||||
# Or if you have shell access to VMID 5000
|
||||
# (SSH into the container or use pct enter 5000)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Option 1: Fix Database Password (If PostgreSQL is Accessible from VMID 5000)
|
||||
|
||||
### Step 1: Check Database Connectivity
|
||||
|
||||
```bash
|
||||
# Check if PostgreSQL is accessible
|
||||
pg_isready -h localhost -p 5432 -U explorer
|
||||
|
||||
# Or test connection
|
||||
psql -h localhost -p 5432 -U postgres -c "SELECT version();"
|
||||
```
|
||||
|
||||
### Step 2: Reset Explorer User Password
|
||||
|
||||
```bash
|
||||
# Connect as postgres superuser and reset password
|
||||
psql -h localhost -p 5432 -U postgres << EOF
|
||||
-- Create user if it doesn't exist, or update password if it does
|
||||
DO \$\$
|
||||
BEGIN
|
||||
IF NOT EXISTS (SELECT FROM pg_user WHERE usename = 'explorer') THEN
|
||||
CREATE USER explorer WITH PASSWORD 'changeme';
|
||||
RAISE NOTICE 'User explorer created';
|
||||
ELSE
|
||||
ALTER USER explorer WITH PASSWORD 'changeme';
|
||||
RAISE NOTICE 'User explorer password updated';
|
||||
END IF;
|
||||
END
|
||||
\$\$;
|
||||
|
||||
-- Create database if it doesn't exist
|
||||
SELECT 'CREATE DATABASE explorer OWNER explorer'
|
||||
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'explorer')\gexec
|
||||
|
||||
-- Grant privileges
|
||||
GRANT ALL PRIVILEGES ON DATABASE explorer TO explorer;
|
||||
EOF
|
||||
```
|
||||
|
||||
### Step 3: Verify Connection
|
||||
|
||||
```bash
|
||||
# Test connection with new password
|
||||
PGPASSWORD=changeme psql -h localhost -p 5432 -U explorer -d explorer -c "SELECT 1;"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Option 2: If Database is on Different Host
|
||||
|
||||
If the database is running on a different host (e.g., `192.168.11.10` or another container):
|
||||
|
||||
### Step 1: Check Network Connectivity
|
||||
|
||||
```bash
|
||||
# Test if database host is reachable
|
||||
ping -c 3 192.168.11.10
|
||||
|
||||
# Test if PostgreSQL port is accessible
|
||||
nc -zv 192.168.11.10 5432
|
||||
# Or
|
||||
telnet 192.168.11.10 5432
|
||||
```
|
||||
|
||||
### Step 2: Reset Password on Remote Database
|
||||
|
||||
```bash
|
||||
# Replace DB_HOST with actual database host IP
|
||||
DB_HOST="192.168.11.10" # or "localhost" if on same host
|
||||
|
||||
psql -h $DB_HOST -p 5432 -U postgres << EOF
|
||||
DO \$\$
|
||||
BEGIN
|
||||
IF NOT EXISTS (SELECT FROM pg_user WHERE usename = 'explorer') THEN
|
||||
CREATE USER explorer WITH PASSWORD 'changeme';
|
||||
ELSE
|
||||
ALTER USER explorer WITH PASSWORD 'changeme';
|
||||
END IF;
|
||||
END
|
||||
\$\$;
|
||||
|
||||
SELECT 'CREATE DATABASE explorer OWNER explorer'
|
||||
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'explorer')\gexec
|
||||
|
||||
GRANT ALL PRIVILEGES ON DATABASE explorer TO explorer;
|
||||
EOF
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Option 3: If Using Docker Compose in VMID 5000
|
||||
|
||||
If Blockscout is running via Docker Compose and the database is in a Docker container:
|
||||
|
||||
### Step 1: Check Docker Containers
|
||||
|
||||
```bash
|
||||
# List running containers
|
||||
docker ps
|
||||
|
||||
# Check if postgres container is running
|
||||
docker ps | grep postgres
|
||||
```
|
||||
|
||||
### Step 2: Access PostgreSQL Container
|
||||
|
||||
```bash
|
||||
# Find postgres container name (adjust if different)
|
||||
POSTGRES_CONTAINER=$(docker ps | grep postgres | awk '{print $1}')
|
||||
|
||||
# Reset password in postgres container
|
||||
docker exec -it $POSTGRES_CONTAINER psql -U postgres << EOF
|
||||
DO \$\$
|
||||
BEGIN
|
||||
IF NOT EXISTS (SELECT FROM pg_user WHERE usename = 'explorer') THEN
|
||||
CREATE USER explorer WITH PASSWORD 'changeme';
|
||||
ELSE
|
||||
ALTER USER explorer WITH PASSWORD 'changeme';
|
||||
END IF;
|
||||
END
|
||||
\$\$;
|
||||
|
||||
SELECT 'CREATE DATABASE explorer OWNER explorer'
|
||||
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'explorer')\gexec
|
||||
|
||||
GRANT ALL PRIVILEGES ON DATABASE explorer TO explorer;
|
||||
EOF
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Option 4: Complete One-Line Fix (If PostgreSQL is Local)
|
||||
|
||||
```bash
|
||||
# Single command to fix everything (run as root in VMID 5000)
|
||||
psql -h localhost -p 5432 -U postgres -c "CREATE USER explorer WITH PASSWORD 'changeme';" 2>/dev/null || \
|
||||
psql -h localhost -p 5432 -U postgres -c "ALTER USER explorer WITH PASSWORD 'changeme';" && \
|
||||
psql -h localhost -p 5432 -U postgres -c "CREATE DATABASE explorer OWNER explorer;" 2>/dev/null && \
|
||||
psql -h localhost -p 5432 -U postgres -c "GRANT ALL PRIVILEGES ON DATABASE explorer TO explorer;"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Verification Commands
|
||||
|
||||
After running the fix, verify the connection:
|
||||
|
||||
```bash
|
||||
# Test connection
|
||||
PGPASSWORD=changeme psql -h localhost -p 5432 -U explorer -d explorer -c "SELECT current_user, current_database();"
|
||||
|
||||
# Check user exists
|
||||
psql -h localhost -p 5432 -U postgres -c "\du explorer"
|
||||
|
||||
# Check database exists
|
||||
psql -h localhost -p 5432 -U postgres -c "\l explorer"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### If `psql` command not found:
|
||||
|
||||
```bash
|
||||
# Install PostgreSQL client
|
||||
apt-get update
|
||||
apt-get install -y postgresql-client
|
||||
```
|
||||
|
||||
### If connection to postgres user fails:
|
||||
|
||||
```bash
|
||||
# Check PostgreSQL authentication configuration
|
||||
cat /etc/postgresql/*/main/pg_hba.conf | grep -v "^#"
|
||||
|
||||
# Or if using Docker, check container environment
|
||||
docker exec $POSTGRES_CONTAINER env | grep POSTGRES
|
||||
```
|
||||
|
||||
### If database host is unknown:
|
||||
|
||||
```bash
|
||||
# Find database host from Blockscout configuration
|
||||
grep -r "DATABASE_URL\|DB_HOST\|POSTGRES" /opt/blockscout/ 2>/dev/null | head -10
|
||||
|
||||
# Or check docker-compose.yml
|
||||
cat /opt/blockscout/docker-compose.yml | grep -E "POSTGRES|DATABASE" | head -10
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Notes
|
||||
|
||||
- Replace `changeme` with the actual password if different
|
||||
- Replace `localhost` with the actual database host if different
|
||||
- The database might be running in a separate container or on a different host
|
||||
- Check Blockscout's configuration to determine the correct database host and credentials
|
||||
|
||||
Reference in New Issue
Block a user