LL 1: Updating System Packages
Before installing any new software, ensure that your system packages are up to date:
dnf update -y
ShellCopy
Step 2: Installing MariaDB
MariaDB is available in the default AlmaLinux repositories. Install it using the following command:
dnf install mariadb-server -y
ShellCopy
Once the installation is complete, start the MariaDB service:
systemctl start mariadb
ShellCopy
Enable MariaDB to start on boot:
systemctl enable mariadb
[root@www ~]# vi /etc/my.cnf.d/charset.cnf# create new# set default charaset# if not set, default is [latin1]# for the case of 4 bytes UTF-8, specify [utf8mb4][mysqld]character-set-server = utf8mb4[client]default-character-set = utf8mb4[root@www ~]# systemctl enable --now mariadb # mysql -V [2]If Firewalld is running and also you allow to access MariaDB Server from remote Hosts, allow service. MariaDB uses [3306/TCP].[root@www ~]# firewall-cmd --add-service=mysqlsuccess[root@www ~]# firewall-cmd --runtime-to-permanentsuccess[3]Creating the MariaDB Repository File
To install the MariaDB server, you need to create a MariaDB repository configuration file. Start by opening a terminal and running the following command to create the repository file:
vi /etc/yum.repos.d/mariadb.repo
This command will open a new file in the vi editor. Copy and paste the following configuration into the file:
# MariaDB 10.11 AlmaLinux repository list - created [current date]# https://mariadb.org/download/[mariadb]name = MariaDBbaseurl = https://mirror.23m.com/mariadb/yum/10.11/almalinux/$releasever/$basearchmodule_hotfixes = 1gpgkey = https://mirror.23m.com/mariadb/yum/RPM-GPG-KEY-MariaDBgpgcheck = 1Save and exit the file by pressingEsc, typing:wq, and hittingEnter.
[root@www ~]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!In order to log into MariaDB to secure it, we'll need the currentpassword for the root user. If you've just installed MariaDB, andhaven't set the root password yet, you should just press enter here.Enter current password for root (enter for none):OK, successfully used password, moving on...Setting the root password or using the unix_socket ensures that nobodycan log into the MariaDB root user without the proper authorisation.You already have your root account protected, so you can safely answer 'n'.# Switch to [unix_socket] authentication or not# [unix_socket] auth is enabled for root user by default even if you select [No]Switch to unix_socket authentication [Y/n] n ... skipping.You already have your root account protected, so you can safely answer 'n'.# set MariaDB root password or not# [unix_socket] authentication is enabled by default, but# if you set root password, it's also possible to login with password authentication.# if not set root password, only OS root user can login as MariaDB root userChange the root password? [Y/n] n ... skipping.By default, a MariaDB installation has an anonymous user, allowing anyoneto log into MariaDB without having to have a user account created forthem. This is intended only for testing, and to make the installationgo a bit smoother. You should remove them before moving into aproduction environment.# remove anonymous usersRemove anonymous users? [Y/n] y ... Success!Normally, root should only be allowed to connect from 'localhost'. Thisensures that someone cannot guess at the root password from the network.# disallow root login remotelyDisallow root login remotely? [Y/n] y ... Success!By default, MariaDB comes with a database named 'test' that anyone canaccess. This is also intended only for testing, and should be removedbefore moving into a production environment.# remove test databaseRemove test database and access to it? [Y/n] y - Dropping test database... ... Success! - Removing privileges on test database... ... Success!Reloading the privilege tables will ensure that all changes made so farwill take effect immediately.# reload privilege tablesReload privilege tables now? [Y/n] y ... Success!Cleaning up...All done! If you've completed all of the above steps, your MariaDBinstallation should now be secure.Thanks for using MariaDB!# connect to MariaDB with root
[root@www ~]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.Your MariaDB connection id is 9Server version: 10.5.13-MariaDB MariaDB ServerCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.# [Unix_Socket] authentication is enabled by defaultMariaDB [(none)]> show grants for root@localhost; +-----------------------------------------------------------------------------------------------------------------------------------------+| Grants for root@localhost |+-----------------------------------------------------------------------------------------------------------------------------------------+| GRANT ALL PRIVILEGES ON *.* TO `root`@`localhost` IDENTIFIED VIA mysql_native_password USING 'invalid' OR unix_socket WITH GRANT OPTION || GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION |+-----------------------------------------------------------------------------------------------------------------------------------------+2 rows in set (0.000 sec)# show user listMariaDB [(none)]> select user,host,password from mysql.user; +-------------+-----------+----------+| User | Host | Password |+-------------+-----------+----------+| mariadb.sys | localhost | || root | localhost | invalid || mysql | localhost | invalid |+-------------+-----------+----------+3 rows in set (0.001 sec)# show database listMariaDB [(none)]> show databases; +--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema |+--------------------+3 rows in set (0.000 sec)# create test databaseMariaDB [(none)]> create database test_database; Query OK, 1 row affected (0.000 sec)# create test table on test databaseMariaDB [(none)]> create table test_database.test_table (id int, name varchar(50), address varchar(50), primary key (id)); Query OK, 0 rows affected (0.108 sec)# insert data to test tableMariaDB [(none)]> insert into test_database.test_table(id, name, address) values("001", "CentOS", "Hiroshima"); Query OK, 1 row affected (0.036 sec)# show test tableMariaDB [(none)]> select * from test_database.test_table; +----+--------+-----------+| id | name | address |+----+--------+-----------+| 1 | CentOS | Hiroshima |+----+--------+-----------+1 row in set (0.000 sec)# delete test databaseMariaDB [(none)]> drop database test_database; Query OK, 1 row affected (0.111 sec)MariaDB [(none)]> exitBye------------------Password-------------------- MySQL root user by running the following command: # mysqlMySQL shell to set the password for the root user > ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourPassword12!';> exitRun the MySQL secure installation # mysql_secure_installationConfigure MySQL# mysql -u root -pto delete all data of MariaDB and initialize it, run like follows [4]
[root@www ~]# systemctl stop mariadb
[root@www ~]# rm -rf /var/lib/mysql/*
[root@www ~]# mysql_install_db --datadir=/var/lib/mysql --user=mysql
[root@www ~]# systemctl start mariadb
REMOVE# dnf remove mariadb mariadb-server -y# rm -rf /var/lib/mysql # rm /etc/my.cnf LL