在CentOS 7 CentOS 8上安装MariaDB 10.5

时间:2020-02-23 14:32:17  来源:igfitidea点击:

在本文中,我们将研究如何在CentOS 8上安装MariaDB 10.5. CentOS 7 Linux机器。 MariaDB是具有巨大社区支持的MySQL关系数据库管理系统的社区分支。 MariaDB 10.5的稳定版本已于2017年6月发布,并且将受支持直到2025年6月。我们可以从更改页面上查看MariaDB 10.5的所有新功能。在GNU通用公共许可证版本2的条件下,可以免费使用该软件。

如果我们要从另一个版本(如10.4)进行升级,请查看官方升级教程,并注意两个版本的MariaDB之间的差异。这对于已使用自定义变量调整数据库并确保交易效率的生产用例非常重要。

在CentOS 7 CentOS 8上安装MariaDB 10.5

MariaDB团队为维护的存储库提供了针对各种Linux版本的最新软件包。对于CentOS,最好使用YUM存储库。

添加MariaDB YUM存储库

运行以下命令以将MariaDB提供的存储库添加到CentOS服务器。

将存储库添加到CentOS 8:

sudo tee /etc/yum.repos.d/mariadb.repo<<EOF
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.5/centos8-amd64
module_hotfixes=1
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF

将存储库添加到CentOS 7:

sudo tee /etc/yum.repos.d/mariadb.repo<<EOF
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.5/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF

通过更新缓存来确认存储库正在运行。

sudo yum makecache

列出可用的存储库:

$sudo yum repolist
repo id                                                                    repo name
AppStream                                                                  CentOS-8 - AppStream
BaseOS                                                                     CentOS-8 - Base
extras                                                                     CentOS-8 - Extras
mariadb                                                                    MariaDB

在CentOS 7 CentOS 8上安装MariaDB 10.5

添加存储库并确认其正常运行后,我们可以继续在CentOS 8/CentOS 7 Linux机器上安装MariaDB 10.5.

sudo yum install MariaDB-server MariaDB-client

我们可以检查要安装的软件包列表,并同意是否可以安装。

.....
Installing weak dependencies:
 perl-IO-Socket-IP                         noarch                    0.39-5.el8                                              AppStream                     47 k
 perl-IO-Socket-SSL                        noarch                    2.066-4.el8                                             AppStream                    297 k
 perl-Mozilla-CA                           noarch                    20150104-7.el8                                          AppStream                     15 k
Enabling module streams:
 perl                                                                5.26                                                                                      
 perl-DBI                                                            1.641                                                                                     

Transaction Summary
================================================================================================================================================================
Install  54 Packages

Total download size: 67 M
Installed size: 298 M
Is this ok [y/N]: y

在出现提示时,还同意导入GPG密钥。

.....
Importing GPG key 0x1BB943DB:
 Userid     : "MariaDB Package Signing Key <theitroad@localhost>"
 Fingerprint: 1993 69E5 404B D5FC 7D2F E43B CBCB 082A 1BB9 43DB
 From       : https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
Is this ok [y/N]: y

RPM软件包详细信息:

$rpm -qi  MariaDB-server
Name        : MariaDB-server
Version     : 10.5.4
Release     : 1.el8
Architecture: x86_64
Install Date: Sun 28 Jun 2017 07:21:20 PM CEST
Group       : Applications/Databases
Size        : 132807324
License     : GPLv2
Signature   : DSA/SHA1, Tue 23 Jun 2017 11:03:04 PM CEST, Key ID cbcb082a1bb943db
Source RPM  : MariaDB-server-10.5.4-1.el8.src.rpm
Build Date  : Tue 23 Jun 2017 06:59:51 PM CEST
Build Host  : rhel8-amd64
Relocations : (not relocatable)
Vendor      : MariaDB Foundation
URL         : http://mariadb.org
....

在CentOS 7 CentOS 8上启动MariaDB服务

CentOS 8和CentOS 7均使用Systemd初始化系统。我们可以使用systemctl命令启动服务,如下所示。

sudo systemctl start mariadb

要使服务器重新启动时能够启动服务,请使用以下命令:

$sudo systemctl enable mariadb
Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /usr/lib/systemd/system/mariadb.service.

使用systemctl status命令检查服务状态:

$systemctl status mariadb
● mariadb.service - MariaDB 10.5.4 database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/mariadb.service.d
           └─migrated-from-my.cnf-settings.conf
   Active: active (running) since Sun 2017-06-28 19:34:56 CEST; 1min 35s ago
     Docs: man:mariadbd(8)
           https://mariadb.com/kb/en/library/systemd/
 Main PID: 4328 (mariadbd)
   Status: "Taking your SQL requests now..."
    Tasks: 9 (limit: 24392)
   Memory: 67.7M
   CGroup: /system.slice/mariadb.service
           └─4328 /usr/sbin/mariadbd

Jun 28 19:34:56 centos.theitroad.local mariadbd[4328]: 2017-06-28 19:34:56 0 [Note] InnoDB: 10.5.4 started; log sequence number 45041; transaction id 21
Jun 28 19:34:56 centos.theitroad.local mariadbd[4328]: 2017-06-28 19:34:56 0 [Note] Plugin 'FEEDBACK' is disabled.
Jun 28 19:34:56 centos.theitroad.local mariadbd[4328]: 2017-06-28 19:34:56 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
Jun 28 19:34:56 centos.theitroad.local mariadbd[4328]: 2017-06-28 19:34:56 0 [Note] InnoDB: Buffer pool(s) load completed at 200628 19:34:56
Jun 28 19:34:56 centos.theitroad.local mariadbd[4328]: 2017-06-28 19:34:56 0 [Note] Server socket created on IP: '::'.
Jun 28 19:34:56 centos.theitroad.local mariadbd[4328]: 2017-06-28 19:34:56 0 [Note] Reading of all Master_info entries succeeded
Jun 28 19:34:56 centos.theitroad.local mariadbd[4328]: 2017-06-28 19:34:56 0 [Note] Added new Master_info '' to hash table
Jun 28 19:34:56 centos.theitroad.local mariadbd[4328]: 2017-06-28 19:34:56 0 [Note] /usr/sbin/mariadbd: ready for connections.
Jun 28 19:34:56 centos.theitroad.local mariadbd[4328]: Version: '10.5.4-MariaDB'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MariaDB Server
Jun 28 19:34:56 centos.theitroad.local systemd[1]: Started MariaDB 10.5.4 database server.
...

如果我们需要网络中的其他系统访问数据库服务器,请允许端口3306:

sudo firewall-cmd --add-service=mysql --permanent
sudo firewall-cmd --reload

为了使远程连接正常工作,该服务应侦听IP地址,而不是localhost环回接口。

# Listen on specific IP address in the server
bind-address=172.21.200.12

# Listen on all available interfaces
bind-address=0.0.0.0

在CentOS 7 CentOS 8上保护MariaDB数据库

提供了用于强化MariaDB数据库服务器的脚本。该脚本可:设置root密码删除匿名数据库用户禁止以root用户身份登录远程数据库删除测试数据库

要启动数据库强化过程,请运行以下命令。

$sudo 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 current
password for the root user. If you've just installed MariaDB, and
haven'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 nobody
can 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 [Y/n] y
Enabled successfully!
Reloading privilege tables..
 ... Success!

You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] y

New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove 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 far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

以root用户身份(不输入密码)测试登录名:

$mysql -u root <ENTER>

我们应该收到拒绝访问错误:

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

现在以root用户身份尝试并提供密码:

$mysql -u root -p
Enter password: <ENTER-PASSWORD>
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 24
Server version: 10.5.4-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> SELECT VERSION();
+----------------+
| VERSION()      |
+----------------+
| 10.5.4-MariaDB |
+----------------+
1 row in set (0.001 sec)

MariaDB [(none)]> QUIT
Bye