From a00975b898f9e11ac41e9679fcc95fe26ed171d5 Mon Sep 17 00:00:00 2001 From: Administrator Date: Fri, 2 Feb 2024 21:12:30 +0100 Subject: [PATCH] docs: update test_transfer_odt_5 --- test_transfer_odt_5.html | 2307 ++++++-------------------------------- 1 file changed, 337 insertions(+), 1970 deletions(-) diff --git a/test_transfer_odt_5.html b/test_transfer_odt_5.html index a0c6f6f..6437387 100644 --- a/test_transfer_odt_5.html +++ b/test_transfer_odt_5.html @@ -2,1990 +2,357 @@ title: Transfer Linux Lamp description: published: 1 -date: 2024-02-02T20:07:41.428Z +date: 2024-02-02T20:12:28.191Z tags: editor: code dateCreated: 2024-02-01T23:17:04.906Z --> - - - - - - - - - - - -

-
- -

-


- -

-


- -

-


- -

-

enabling -SSH

-

https://randomnerdtutorials.com/installing-raspbian-lite-enabling-and-connecting-with-ssh/

- -


- -

-

Establishing -an SSH Communication

-

$ -sudo ssh pi@192.168.178.25

-

user: -pi, pass: pi

-


- -

-

Shutting -Down

-

$ -sudo poweroff

-


- -

-


- -

-


- -

-


- -

-

https://randomnerdtutorials.com/raspberry-pi-apache-mysql-php-lamp-server/

-

https://www.instructables.com/Installing-LAMP-Linux-Apache-MySQL-PHP-on-a-Raspbe/

-


- -

-


- -

-

Updating -and Upgrading

-

$ -sudo apt update && sudo apt upgrade -y

-


- -

-


- -

-


- -

-


- -

-

Install -Apache2

-

$ -sudo apt install apache2 -y

-


- -

-

Testing -Apache installation

-

$ -cd /var/www/html

-

$ -ls -al

-

This -should show “index.html”

-


- -

-

get -RasPi IP address

-

$ -hostname -I

-


- -

-

enter -IP address into Browser → the Apache Debian page should appear

-


- -

-


- -

-


- -

-


- -

-

Install -PHP

-

$ -cd /var/www/html

-

$ -sudo apt install php -y

-

$ -sudo rm index.html

-


- -

-

$ -sudo nano index.php

-

Add -following script into the php file:

-

<?php -echo "hello world"; ?>

-

Save -with Ctrl+X >> y >> Enter, or -Ctrl+O >> Enter >> Ctrl+X

-

OR

-

<?php -phpinfo(); ?>

-

OR

-

$ -echo "<?php phpinfo ();?>" > -/var/www/html/index.php

-


- -

-

Restart -Apache

-

$ -sudo service apache2 restart

-


- -

-

test -if Apache2 is serving .php files by opening RasPi IP address in -browser -

-


- -

-

if -all is fine, index.php can be removed

-

$ -sudo rm index.php

-


- -

-


- -

-


- -

-

Install -MySQL (MariaDB Server)

-

$ -sudo apt install mariadb-server php-mysql -y

-

$ -sudo service apache2 restart

-

$ -sudo mysql_secure_installation

-

In -all cases, answer with y

-


- -

-

create -new user “admin” -with password “your_password”

-

$ -sudo mysql --user=root --password

-

> -create user admin@localhost identified by 'your_password';

-

> -grant all privileges on *.* to admin@localhost;

-

> -FLUSH PRIVILEGES;

-

> -exit;

-


- -

-

Important -to generate user that is not limited to a certain domain!!

-

> -grant -all privileges on *.* to 'admin3'@'%';

-


- -

-


- -

-


- -

-


- -

-

Install -phpMyAdmin

-

$ -cd /var/www/html

-

$ -sudo apt install phpmyadmin -y

-


- -

-

Options:

- -


- -

-

$ -sudo phpenmod mysqli

-

$ -sudo service apache2 restart

-


- -

-

open -following address

-

-http://192.168.178.25/phpmyadmin

-


- -

-

if -“Not Found”

-

$ -cd /var/www/html

-

$ -sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin

-

$ -ls

-

>> -phpmyadmin

-


- -

-

again, -open following address

-

http://192.168.178.25/phpmyadmin

-


- -

-

login -with username=root, password=pi

-


- -

-


- -

-


- -

-


- -

-

change -the permissions for your /var/www/html/ folder.

-

$ -cd ~

-

$ -ls -lh /var/www/

-

$ -sudo chown -R pi:www-data /var/www/html/

-

$ -sudo chmod -R 770 /var/www/html/

-

$ -ls -lh /var/www/

-


- -

-


- -

-


- -

-


- -

-


- -

-


- -

-


- -

-


- -

-


- -

-


- -

-


- -

-


- -

-

https://randomnerdtutorials.com/esp32-esp8266-raspberry-pi-lamp-server/

-


- -

-


- -

-

Create -database:

- -


- -

-


- -

-

Create -table by calling SQL query:

-

CREATE -TABLE SensorData (

-

- id -INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,

-

- sensor -VARCHAR(30) NOT NULL,

-

- location -VARCHAR(30) NOT NULL,

-

- value1 -VARCHAR(10),

-

- value2 -VARCHAR(10),

-

- value3 -VARCHAR(10),

-

- reading_time -TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

-

)

-


- -

-


- -

-

PHP -script that is responsible for receiving incoming requests from the -ESP32 or ESP8266 and inserting the data into a MySQL database.

-

$ -cd ~

-

$ -nano -/var/www/html/post-esp-data.php

-


- -

-


- -

-


- -

-


- -

-


- -

-


- -

-


- -

-

https://github.com/ChuckBell/MySQL_Connector_Arduino/wiki/Troubleshooting

-

tr -to connect to msql from another computer:

-

$ -mysql --uadmin --ppi -–h192.168.178.25 –port=3306

-

$ -mysql ---user=admin ---password=pi ---host=192.168.178.25 ---port=3306

-

$ -mysql ---user=admin ---password=pi ---host= -127.0.0.1 ---port=3306

-


- -

-

$ -mysql --u admin --p pi --h 127.0.0.1 test_arduino

-


- -

-


- -

-


- -

-

Important -in case of “ERROR 2003 (HY000): Can't connect to local MySQL server -through socket”

-

$ -sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf -

-

Here, -the binding address = 127.0.0.1 must be commented out!!!

-


- -

-


- -

-


- -

-


- -

-


- -

-

https://pawelrychlicki.pl/Article/Details/65/fixing-sqlstatehy000-2002-in-the-nextcloudowncloud-with-the-mysqlmariadb-and-the-tlsssl-ubuntu-linux-1804-server

-


- -

-


- -

-


- -

-


- -

-


- -

-


- -

-

1Configuring -WiFi in headless mode

-

https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md

-

https://www.seeedstudio.com/blog/2021/01/25/three-methods-to-configure-raspberry-pi-wifi/

-


-
- -

-

1.1ssh

-

To -enable SSH on a headless Raspberry Pi, simply place a file named -“ssh”, without any extension, onto the boot partition of the SD -card from another computer. This will tell Raspberry Pi to enable SSH -when booting. The content of the file does not matter.

-


-
- -

-

1.2wpa_supplicant.conf - -

-

$ sudo -nano /etc/wpa_supplicant/wpa_supplicant.conf

-


-
- -

-

ctrl_interface=DIR=/var/run/wpa_supplicant -GROUP=netdev

-

update_config=1

-

country=<Country -Code>

-

network={

-

ssid="<SSID>"

-

psk="<PASSWORD>"

-

scan_ssid=1

-

}

-


-
- -

-

2Arduino -script for writing to MariaDB/MySQL database

-

Check -sketch “Complex_Insert_WiFi_BE”

-


-
- -

-


-
- -

-


-
- -

-

3Showing -DB content as html page

-

https://randomnerdtutorials.com/esp32-esp8266-raspberry-pi-lamp-server/

-


-
- -

-

$ nano -/var/www/html/esp-data.php

-


-
- -

-

open -page http://192.168.178.25/esp-data.php

-


-
- -

-

3.1esp-data.php

-

<!DOCTYPE -html>

-

<html><body>

-

<?php

-

/*

-

Rui -Santos

-

Complete -project details at -https://RandomNerdTutorials.com/esp32-esp8266-mysql-database-php/

-

-

-

Permission -is hereby granted, free of charge, to any person obtaining a copy

-

of -this software and associated documentation files.

-

-

-

The -above copyright notice and this permission notice shall be included -in all

-

copies -or substantial portions of the Software.

-

*/

-


-
- -

-

$servername -= "192.168.178.25";

-


-
- -

-

// -REPLACE with your Database name

-

$dbname -= "test_arduino";

-

// -REPLACE with Database user

-

$username -= "admin3";

-

// -REPLACE with Database user password

-

$password -= "pi";

-


-
- -

-

// -Create connection

-

$conn = -new mysqli($servername, $username, $password, $dbname);

-

// -Check connection

-

if -($conn->connect_error) {

-

die("Connection -failed: " . $conn->connect_error);

-

} -

-


-
- -

-

$sql = -"SELECT num, -message, -sensor_num, -value, -recorded -FROM hello_sensor -ORDER BY num -DESC";

-


-
- -

-

echo -'<table cellspacing="5" cellpadding="5">

-

<tr> - -

-

<td>num</td> - -

-

<td>message</td> - -

-

<td>sensor_num</td> - -

-

<td>value</td> - -

-

<td>recorded</td> - -

-

</tr>';

-

-

-

if -($result = $conn->query($sql)) {

-

while -($row = $result->fetch_assoc()) {

-

$row_num -= $row["num"];

-

$row_message -= $row["message"];

-

$row_sensor_num -= $row["sensor_num"];

-

$row_value -= $row["value"];

-

$row_recorded -= $row["recorded"];

-

// -Uncomment to set timezone to - 1 hour (you can change 1 to any -number)

-

//$row_reading_time -= date("Y-m-d H:i:s", strtotime("$row_reading_time - 1 -hours"));

-

-

-

// -Uncomment to set timezone to + 4 hours (you can change 4 to any -number)

-

//$row_reading_time -= date("Y-m-d H:i:s", strtotime("$row_reading_time + 4 -hours"));

-

-

-

echo -'<tr> -

-

<td>' -. $row_num -. '</td> -

-

<td>' -. $row_message -. '</td> -

-

<td>' -. $row_sensor_num -. '</td> -

-

<td>' -. $row_value -. '</td> -

-

<td>' -. $row_recorded -. '</td> -

-

</tr>';

-

}

-

$result->free();

-

}

-


-
- -

-

$conn->close();

-

?> -

-

</table>

-

</body>

-

</html>

-


-
- -

-


-
- -

-


-
- -

-

4Plotting -of data from MariaDB/MySQL -database

-

https://randomnerdtutorials.com/visualize-esp32-esp8266-sensor-readings-from-anywhere/

-


-
- -

-

$ sudo -nano /var/www/html/esp-chart.php

-

4.1esp-chart.php

-


-
- -

-

<!--

-

Rui -Santos

-

Complete -project details at https://RandomNerdTutorials.com

-

-

-

Permission -is hereby granted, free of charge, to any person obtaining a copy

-

of -this software and associated documentation files.

-

-

-

The -above copyright notice and this permission notice shall be included -in all

-

copies -or substantial portions of the Software.

-


-
- -

-

-->

-

<?php

-


-
- -

-

$servername -= "192.168.178.25";

-


-
- -

-

// -REPLACE with your Database name

-

$dbname -= "test_arduino";

-

// -REPLACE with Database user

-

$username -= "admin3";

-

// -REPLACE with Database user password

-

$password -= "pi";

-


-
- -

-

// -Create connection

-

$conn = -new mysqli($servername, $username, $password, $dbname);

-

// -Check connection

-

if -($conn->connect_error) {

-

die("Connection -failed: " . $conn->connect_error);

-

} -

-


-
- -

-

$sql = -"SELECT num, -message, -sensor_num, -value, -value_h, -recorded -FROM hello_sensor -WHERE -sensor_num = 0 -ORDER BY num -DESC limit 40";

-


-
- -

-

$result -= $conn->query($sql);

-


-
- -

-

while -($data = $result->fetch_assoc()){

-

$sensor_data[] -= $data;

-

}

-


-
- -

-

$recorded -= array_column($sensor_data, 'recorded');

-


-
- -

-

// -******* Uncomment to convert readings time array to your timezone -********

-

/*$i = -0;

-

foreach -($readings_time as $reading){

-

// -Uncomment to set timezone to - 1 hour (you can change 1 to any -number)

-

$readings_time[$i] -= date("Y-m-d H:i:s", strtotime("$reading - 1 -hours"));

-

// -Uncomment to set timezone to + 4 hours (you can change 4 to any -number)

-

//$readings_time[$i] -= date("Y-m-d H:i:s", strtotime("$reading + 4 -hours"));

-

$i -+= 1;

-

}*/

-


-
- -

-

$value -= json_encode(array_reverse(array_column($sensor_data, 'value')), -JSON_NUMERIC_CHECK);

-

$value_h -= json_encode(array_reverse(array_column($sensor_data, 'value_h')), -JSON_NUMERIC_CHECK);

-

$recorded -= json_encode(array_reverse($recorded), -JSON_NUMERIC_CHECK);

-


-
- -

-

/*echo -$value1;

-

echo -$value2;

-

echo -$value3;

-

echo -$reading_time;*/

-


-
- -

-

$result->free();

-

$conn->close();

-

?>

-


-
- -

-

<!DOCTYPE -html>

-

<html>

-

<meta -name="viewport" content="width=device-width, -initial-scale=1">

-

<script -src="https://code.highcharts.com/highcharts.js"></script>

-

<style>

-

body -{

-

min-width: -310px;

-

max-width: -1280px;

-

height: -500px;

-

margin: -0 auto;

-

}

-

h2 -{

-

font-family: -Arial;

-

font-size: -2.5rem;

-

text-align: -center;

-

}

-

</style>

-

<body>

-

<h2>ESP -Weather Station</h2>

-

<div -id="chart-temperature" class="container"></div>

-

<div -id="chart-humidity" class="container"></div>

-

<script>

-


-
- -

-

var -value -= <?php echo $value; -?>;

-

var -value_h -= <?php echo $value_h; -?>;

-

var -recorded -= <?php echo $recorded; -?>;

-


-
- -

-

var -chartT = new Highcharts.Chart({

-

chart:{ -renderTo : 'chart-temperature' },

-

title: -{ text: 'BME280 Temperature' },

-

series: -[{

-

showInLegend: -false,

-

data: -value

-

}],

-

plotOptions: -{

-

line: -{ animation: false,

-

dataLabels: -{ enabled: true }

-

},

-

series: -{ color: '#059e8a' }

-

},

-

xAxis: -{ -

-

type: -'datetime',

-

categories: -recorded

-

},

-

yAxis: -{

-

title: -{ text: 'Temperature (Celsius)' }

-

//title: -{ text: 'Temperature (Fahrenheit)' }

-

},

-

credits: -{ enabled: false }

-

});

-


-
- -

-


-
- -

-


-
- -

-

var -chartH = new Highcharts.Chart({

-

chart:{ -renderTo:'chart-humidity' },

-

title: -{ text: 'BME280 Humidity' },

-

series: -[{

-

showInLegend: -false,

-

data: -value_h

-

}],

-

plotOptions: -{

-

line: -{ animation: false,

-

dataLabels: -{ enabled: true }

-

}

-

},

-

xAxis: -{

-

type: -'datetime',

-

//dateTimeLabelFormats: -{ second: '%H:%M:%S' },

-

categories: -recorded

-

},

-

yAxis: -{

-

title: -{ text: 'Humidity (%)' }

-

},

-

credits: -{ enabled: false }

-

});

-


-
- -

-

</script>

-

</body>

-

</html>

-


-
- -

-


-
- -

-


-
- -

-


-
- -

-


-
- -

-

5Using -canvas.js

-

https://canvasjs.com/php-charts/multiseries-chart/

-


-
- -

-


-
- -

-


-
- -

-

6External -access to LAMP server

-

port 22 -(ssh), port 80 (http)

-


-
- -

-

https://raspberrypi.stackexchange.com/questions/105080/how-to-remote-to-raspberry-pi-from-outside-local-network

-


-
- -

-

https://howtoraspberrypi.com/enable-mysql-remote-connection-raspberry-pi/

-

Configure -MySQL to accept external connections to Raspberry Pi

-

$ sudo -nano /etc/mysql/my.cnf

-

#bind-address -= 127.0.0.1 <<<<< -comment the line bind-address

-

optionally -modify -the MySQL port to -reduce risk of attacks, e.g.

-

port = -8457

-


-
- -

-

$ -/etc/init.d/mysql -restart

-


-
- -

-


-
- -

-

7RasPi -as Samba server

-

https://aallan.medium.com/adding-an-external-disk-to-a-raspberry-pi-and-sharing-it-over-the-network-5b321efce86a

-

SMB is -the best protocol for use on multiple platforms due to superior -interoperability

-


-
- -

-

in case -of issue “chown: changing ownership of '...': Operation not -permitted”:

-

https://stackoverflow.com/questions/25559700/chown-command-returning-operation-not-permitted

-

get -uid:

-

$ cat -/etc/passwd |grep pi

-

get -gid:

-

$ cat -/etc/group |grep pi

-

Give -pi:pi access to the entire /mnt/usb -mount:

-

$ sudo -mount -o remount,gid=<pi's -gid>,uid=<pi's -uid> -/mnt/usb

-


-
- -

-

Attention: -FAT -file system doesn't support such permissions, so they can't be -applied after the drive is mounted

-

https://raspberrypi.stackexchange.com/questions/40408/how-to-change-permissions-on-external-hard-drive-connected-to-raspberry

-

Instead, -drive should be formatted with pi user and/or -ntfs file sstem?

-


-
- -

-


-
- -

-

Mounting -USB drive that -is -NTFS???-formatted -under specific name:

-

$ sudo -fdisk --l

-

$ sudo -umount /dev/sda1

-

$ sudo -mkdir /mnt/usb

-

$ sudo -chown -R pi:pi /mnt/usb

-

seems -like this command has to be used each time the usb drive is -connected: $ -sudo -mount /dev/sda1 /mnt/usb -o uid=pi,gid=pi

-


-
- -

-

append -following text to this file for automatic mounting under the -specified path:

-

$ sudo -nano /etc/fstab

-

/dev/sda1 -/mnt/usb auto defaults,user 0 1

-

OR:

-

/dev/sda1 /mnt/usb ntfs-3g -defaults,user,uid=1000,gid=1000,noatime 0 0

-

https://raspberrypi.stackexchange.com/questions/40408/how-to-change-permissions-on-external-hard-drive-connected-to-raspberry

-


-
- -

-


-
- -

-


-
- -

-


-
- -

-

Make -the drive accessible from the network by -adding following text:

-

$ sudo -apt-get install samba samba-common-bin

-

$ sudo -nano /etc/samba/smb.conf

-

[share]

-

Comment -= Shared Folder

-

Path -= /mnt/usb

-

Browseable -= yes

-

Writeable -= Yes

-

only -guest = no

-

create -mask = 0777

-

directory -mask = 0777

-

Public -= yes

-

Guest -ok = yes

-


-
- -

-

$ chmod -1777 /mnt/usb -<<<< -the uSB should be mounted under this name

-

$ sudo -/etc/init.d/samba restart

-


-
- -

-


-
- -

-

sudo -service smbd restart

-

sudo -service smbd status

-


-
- -

-


-
- -

-

https://www.raspberrypi.org/forums/viewtopic.php?t=56149

-

$ sudo -df

-

$ cd -/media

-

$ sudo -mkdir HDD

-

$ sudo -nano /etc/fstab

-

/dev/sda1 - /media/HDD ntfs-3g defaults,noatime 0 0

-

$ cp -/etc/samba/smb.conf /etc/samba/smb.conf.bak //Make a backup of the -config file

-

$ nano -/etc/samba/smb.conf

-

[media] - -

-

comment -= Media share

-

path = -/media/HDD

-

valid -users = @users

-

force -group = users

-

create -mask = 0660

-

directory -mask = 0771

-

read -only = no

-


-
- -

-


-
- -

-

sudo -service samba restart

-

sudo -useradd ChooseUsernameHere -m -G users

-

sudo -passwd TheChosenUsername //after this choose a password for the new -user

-

sudo -smbpasswd -a TheChosenUsername //after this enter passwd again

-

>>>>>>>>>>> -userA pi

-


-
- -

-


-
- -

-


-
- -

-

mount -in Win10/Linux/etc. as -smb://192.168.178.25/

-


-
- -

-


-
- -

-


-
- -

-

https://raspberrytips.com/format-mount-usb-drive/

-

Formatting -USB stick with RasPi:

-

$ sudo -fdisk -l

-

$ sudo -fdisk /dev/sda1

-

Create -a new partition table : g (for GPT, use help for other format)

-

Create -a new partition : n

-

You -can keep the default values for a single partition

-

Confirm -with Y to remove the signature

-

And -finally write and exit fdisk: w

-

$ sudo -mkfs.ext4 /dev/sda1
-
OR: -$ sudo -mkfs.vfat /dev/sda1
-
OR: -$ sudo -mkfs.ntfs /dev/sda1

-


-
- -

-


-
- -

-

https://thepihut.com/blogs/raspberry-pi-tutorials/17699796-formatting-and-mounting-a-usb-drive-from-a-terminal-window

-

$ -sudo -mkfs -t vfat -I /dev/sda1

-

$ -sudo -mount /dev/sda1 -/mnt/usb --o umask=000

-

$ -sudo umount /mnt/usb

-


-
- -

-


-
- -

-


-
- -

-

8Filtering -rows with SQL

-

https://chartio.com/blog/simple-sql-filtering-rows/

-

SELECT -column_name1, column_name2

-

FROM -table_name

-

WHERE -column_name1 operator value;

-


-
- -

-

SELECT -*

-

FROM -hello_sensor

-

WHERE -sensor_num = 0 -

-

ORDER -BY `hello_sensor`.`recorded` DESC

-


-
- -

-


-
- -

-

9Python -MySQL

-

9.1Python -MySQL Querying Data

-

https://stackoverflow.com/questions/44634810/fastest-way-to-fetch-table-from-mysql-into-pandas

-

MyEngine=create_engine('[YourDatabase]://[User]:[Pass]@[Host]/[DatabaseName]', -echo = True)

-

Downloading:

-

df = -pd.read_sql_query('select * from [TableName]', con= MyEngine)

-

Uploading:

-

df.to_sql([TableName], -MyEngine, if_exists = 'append', index=False)

-


-
- -

-


-
- -

-

9.2Using -mysql -module

-

https://www.mysqltutorial.org/python-mysql-query/

-

https://www.codespeedy.com/fetch-data-from-mysql-table-in-python-program/

-

https://www.krazyprogrammer.com/2020/11/fetch-and-display-data-from-mysql-using.html

-

pip -install mysql-connector

-


-
- -

-

https://www.tutorialspoint.com/python_mysql/python_mysql_select_data.htm

-


-
- -

-

import -mysql.connector

-


-
- -

-

#establishing -the connection

-

conn = -mysql.connector.connect(

-

user='admin3', -password='pi', -host='192.168.178.25', database='test_arduino'

-

)

-


-
- -

-

#Creating -a cursor object using the cursor() method

-

cursor -= conn.cursor()

-


-
- -

-

#Retrieving -single row

-

query -= '''SELECT * from hello_sensor'''

-


-
- -

-

#Executing -the query

-

cursor.execute(query)

-


-
- -

-

#Fetching -1st row from the table

-

result -= cursor.fetchone();

-

print(result)

-


-
- -

-

#Fetching -first -two -rows -from the table

-

result -= cursor.fetchmany(size=2);

-

print(result)

-


-
- -

-

#Fetching -all -rows -from the table

-

result -= cursor.fetchall();

-

print(result)

-


-
- -

-

#Closing -the connection

-

conn.close()

-


-
- -

-


-
- -

-

9.3Create -table

-

https://www.tutorialspoint.com/python_mysql/python_mysql_create_table.htm

-

import -mysql.connector

-


-
- -

-

#establishing -the connection

-

conn = -mysql.connector.connect(

-

user='root', -password='password', host='127.0.0.1', database='mydb'

-

)

-


-
- -

-

#Creating -a cursor object using the cursor() method

-

cursor -= conn.cursor()

-


-
- -

-

#Dropping -EMPLOYEE table if already exists.

-

cursor.execute("DROP -TABLE IF EXISTS EMPLOYEE")

-


-
- -

-

#Creating -table as per requirement

-

sql -='''CREATE TABLE EMPLOYEE(

-

FIRST_NAME -CHAR(20) NOT NULL,

-

LAST_NAME -CHAR(20),

-

AGE -INT,

-

SEX -CHAR(1),

-

INCOME -FLOAT

-

)'''

-

cursor.execute(sql)

-


-
- -

-

#Closing -the connection

-

conn.close()

-


-
- -

-

9.4Insert -data

-

https://www.tutorialspoint.com/python_mysql/python_mysql_insert_data.htm

-

import -mysql.connector

-

#establishing -the connection

-

conn = -mysql.connector.connect(

-

user='root', -password='password', host='127.0.0.1', database='mydb'

-

)

-

#Creating -a cursor object using the cursor() method

-

cursor -= conn.cursor()

-

# -Preparing SQL query to INSERT a record into the database.

-

insert_stmt -= (

-

"INSERT -INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)"

-

"VALUES -(%s, %s, %s, %s, %s)"

-

)

-

data = -('Ramya', 'Ramapriya', 25, 'F', 5000)

-

try:

-

# -Executing the SQL command

-

cursor.execute(insert_stmt, -data)

-

# -Commit your changes in the database

-

conn.commit()

-

except:

-

# -Rolling back in case of error

-

conn.rollback()

-

# -Closing the connection

-

conn.close()

-


-
- -

-


-
- -

-


-
- -

-

10Schedule -periodic RasPi reboot

-

https://raspberrypi.stackexchange.com/questions/2150/how-do-i-reboot-at-a-specific-time

-

https://smarthomepursuits.com/how-to-reboot-raspberry-pi-on-a-schedule/

-

$ sudo -crontab -e

-

>>>>> -choose nano editor

-

>>>>> -enter following command at end of file for daily -reboot -at 13:03:

-

03 13 * -* * /sbin/shutdown -r now

-


-
- -

-

Check -time in Linux commandline:

-

https://www.lifewire.com/display-date-time-using-linux-command-line-4032698

-

$ date

-


-
- -

-


-
- -

-


-
- -

-

11Install -KeePass

-

https://keepass.info/download.html

-

https://sourceforge.net/p/keepass/discussion/329220/thread/17d1bd26/

-

sudo -apt-add-repository ppa:jtaylor/keepass

-

sudo -apt-get update

-

sudo -apt-get install keepass2 -

-


-
- -

-


-
- -

-


-
- -

-

12Clean -the repository of downloaded packages

-

https://askubuntu.com/questions/634820/how-can-i-delete-ubuntu-temp-files-which-are-created-during-software-installatio

-

sudo -apt-get -autoclean

-

sudo -apt-get -clean

-


-
- -

-


-
- -

-


-
- -

-

13cleanup -a /var/log/journal in Linux

-


-
- -

-

How to -tell how much space is being taken?

-

$ -journalctl ---disk-usage

-


-
- -

-

Fix: -Option 3 (RECOMMENDED!):

-

$ -journalctl --vacuum-size=500M

-

This -will delete old log files until the directory reaches the threshold -size stipulated, in our case, 500M.

-


-
- -

-


-
- -

-


-
- -

-

14Change -permission of mounted drive

-

$ -sudo -chmod -R 770 /media/bora/Medien

-

sudo -mount -o rw,remount /media/bora/Medien

-


-
- -

-

https://askubuntu.com/questions/948416/changing-ownership-of-read-only-file-system-i-cant-move-delete-rename-any-f

-

$ mount --v | grep "^/" | awk '{print "\nPartition identifier: -" $1 "\n Mountpoint: " $3}'

-

$ sudo -mount -o remount,rw /dev/sda5 -/media/bora/Medien

-


-
- -

-


-
- -

-

If -you are on a dual boot system and getting the error related to the -read-only file system. One probable cause could be that your other -system is not correctly shut down and might be in hibernation or -sleep. So login to that system and shut it down properly and religion -to your Linux system. this resolved the issue in my system”

-


-
- -

-


-
- -

-


-
- -

-


-
- -

-


-
- -

-


- -

-


- -

-


- -

-


- -

-


- -

-


- -

-


- -

-


- -

-


- -

-


- -

-


- -

-


+test + +Clear snap folder: /var/lib/snapd/snaps +https://askubuntu.com/questions/1000177/is-the-snap-core-folder-needed +sudo apt purge snapd ubuntu-core-launcher squashfs-tools + + +https://unix.stackexchange.com/questions/130786/can-i-remove-files-in-var-log-journal-and-var-cache-abrt-di-usr +$ journalctl --disk-usage +journalctl --vacuum-size=500M + + +D3 with Python in Jupyter: +https://livingwithmachines.ac.uk/d3-javascript-visualisation-in-a-python-jupyter-notebook/ +https://nbviewer.jupyter.org/github/bokeh/bokeh-notebooks/blob/master/quickstart/quickstart.ipynb + + + + + + + +Install equalizer on Ubuntu 20.04 +https://ubuntu-mate.community/t/equalizer-for-ubuntu-20-04-lts/22218 +sudo apt install -y pulseeffects lsp-plugins + + + + + + +Execute JNLP files in Linux +https://linux-tips.com/t/execute-jnlp-files-in-linux/252 + +$ sudo apt-get install icedtea-netx +$ sudo apt-get install icedtea-plugin +$ javaws filename.jnlp + + +Take Screenshot +Druck +Shift + druck for selecting area + + + +Install writer2latex in Ubuntu +$ sudo apt update +$ sudo apt install writer2latex + +http://writer2latex.sourceforge.net/index15.html +Specific instructions for Ubuntu: To install Java and Java support in LibreOffice, open a terminal window and type +$ sudo apt-get install default-jre +$ sudo apt-get install libreoffice-java-common + + +https://superuser.com/questions/1192004/why-unable-to-install-writer2latex-1-4-on-ubuntu +try in command line +$ sudo apt-get insall libreoffice-writer2latex +if not working install java if not already installed +$ sudo apt-get install default-jre + + + +Latex topics in Ubuntu + +\usepackage{hyperref} +File `pdftexcmds.sty' not found. +tlmgr install pdftexcmds + +https://tex.stackexchange.com/questions/73016/how-do-i-install-an-individual-package-on-a-linux-system +$ which tlmgr +→/usr/bin/tlmgr +$ sudo /usr/bin/tlmgr install pdftexcmds + +Issue: “tlmgr: user mode not initialized, please read the documentation!” +https://tex.stackexchange.com/questions/137428/tlmgr-cannot-setup-tlpdb + $ tlmgr init-usertree + + + +https://tex.stackexchange.com/questions/158700/latex-cant-find-sty-files-altough-packages-are-installed-texlive-ubuntu-12?rq=1 +$ locate caption.sty + + +Latex export with writer2latex (v1.6.1) + • By using the following settings, a .tex file could be exported, but there were issues using \usepackage{hyperref} and \usepackage[pdftex]{graphicx} ==> these commands in the preamble had to be commented out or replaced by \usepackage{graphicx} + + + + + +interactive mode with Juptyer Notebooks +Issue: +@interact and @interactive decorators did not update figures/etc. + +Solution (not working): +https://stackoverflow.com/questions/36351109/ipython-notebook-ipywidgets-does-not-show +$ pip install ipywidgets +$ jupyter nbextension enable --py widgetsnbextension + + + + + + + + + + + + + + +Using Ctrl+V to paste unformatted text by default +https://superuser.com/questions/73450/using-ctrlv-to-paste-unformatted-text-by-default-in-openoffice-orgs-calc +You can also just switch the assigned keys from Paste to Paste Unformatted, and from Paste Unformatted to Paste. I've done this in version 6.4. I haven't tested the idea in Calc or any other module. +What you want to do is change the keystrokes that are associated with the “Paste Unformatted” and “Paste” commands. You do this using the Keyboard Customization tool. +Start by choosing Tools –> Customize. When the dialog box appears, select the “Keyboard” tab.  A dialog box containing 4 panels and some control buttons appears.  The top panel contains a list of every key the system allows modifying along with the command that key performs.  For example, pressing F2 starts a formula expression; F11 invokes the styles panel. + +In the Category panel, lower left corner, scroll down and highlight the Edit Category. +In the Function Panel, scroll down, and highlight Paste. The Keys panel displays "Ctrl+Shift+V". Highlight that keystroke and click the Delete button (upper right). Leave this Function unassigned for the moment. +Now highlight the Paste Unformatted Text item in the Function box. The Keys panel will display "Ctrl+V". Click Delete for this key. Now neither function has a keystroke associated with it. +To associate Ctrl+Shift+V with the Paste Unformatted Text Function, go to the Shortcut Keys panel and highlight the Ctrl+Shift+V option. Click the Modify button. "Ctrl+Shift+V" now appears in the Keys panel on the lower left. +Go back to the Paste option in the Function panel. Find "Ctrl+V" in the top Shortcut Keys panel, highlight it and press the Modify button on the right. "Ctrl+V" appears in the Keys panel on the lower left. +Click OK. Your two paste functions are now associated with the keystrokes in the way you want them. + + + + +lAdd repository and install from this source +Lutris (games for Linux) +https://lutris.net/downloads/ +$ sudo add-apt-repository ppa:lutris-team/lutris +$ sudo apt update +$ sudo apt install lutris + +install Epic Games Store from: https://lutris.net/games/epic-games-store/ + +Install game on Windows, but run it with Lutris & share savegames: +https://www.reddit.com/r/linux_gaming/comments/k0qxcj/is_it_possible_to_use_lutris_for_installed_games/ +so the comamnd would look like thsi if you're inside the wineprefix in the above location: +ls -s ./ /windows/c/Users/You-Handsome-Guy/AppData/MyGames/My-Awesome-Game-Saves/ +This way you should be able to play the game with shared save game on both systems just fine without making them interfering with each other except of the actual game files. + +Problem with missing fonts on UI buttons in Rimworld: +https://www.reddit.com/r/RimWorld/comments/oo9hbo/missing_fonts/ +solved by installing Arial fonts via winetricks + +where to find wine savegames, e.g. for RimWorld: +/home/bora/.wine/drive_c/users/bora/AppData/LocalLow/Ludeon Studios/RimWorld by Ludeon Studios + +Install Steam on Ubuntu +https://itsfoss.com/install-steam-ubuntu-linux/ +sudo apt install steam-installer + + + +Clear Spotify cache +https://superuser.com/questions/649208/clearing-spotify-cache-to-recover-disk-space +By default, Spotify limits its cache to 10% of your free space, which means the default setting should be okay—but if you've changed it, you could run into disk space problems. All you need to do is delete the files in the following folder (for your platform): +Windows: C:\Users\USERNAME\AppData\Local\Spotify\Storage +OS X: /Users/USERNAME/Library/Caches/com.spotify.client/Storage/ +Linux: ~/.cache/spotify/Storage/ + +Installed with Snap on Ubuntu this config file for me was found at ~/snap/spotify/current/.config/spotify/prefs + +Add or modify the line starting with storage.size to the number of megabytes you want the cache to use. For example: +storage.size=512 + + +activate standby mode for hdd on RaspberryPi +https://medium.com/@tamashudak/spin-down-hdd-with-raspberry-pi-using-hd-idle-7709e6c921f8 +https://maker-tutorials.com/raspberry-pi-festplatte-automatisch-standby-hdparm/ +https://ittweak.de/raspberry-pi-usb-fesplatte-in-standby-ruhemodus-idle-setzen/ +https://superuser.com/questions/937480/does-the-raspberry-pi-2-put-usb-external-drives-to-sleep-when-not-in-use-for-a-w + + +Install Tor browser +https://linuxize.com/post/how-to-install-tor-browser-on-ubuntu-20-04/ +Add the Tor browser launcher PPA repository : +$ sudo add-apt-repository ppa:micahflee/ppa +Install the Tor browser launcher package: +$ sudo apt update +$ sudo apt install torbrowser-launcher + +The Tor browser can be launched either from the command line by typing torbrowser-launcher or by clicking on the Tor Browser Launcher icon (Activities -> Tor Browser). + +If you want to uninstall the Tor browser, remove the installed package with the following command: +$ sudo apt remove torbrowser-launcher + +specify exit node: +https://www.wikihow.com/Set-a-Specific-Country-in-a-Tor-Browser +https://tor.stackexchange.com/questions/733/can-i-exit-from-a-specific-country-or-node + +need to edit torrc file located in following folder: +/home/bora/.local/share/torbrowser/tbb/x86_64/tor-browser_en-US/Browser/TorBrowser/Data/Tor + +add following line into file if not existing yet: +ExitNodes {TR} + +Write Linux image onto USB drive +Using balena etcher and link to image: +Ubuntu mirrors: https://launchpad.net/ubuntu/+cdmirrors + • copy link to one of the iso image, e.g. https://ftp-stud.hs-esslingen.de/pub/Mirrors/releases.ubuntu.com/21.10/ubuntu-21.10-desktop-amd64.iso + • paste link into balena GUI → +advantage of providing only link to iso and not download the image is that nothing has to be saved on the PC + + +Install and Uninstall software on Ubuntu +Kicad +Quick installation of kicad: +$ sudo apt-get update +$ sudo apt-get install kicad + +https://www.thelinuxfaq.com/ubuntu/ubuntu-17-04-zesty-zapus/kicad?type=uninstall +$ sudo apt-get remove kicad +Uninstall kicad including dependent package: $ sudo apt-get remove --auto-remove kicad +If you use with purge options to kicad package all the configuration and dependent packages will be removed: $ sudo apt-get purge kicad +If you use purge options along with auto remove, will be removed everything regarding the package, It's really useful when you want to reinstall again: $ sudo apt-get purge --auto-remove kicad + + +Blender +https://docs.blender.org/manual/en/latest/getting_started/installing/linux.html +Install from Snap +$ snap install blender + + + +Use YubiKey +Installation of yubikey manager +https://support.yubico.com/hc/en-us/articles/360016649039-Enabling-the-Yubico-PPA-on-Ubuntu +sudo add-apt-repository ppa:yubico/stable && sudo apt-get update +YubiKey Manager (CLI): sudo apt install yubikey-manager +YubiKey Personalization Tool: sudo apt install yubikey-personalization-gui +libpam-yubico: sudo apt install libpam-yubico +libpam-u2f: sudo apt install libpam-u2f + +alternatively: run the YubiKey manager AppImage! + + +Touch triggered OTP +https://developers.yubico.com/Developer_Program/Guides/Touch_triggered_OTP.html + + +Authentication with Mobile Platforms +https://developers.yubico.com/Mobile/ + +Applications supporting YubiKeys +https://www.yubico.com/de/works-with-yubikey/catalog/?sort=popular + +Ubuntu Linux Login Guide – U2F +https://support.yubico.com/hc/en-us/articles/360016649099-Ubuntu-Linux-Login-Guide-U2F + + +Secure Windows with strong authentication +https://www.yubico.com/products/computer-login-tools/ + +Yubico Login for Windows Configuration Guide +https://support.yubico.com/hc/en-us/articles/360013708460-Yubico-Login-for-Windows-Configuration-Guide + +Associating the YubiKey with Websites (Services) +https://support.yubico.com/hc/en-us/articles/360013778879-Associating-the-YubiKey-with-Websites-Services- + + +Yubico Authenticator +https://www.yubico.com/products/yubico-authenticator/ + + + +How to register your spare key +https://support.yubico.com/hc/en-us/articles/360021919459-How-to-register-your-spare-key- + +Using Your YubiKey with Authenticator Codes +https://support.yubico.com/hc/en-us/articles/360013789259-Using-Your-YubiKey-with-Authenticator-Codes + +Understanding YubiKey PINs +https://support.yubico.com/hc/en-us/articles/4402836718866-Understanding-YubiKey-PINs + +Basic YubiKey Troubleshooting +https://support.yubico.com/hc/en-us/articles/360013707540-Basic-YubiKey-Troubleshooting + + +Using Your YubiKey with KeePass +https://support.yubico.com/hc/en-us/articles/360013779759-Using-Your-YubiKey-with-KeePass +4d24a4ae6c32c56060d1f52d76f47aade44f885f + +KeeChallenge (A plugin for KeePass2 to add Yubikey challenge-response capability.) +https://richardbenjaminrush.com/keechallenge/ + + + + + +How to run an AppImage +https://appimage.org/ +Make it executable +$ chmod a+x Subsurface*.AppImage + +and run! +$ ./Subsurface*.AppImage + + + +Install KeePass +https://keepass.info/download.html +https://sourceforge.net/p/keepass/discussion/329220/thread/17d1bd26/ +sudo apt-add-repository ppa:jtaylor/keepass +sudo apt-get update +sudo apt-get install keepass2 + + + +Get root access for copying files to /usr/share/...? +https://askubuntu.com/questions/10435/get-root-access-for-copying-files-to-usr-share +/usr/ is owned by the root account so to write files in there you need to write them as root. Two methods (there are undoubtedly more but here are the two main ways for most users): + + 1. Press Alt+F2 to get a run dialogue and in that type gksu nautilus. This will open up a file browser window running as root. Copy your files across but be careful, you can nuke the system like this. + 2. A much more direct method is just loading up a terminal and writing: +sudo cp -R /path/to/files/you/want/copied/ /copy/to/this/path/ +(the -R is just there to recursively copy directories) + +If you ever want to fire off multiple commands as root without prepending them all with sudo you can run sudo -i or sudo su and you'll get a root terminal. But again, be careful what you do. + + +OR: +sudo gnome-terminal + + +OR: +https://www.how2shout.com/linux/open-ubuntu-file-manager-as-root-user/ +sudo nautilus + + + + + -

-


-

-


-

-


-

-


-

-


-

-


-

-


-

-


-

-


-

-


-

-


-

- - \ No newline at end of file