# Setting up a MySQL Server ## Packages 1. [mariadb-server][Mariadb Site] 2. [mysql-server-8.0][MySQL Site] (included in mariadb-server) 3. [ufw] ## Installation In my situation I am installing MySQL server on a tower with [Ubuntu Server 20.04][Ubuntu Server Download] I have 3 things I know I will need to do in order to have a successful installation. ### Install Mariadb Using the follwing command: sudo apt install mariadb-server I install mariadb/mysql to my system. ### Configure host-side firewall From here using ufw (uncomplicated firewall) I need to configure the firewall to only respond to requests from my public ip address. sudo ufw allow for [public ip address] to any port 3306 ### Setting up a user on MySQL After creating a database and creating a few tables, I created a user and gave the user access to the database and it's tables. CREATE DATABASE test_database; USE test_database; CREATE TABLE IF NOT EXIST test_table( var1 TEXT NOT NULL, var2 INT AUTOINCREMENT, ); CREATE USER 'user'@'ip address' IDENTIFIED BY Password('password'); GRANT ALL PRIVILEGES ON 'test_database'.* TO 'user'@'ip address'; FLUSH PRIVILEGES; ## Conclusion By using the user credintials that I created in my MySQL server I can now use modules like PyMySQL, or SqlAlchemy in my python projects in the future. [MySQL Site]: k [Ubuntu Server Download]: https://ubuntu.com/download/server