v12 : installation steps : manual setup on Ubuntu 20 - ashish-greycube/help GitHub Wiki

Root user : install python,mariadb

sudo ufw allow 22,25,143,80,443,3306,8000/tcp
sudo ufw enable
sudo apt update && sudo apt upgrade -y
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo cp /etc/fstab /etc/fstab.bak
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
sudo nano /etc/sysctl.conf
vm.vfs_cache_pressure=50
vm.swappiness=10
sudo apt install mariadb-server
sudo apt install python3-mysqldb libmysqlclient-dev
sudo mysql_secure_installation 

[# Change the root password? [Y/n]: Y]

sudo systemctl stop mariadb
sudo nano /etc/mysql/mariadb.conf.d/mariadb.cnf
[mysqld]

# GENERAL #
user                           = mysql
default-storage-engine         = InnoDB
socket                         = /var/lib/mysql/mysql.sock
pid-file                       = /var/lib/mysql/mysql.pid

# MyISAM #
key-buffer-size                = 32M
myisam-recover                 = FORCE,BACKUP

# SAFETY #
max-allowed-packet             = 256M
max-connect-errors             = 1000000
innodb                         = FORCE

# DATA STORAGE #
datadir                        = /var/lib/mysql/

# BINARY LOGGING #
log-bin                        = /var/lib/mysql/mysql-bin
expire-logs-days               = 14
sync-binlog                    = 1

# REPLICATION #
server-id                      = 1

# CACHES AND LIMITS #
tmp-table-size                 = 32M
max-heap-table-size            = 32M
query-cache-type               = 0
query-cache-size               = 0
max-connections                = 500
thread-cache-size              = 50
open-files-limit               = 65535
table-definition-cache         = 4096
table-open-cache               = 10240

# INNODB #
innodb-flush-method            = O_DIRECT
innodb-log-files-in-group      = 2
innodb-log-file-size           = 512M
innodb-flush-log-at-trx-commit = 1
innodb-file-per-table          = 1
innodb-buffer-pool-size        = 6144M
innodb-file-format             = barracuda
innodb-large-prefix            = 1
collation-server               = utf8mb4_unicode_ci
character-set-server           = utf8mb4
character-set-client-handshake = FALSE
max_allowed_packet             = 256M

# LOGGING #
log-error                      = /var/lib/mysql/mysql-error.log
log-queries-not-using-indexes  = 0
slow-query-log                 = 1
slow-query-log-file            = /var/lib/mysql/mysql-slow.log

# CONNECTIONS #

pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
bind-address    = 0.0.0.0

[mysql]
default-character-set = utf8mb4
max_allowed_packet = 2G

[mysqldump]
max_allowed_packet=2G
sudo systemctl restart mariadb
sudo systemctl enable mariadb
sudo adduser frappe
usermod -aG sudo frappe
su frappe
cd /home/frappe/

frappe user : install bench

sudo DEBIAN_FRONTEND=noninteractive apt install -y curl build-essential python3-testresources python3-setuptools python3-dev libffi-dev python3-pip libcurl4 dnsmasq fontconfig git htop libcrypto++-dev libfreetype6-dev liblcms2-dev libwebp-dev libxext6 libxrender1 libxslt1-dev libxslt1.1 libffi-dev ntpdate postfix python3-dev python-tk screen vim xfonts-75dpi xfonts-base zlib1g-dev apt-transport-https libsasl2-dev libldap2-dev libcups2-dev pv libjpeg8-dev libtiff5-dev tcl8.6-dev tk8.6-dev libdate-manip-perl logwatch
sudo -H python3 -m pip install --upgrade setuptools cryptography psutil
curl -sL https://deb.nodesource.com/setup_12.x -o nodesource_setup.sh
sudo bash nodesource_setup.sh
sudo apt install nodejs
sudo npm install -g yarn
cd /tmp
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb
sudo dpkg -i wkhtmltox_0.12.5-1.bionic_amd64.deb
sudo cp /usr/local/bin/wkhtmlto* /usr/bin/
cd /home/frappe
sudo chmod a+x /usr/bin/wk*
sudo apt install redis-server
sudo systemctl enable redis-server
sudo chown frappe -R /home/frappe
sudo apt-get install virtualenv
sudo apt install python3.8-venv
sudo -H pip3 install -I frappe-bench
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
bench init /home/frappe/frappe-bench --frappe-path https://github.com/frappe/frappe --frappe-branch version-12 --python python3
./env/bin/pip install numpy==1.18.5 && ./env/bin/pip install pandas==0.24.2
bench get-app erpnext https://github.com/frappe/erpnext --branch version-12
bench new-site test.greycube.in --admin-password xyz
sudo bench setup production frappe --yes
sudo supervisorctl stop all
sudo supervisorctl start all

Solution 2

Reference link

https://askubuntu.com/questions/1029177/error-1698-28000-access-denied-for-user-rootlocalhost-at-ubuntu-18-04