= How To Allow Remote Access MySQL/MariaDB/MYSQL Community

== Add New Rule to Firewalld

Open SQL port (3306) on FireWalld:

----
sudo firewall-cmd --permanent --zone=public --add-service=mysql
----

## OR ##

----
sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
----

== Restart firewalld.service

----
systemctl restart firewalld.service
----

== Editing Conf. Files:

Configuration files:

* MySQL           -> `/etc/my.cnf/` 
* MySQL Community -> `/etc/my.cnf.d/community-mysql-server.cnf`
* MariaDB         -> `/etc/my.conf`

NOTE: you can ensure that with the following command `rpm -qc [package]`.

Navigate to the line that begins with the bind-address directive. It will look like this:
you could set this directive to a wildcard IP address, either *, ::, or 0.0.0.0:

----
bind-address            = 0.0.0.0
----

After changing this line, save and close the file and then restart the MySQL service:

----
sudo systemctl restart {mysqld|mariadb}
----

== Creating a USER

----
CREATE USER 'your_username'@'host_ip_addr' IDENTIFIED BY 'your_password';
----

NOTE: Replace your_username and your_password depending on what you want the username and password to be. Here, host_ip_addr is the hostname or IP address of the computer from where you want to connect to the MySQL/MariaDB server. You can also use % as host_ip_addr if you want to connect from any computer. It can also be something like 192.168.2.% if you want to connect from computers from the IP range 192.168.2.1 – 192.168.2.254.

== Allow Access

----
GRANT ALL PRIVILEGES ON *.* TO 'your_username'@'%';
  IDENTIFIED BY 'my-new-password' WITH GRANT OPTION;
----

#OR

It is common for people to want to create a "root" user that can connect from anywhere, so as an example, we'll do just that, but to improve on it we'll create 
a root user that can connect from anywhere on the local area network (LAN)

----
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.100.%' 
  IDENTIFIED BY 'my-new-password' WITH GRANT OPTION;
----

----
FLUSH PRIVILEGES;
----

== Connecting

----
mysql -u [USER] -h [IP] -p
----
