How to fix Nextcloud 4047 InnoDB refuses to write tables with ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE

If you have an error like:

InnoDB refuses to write tables with ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE

All you need – to edit mysql configuration file: /etc/mysql/my.cfg

sudo nano /etc/mysql/my.cfg

Add this command:

skip-innodb-read-only-compressed

Save changes and restart mysql server:

sudo systemctl restart mysql

How to add directory to PATH in Linux

The $PATH environment variable is a list of directories that tells the shell which directories to search for executable files.

To check what directories are in your $PATH list use command:

echo $PATH

To add new directory ~/.local/bin/ to $PATH use command:

export PATH="$HOME/.local/bin:$PATH"

But this change is only temporary and valid only in the current shell session.

To make the change permanent, you need to define the $PATH variable in the shell configuration files. In most Linux distributions when you start a new session, environment variables are read from the following files:

  • Global shell specific configuration files such as /etc/environment and /etc/profile. Use this file if you want the new directory to be added to all system users $PATH.
  • Per-user shell specific configuration files. For example, if you are using Bash, you can set the $PATH variable in the ~/.bashrc file. If you are using Zsh the file name is ~/.zshrc.

In this example, we’ll set the variable in the ~/.bashrc file. Open the file with your text editor and add the following line at the end of it:

nano ~/.bashrc

export PATH="$HOME/.local/bin:$PATH"

Save the file and load the new $PATH into the current shell session using the source command:

source ~/.bashrc

To confirm that the directory was successfully added, print the value of your $PATH by typing:

echo $PATH

How to auto start program in Linux with root privilegies

To run some script or program when computer start in linux – copy this program to /etc/init.d directory. Change permissions to 755.

For example let’s create simple bash script “ntpsync“that sync system clock with NTP server in Internet:

service ntp stop
ntpdate time.nist.gov
service ntp start

Copy this sctipt to /etc/init.d, create symbolic link to /etc/rc3.d:

ln -s /etc/init.d/ntpsync /etc/rc3.d/ntpsync

Rc3 level – Мulti-user regime width network support.

That’s all, on next startup Linux will run this script, and automatically sync system clock with NTP server from Internet.

Change default Grub 2 theme

Different themes for Grub 2 boot loader you can find on Gnome-Look website: https://www.gnome-look.org/browse?cat=109&ord=latest

To change Grub them use three simple steps:

1. Copy folder with theme into Grub themes directory:

/boot/grub/themes

2. Edit Grub configuration file /etc/default/grub and write there GRUB_THEME parameter:

GRUB_THEME=/boot/grub/themes/theme_folder/theme.txt

3. Update Grub configuration:

update-grub

Also you can customize GRUB with grub-customizer. Install grub-customizer with command:

sudo apt install grub-customizer

Best three Grub themes:

1. Vimix

2. Tela

3. CyberRe

Installing Wine 6 on Debian 10

Step 1: Enable 32 bit architecture

sudo dpkg --add-architecture i386 

Step 2: Add WineHQ repository

We will pull the latest Wine packages from WineHQ repository that is added manually. First, import GPG key:

sudo apt update
sudo apt -y install gnupg2 software-properties-common
wget -qO - https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add -

You should receive “OK” in the output. Add the Wine repository by running the following command:

sudo apt-add-repository https://dl.winehq.org/wine-builds/debian/

The command will add repository to line /etc/apt/sources.list file.

Update APT package index:

sudo apt update

Step 3: Install Wine 6 on Debian 10

After configuration of the APT repository, the final step is the actual installation of Wine 6 on Debian 10. Add Wine OBS repository:

wget -O- -q https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/Debian_10/Release.key | sudo apt-key add -    
echo "deb http://download.opensuse.org/repositories/Emulators:/Wine:/Debian/Debian_10 ./" | sudo tee /etc/apt/sources.list.d/wine-obs.list

Then install Wine from Stable branch:

sudo apt update
sudo apt install --install-recommends winehq-stable

And for latest release in staging, use:

sudo apt install winehq-staging

After installation. verify version installed.

wine --version  # Stable
wine-6.0

wine --version  # Staging
wine-6.5 (Staging)

Debian 10 Install PulseAudio

PulseAudio is a network-capable sound server program. A sound server is a background process accepting sound input from one or more sources (processes, capture devices, etc.), that is able to mix and redirect those sources to one or more sinks (sound cards, remote network PulseAudio servers, or other processes).

To install PulseAudio on Debian Linux first update package repository:

sudo apt update

Next install PulseAudio:

sudo apt install pulseaudio

Now reboot your computer.

Using PulseAudio Volume Control Graphical Utility:

PulseAudio has a graphical frontend PulseAudio Volume Control, which you can use to easily configure PulseAudio sounds graphically.

It is not installed by default. Run the following command to install PulseAudio Volume Control:

sudo apt install pavucontrol

Also to change sound volume by hotkeys you need amixer utility install it by command:

apt-get install alsa-utils

How to change MySQL root password in Debian / Ubuntu

Connect to MySQL Server using Linux terminal:

sudo mysql --user=root mysql

Run the following commands:

UPDATE mysql.user SET authentication_string=null WHERE User='root';
flush privileges;

Replace NEW_PASSWORD with your own.

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NEW_PASSWORD';
flush privileges;
exit;

How to Flush the DNS Cache on Debian 10

To flush DNS cache in Debian GNU/Linux use command:

sudo systemd-resolve --flush-caches

If you get error message: “Failed to flush caches: Unit dbus-org.freedesktop.resolve1.service not found.“, enable the service on your system:

sudo systemctl enable systemd-resolved.service

Then again run the “systemd-resolve –flush-caches” command.

You can then check the statistics in order to make sure that your cache size is now zero, thus cleared. Run the following command in order to view the statistics:

sudo systemd-resolve --statistics

Configure certificate in HestiaCP

1. Backup current certificates in directory /usr/local/hestia/ssl/:

mv /usr/local/hestia/ssl/certificate.crt /usr/local/hestia/ssl/certificate.crt.old 

mv /usr/local/hestia/ssl/certificate.key /usr/local/hestia/ssl/certificate.key.old 

2. In directory /usr/local/vesta/ssl/ make symbol links to certificates, that we use on our site (for example: site.com):

ln -s /home/admin/conf/web/site.com/ssl/site.com.crt /usr/local/hestia/ssl/certificate.crt 

ln -s /home/admin/conf/web/site.com/ssl/site.com.key /usr/local/hestia/ssl/certificate.key 

3. Restart Hestia service:

service hestia restart