在CentOS 6上安装MariaDB 10.0

MariaDB是MySQL的社区开发的分支,旨在成为一个增强的,可替代的替代品。以下教程将指导您完成...

在CentOS 6上安装MariaDB 10.0

MariaDB是一个社区开发的MySQL分支,旨在成为增强的替代品。 它是GNU GPL许可的,由MySQL的原始开发人员带领,如Monty Widenius。 现在,MariaDB似乎很活跃,但是它们的市场份额远低于MySQL。 由于MySQL拥有的巨大动力,仍然有很多社区,但有一个明显的趋势,开源世界中的大多数新活动都围绕着MariaDB,大多数Linux发行版随着MariaDB作为MySQL兼容数据库发布。 以下教程将指导您完成在CentOS 6上安装MariaDB 10.0的步骤。CentOS 6太旧了? 是的,这是真的,但CentOS 6仍然支持到2020年,安全更新,还有很多服务器使用它,但可能需要一个较新的MySQL兼容数据库,例如,托管最新的CMS系统。

先决条件

  1. 这些说明用于在单个CentOS 6节点上安装MariaDB 10.0(没有安装MySQL)。
  2. 由于默认的MariaDB安装使用/ var / lib / mysql目录来存储数据库,请记住与/ var关联的分区或逻辑卷需要足够的空间。
  3. 配置文件备份(仅替换) :同样,如果要更换当前安装,建议您复制当前的MySQL / MariaDB配置文件; 该文件可以 在Debian / Ubuntu系统上的 /etc/my.cnf 和CentOS系统上的 /etc/my.cnf 在CentOS上,MariaDB包将在卸载时删除配置文件,因此这一步在这些系统上尤其重要。
  4. 本教程的其余部分将假设您使用root用户帐户或具有sudo权限的用户帐户连接到您的服务器。 要从另一个帐户输入根shell,请运行:

sudo su

第1步。   设置MariaDB资源库

您应确保可用的包是最新的。 为此,只需在终端中运行以下命令即可:

yum -y update

Loaded plugins: fastestmirror
base | 3.6 kB 00:00
extras | 3.4 kB 00:00
updates | 3.4 kB 00:00
(1/4): base/7/x86_64/group_gz | 155 kB 00:00
(2/4): extras/7/x86_64/primary_db | 101 kB 00:00
(3/4): updates/7/x86_64/primary_db | 3.1 MB 00:00
(4/4): base/7/x86_64/primary_db | 5.3 MB 00:04
Determining fastest mirrors
* base: mirror.net.cen.ct.gov
* extras: mirror.es.its.nyu.edu
* updates: mirror.atlanticmetro.net
Resolving Dependencies
--> Running transaction check
---> Package openssl.x86_64 1:1.0.1e-51.el7_2.2 will be updated
---> Package openssl.x86_64 1:1.0.1e-51.el7_2.4 will be an update
---> Package openssl-libs.x86_64 1:1.0.1e-51.el7_2.2 will be updated
---> Package openssl-libs.x86_64 1:1.0.1e-51.el7_2.4 will be an update
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Updating:
openssl x86_64 1:1.0.1e-51.el7_2.4 updates 711 k
openssl-libs x86_64 1:1.0.1e-51.el7_2.4 updates 951 k
Transaction Summary
================================================================================
Upgrade 2 Packages
Total download size: 1.6 M
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/2): openssl-1.0.1e-51.el7_2.4.x86_64.rpm | 711 kB 00:00
(2/2): openssl-libs-1.0.1e-51.el7_2.4.x86_64.rpm | 951 kB 00:00
--------------------------------------------------------------------------------
Total 2.3 MB/s | 1.6 MB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Updating : 1:openssl-libs-1.0.1e-51.el7_2.4.x86_64 1/4
Updating : 1:openssl-1.0.1e-51.el7_2.4.x86_64 2/4
Cleanup : 1:openssl-1.0.1e-51.el7_2.2.x86_64 3/4
Cleanup : 1:openssl-libs-1.0.1e-51.el7_2.2.x86_64 4/4
Verifying : 1:openssl-libs-1.0.1e-51.el7_2.4.x86_64 1/4
Verifying : 1:openssl-1.0.1e-51.el7_2.4.x86_64 2/4
Verifying : 1:openssl-1.0.1e-51.el7_2.2.x86_64 3/4
Verifying : 1:openssl-libs-1.0.1e-51.el7_2.2.x86_64 4/4
Updated:
openssl.x86_64 1:1.0.1e-51.el7_2.4 openssl-libs.x86_64 1:1.0.1e-51.el7_2.4
Complete!

现在,添加MariaDB CentOS存储库。

用nano创建一个新的MariaDB存储库文件/etc/yum.repos.d/mariadb.repo

nano /etc/yum.repos.d/MariaDB.repo

并粘贴以下文本为CentOS-6 32位:

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.0/centos6-x86
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

或粘贴本文为CentOS-6 64位:

name = MariaDB
baseurl = http://yum.mariadb.org/10.0/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

然后按Ctrl + X退出并保存文件,然后按Y.

如上图所示,它包含一个gpgkey行,用于自动获取MariaDB用于签署存储库的GPG密钥。 此密钥需要验证软件包下载的完整性。

注意 :要查找应该与MariaDB存储库生成器一起使用哪个repo

第2步 - 使用Yum安装MariaDB 10

删除MySQL(仅在安装时)

我建议完全删除系统上可能安装的任何旧的MySQL服务器版本,然后升级到MariaDB而不会有冲突。

要检查MySQL是否已经安装,请执行以下命令:

rpm -qa 'mysql*'

如有必要,您可以使用以下命令在安装MariaDB之前删除发现的MySQL软件包:

yum list installed | grep mysql

yum remove mysql-client mysql-server mysql-common mysql-devel

rm -Rf /var/lib/mysql

安装MariaDB 10

对于标准服务器安装,您需要至少下载并安装 客户端 共享 服务器 RPM文件。

yum install MariaDB-server MariaDB-client -y

您应该会看到以下输出:

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.net.cen.ct.gov
* extras: mirror.es.its.nyu.edu
* updates: mirror.atlanticmetro.net
Resolving Dependencies
--> Running transaction check
---> Package mariadb.x86_64 1:5.5.44-2.el7.centos will be installed
--> Processing Dependency: perl(Sys::Hostname) for package: 1:mariadb-5.5.44-2.el7.centos.x86_64
--> Processing Dependency: perl(IPC::Open3) for package: 1:mariadb-5.5.44-2.el7.centos.x86_64
--> Processing Dependency: perl(Getopt::Long) for package: 1:mariadb-5.5.44-2.el7.centos.x86_64
--> Processing Dependency: perl(File::Temp) for package: 1:mariadb-5.5.44-2.el7.centos.x86_64
--> Processing Dependency: perl(Fcntl) for package: 1:mariadb-5.5.44-2.el7.centos.x86_64
--> Processing Dependency: perl(Exporter) for package: 1:mariadb-5.5.44-2.el7.centos.x86_64
--> Processing Dependency: /usr/bin/perl for package: 1:mariadb-5.5.44-2.el7.centos.x86_64
---> Package mariadb-server.x86_64 1:5.5.44-2.el7.centos will be installed
--> Processing Dependency: perl-DBI for package: 1:mariadb-server-5.5.44-2.el7.centos.x86_64
--> Processing Dependency: perl-DBD-MySQL for package: 1:mariadb-server-5.5.44-2.el7.centos.x86_64
--> Processing Dependency: perl(File::Path) for package: 1:mariadb-server-5.5.44-2.el7.centos.x86_64
--> Processing Dependency: perl(Data::Dumper) for package: 1:mariadb-server-5.5.44-2.el7.centos.x86_64
--> Processing Dependency: perl(DBI) for package: 1:mariadb-server-5.5.44-2.el7.centos.x86_64
--> Processing Dependency: libaio.so.1(LIBAIO_0.4)(64bit) for package: 1:mariadb-server-5.5.44-2.el7.centos.x86_64
--> Processing Dependency: libaio.so.1(LIBAIO_0.1)(64bit) for package: 1:mariadb-server-5.5.44-2.el7.centos.x86_64
--> Processing Dependency: libaio.so.1()(64bit) for package: 1:mariadb-server-5.5.44-2.el7.centos.x86_64
[...]
Installed:
mariadb.x86_64 1:5.5.44-2.el7.centos mariadb-server.x86_64 1:5.5.44-2.el7.centos
Dependency Installed:
libaio.x86_64 0:0.3.109-13.el7 perl.x86_64 4:5.16.3-286.el7
perl-Carp.noarch 0:1.26-244.el7 perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7
perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7 perl-DBD-MySQL.x86_64 0:4.023-5.el7
perl-DBI.x86_64 0:1.627-4.el7 perl-Data-Dumper.x86_64 0:2.145-3.el7
perl-Encode.x86_64 0:2.51-7.el7 perl-Exporter.noarch 0:5.68-3.el7
perl-File-Path.noarch 0:2.09-2.el7 perl-File-Temp.noarch 0:0.23.01-3.el7
perl-Filter.x86_64 0:1.49-3.el7 perl-Getopt-Long.noarch 0:2.40-2.el7
perl-HTTP-Tiny.noarch 0:0.033-3.el7 perl-IO-Compress.noarch 0:2.061-2.el7
perl-Net-Daemon.noarch 0:0.48-5.el7 perl-PathTools.x86_64 0:3.40-5.el7
perl-PlRPC.noarch 0:0.2020-14.el7 perl-Pod-Escapes.noarch 1:1.04-286.el7
perl-Pod-Perldoc.noarch 0:3.20-4.el7 perl-Pod-Simple.noarch 1:3.28-4.el7
perl-Pod-Usage.noarch 0:1.63-3.el7 perl-Scalar-List-Utils.x86_64 0:1.27-248.el7
perl-Socket.x86_64 0:2.010-3.el7 perl-Storable.x86_64 0:2.45-3.el7
perl-Text-ParseWords.noarch 0:3.29-4.el7 perl-Time-HiRes.x86_64 4:1.9725-3.el7
perl-Time-Local.noarch 0:1.2300-2.el7 perl-constant.noarch 0:1.27-2.el7
perl-libs.x86_64 4:5.16.3-286.el7 perl-macros.x86_64 4:5.16.3-286.el7
perl-parent.noarch 1:0.225-244.el7 perl-podlators.noarch 0:2.5.1-3.el7
perl-threads.x86_64 0:1.87-4.el7 perl-threads-shared.x86_64 0:1.43-6.el7
Complete!

安装过程完成后,您可以启动MariaDB。 请注意,MariaDB服务名称为“mysql”,因此下面的命令不是打字错误。

service mysql start

Starting MySQL. SUCCESS!

运行此命令以在每次启动时启动MariaDB。

chkconfig mysql on

您可以使用以下命令检查MariaDB安装的版本:

mysql -V

mysql Ver 15.1 Distrib 10.0.24-MariaDB, for Linux (x86_64) using readline 5.1

到现在为止还挺好!

第3步 - 保护MariaDB

默认情况下,MariaDB没有加固。 您可以使用mysql_secure_installation脚本来保护MariaDB。 您应该仔细阅读以下步骤,他们将设置root密码,删除匿名用户,禁止远程root登录,并删除测试数据库并访问安全的MariaDB。 建议所有管理员运行此脚本,以确保您的MySQL安装是安全的。 不幸的是,脚本是交互式的,并提示输入root密码,因此它不能轻易被包含在构建过​​程中。 建议您对这些选项回答“ yes 。 您可以在MariaDB知识库中阅读有关脚本的更多信息。

调用没有参数的mysql_secure_installation:

mysql_secure_installation

这将启动一个适用于问答方法的过程,您将能够在MariaDB安装上应用一些自定义。 以下是将要使用的一些建议选项的例子。

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

为了登录到MariaDB来保护它,我们需要root用户的当前密码。 如果您刚刚安装了MariaDB,并且尚未设置root密码,那么默认密码将为空,因此您只需按Enter键即可。

Enter current password for root (enter for none):  
OK, successfully used password, moving on...

设置root密码确保没有人能够在没有适当授权的情况下登录到MariaDB root用户。

Set root password? [Y/n] y
New password: ENTER YOUR PASSWORD
Re-enter new password: REPEAT YOUR PASSWORD
Password updated successfully!
Reloading privilege tables..
... Success!

默认情况下,MariaDB安装具有匿名用户,允许任何人登录到MariaDB,而不必为其创建用户帐户。 这仅用于测试,并使安装变得更平滑。 在移动到生产环境之前,您应该删除匿名登录。

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

通常,root只能被允许从'localhost'连接。 这确保有人无法通过网络猜测root密码。

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

默认情况下,MariaDB附带一个名为“test”的数据库,任何人都可以访问。 这也仅用于测试,在进入生产环境之前应该将其删除。

Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!

重新加载权限表将确保到目前为止所做的所有更改将立即生效。

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!

现在,您必须重新启动MariaDB。

service mysql restart

Shutting down MySQL.. SUCCESS!
Starting MySQL. SUCCESS!

而已。 登录到MariaDB服务器并检查旧的数据库和表(如果您从MySQL升级)。

要连接到MariaDB,请运行以下给定的命令。

mysql -u root -p

在这种情况下,我 使用 -u 标志 指定了用户 root ,然后使用 -p 标志,因此MySQL提示输入密码。

当被问及时,您只需输入您使用mysql_secure_installation 脚本分配的密码

然后,您将看到一个欢迎标题和MariaDB提示。

有关 MariaDB 命令 的列表 ,请 在promt 中键入help或\ h

General information about MariaDB can be found at
http://mariadb.org
List of all MySQL commands:
Note that all text commands must be first on line and end with ';'
? (\?) Synonym for `help'.
clear (\c) Clear the current input statement.
connect (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter.
edit (\e) Edit command with $EDITOR.
ego (\G) Send command to mysql server, display result vertically.
exit (\q) Exit mysql. Same as quit.
go (\g) Send command to mysql server.
help (\h) Display this help.
nopager (\n) Disable pager, print to stdout.
notee (\t) Don't write into outfile.
pager (\P) Set PAGER [to_pager]. Print the query results via PAGER.
print (\p) Print current command.
prompt (\R) Change your mysql prompt.
quit (\q) Quit mysql.
rehash (\#) Rebuild completion hash.
source (\.) Execute an SQL script file. Takes a file name as an argument.
status (\s) Get status information from the server.
system (\!) Execute a system shell command.
tee (\T) Set outfile [to_outfile]. Append everything into given outfile.
use (\u) Use another database. Takes database name as argument.
charset (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.
warnings (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.
For server side help, type 'help contents'

要查看您创建的当前数据库的列表,请使用以下命令:

SHOW DATABASES;

+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.01 sec)

默认情况下,“information_schema”,“performance_schema”和“mysql”数据库将被设置,并包含MariaDB服务器的系统数据,除非您知道自己在做什么,否则这些表应该保留。

检查数据库服务器的状态:

status;

mysql Ver 15.1 Distrib 5.5.44-MariaDB, for Linux (x86_64) using readline 5.1
Connection id: 14
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server: MariaDB
Server version: 5.5.44-MariaDB MariaDB Server
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1
Db characterset: latin1
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 47 min 9 sec
Threads: 1 Questions: 32 Slow queries: 0 Opens: 4 Flush tables: 2 Open tables: 30 Queries per second avg: 0.011
--------------
MariaDB [(none)]>

创建数据库不会选择它来使用; 你必须明确这样做。 要创建当前数据库,请使用以下语句:

USE howtoing

您的数据库只需要创建一次,但是每次开始MySQL会话时都必须选择它。 您可以通过发出如示例所示的USE语句来执行此操作。 或者,您可以在调用MySQL时在命令行中选择数据库。 只需在您可能需要提供的任何连接参数之后指定其名称。 例如:

mysql -h host -u user -p howtoing

注意: 所有数据库名称,表名称,表字段名称区分大小写。 所以你必须使用正确的名字,同时给出任何SQL命令。

默认情况下,通过命令行运行的所有MySQL操作都在当前选定的数据库上执行。 当前选择哪个数据库? 要找出以下命令的问题:

SELECT database();

您的结果可能与此类似:

+------------+
| database() |
+------------+
| NULL |
+------------+
1 row in set (0.00 sec)
MariaDB [(none)]>

结果为null ,表示当前未选择数据库。

更多信息要遵循

您可能希望查询以下资源以获取有关此主题的更多信息。 虽然这些提供是希望它们有用的,但请注意,我们不能保证外部托管材料的准确性或及时性。