在 CentOS / RedHat 上安装和配置 MariaDB MySQL 的 6 个步骤
从 CentOS 7 开始,您将不会在 yum 存储库中看到名为 mysql-server 的包。
现在这个包被称为 mariadb-server。
MariaDB 是原始 MySQL 数据库的一个分支。就像最初的 MySQL 一样,MariaDB 也是开源的,由开源社区开发,由 MariaDB 公司维护和支持。
从我们的角度来看,只更改了包名。MariaDB 仍然是 MySQL,并且所有 mysql 命令行实用程序的名称仍然完全相同,包括名为 mysql 的命令。
本教程逐步解释了如何在基于 CentOS 或 RedHat 的 Linux 发行版上安装和配置 MariaDB。
1. MariaDB MySQL 包
以下是三个主要的 MariaDB 包:
- mariadb-5.5.52-1.el7.x86_64 - 这包含几个 MySQL 客户端程序和实用程序。
- mariadb-server-5.5.52-1.el7.x86_64 – 这是主要的 MariaDB MySQL 数据库服务器。
- mariadb-libs-5.5.52-1.el7.x86_64 – 这包含客户端程序接口所需的共享库。
CentOS 7 yum 存储库中可用的 MariaDB 服务器的当前版本为 5.5.52,如下所示。
# yum info mariadb-server
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: repos-va.psychz.net
* extras: linux.cc.lehigh.edu
* updates: mirror.us.leaseweb.net
Available Packages
Name : mariadb-server
Arch : x86_64
Epoch : 1
Version : 5.5.52
Release : 1.el7
Size : 11 M
Repo : base/7/x86_64
2. 安装 MariaDB MySQL 服务器
使用 yum install 安装 MariaDB MySQL 服务器包,如下所示。
# yum install mariadb-server
在这种情况下,在这台服务器上,它已经安装了 mariadb-server 以及以下依赖包。
- mariadb-server.x86_64 1:5.5.52-1.el7
- mariadb-libs.x86_64 1:5.5.52-1.el7
- mariadb.x86_64 1:5.5.52-1.el7
- libaio.x86_64 0:0.3.109-13.el7
- perl-DBD-MySQL.x86_64 0:4.023-5.el7
- perl-DBI.x86_64 0:1.627-4.el7
- perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7
- perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7
- perl-Data-Dumper.x86_64 0: 2.145-3.el7
- perl-IO-Compress.noarch 0:2.061-2.el7
- perl-Net-Daemon.noarch 0:0.48-5.el7
- perl-PlRPC.noarch 0:0.2020-14.el7
验证以确保这已经安装了三个重要的 MariaDB mysql 包。
# rpm -qa | grep -i maria
mariadb-5.5.52-1.el7.x86_64
mariadb-server-5.5.52-1.el7.x86_64
mariadb-libs-5.5.52-1.el7.x86_64
3. 启动 MariaDB 数据库
如下所示,mariadb 数据库服务器模块已加载,但尚未启动。
# systemctl status mariadb
? mariadb.service - MariaDB database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled)
Active: inactive (dead)
使用 systemctl 启动 MariaDB mysql 服务器,如下所示。
# systemctl start mariadb
验证 systemctl 状态以确保 mariadb 数据库服务器已成功启动。
# systemctl status mariadb
? mariadb.service - MariaDB database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2017-06-26 18:26:35 UTC; 13s ago
Process: 4049 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=0/SUCCESS)
Process: 3969 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS)
Main PID: 4048 (mysqld_safe)
CGroup: /system.slice/mariadb.service
+-4048 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
+-4206 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/ma...
Jun 26 18:26:32 deploy mariadb-prepare-db-dir[3969]: The latest information about MariaDB is available at http://mariadb.org/.
Jun 26 18:26:32 deploy mariadb-prepare-db-dir[3969]: You can find additional information about the MySQL part at:
Jun 26 18:26:32 deploy mariadb-prepare-db-dir[3969]: http://dev.mysql.com
Jun 26 18:26:32 deploy mariadb-prepare-db-dir[3969]: Support MariaDB development by buying support/new features from MariaDB
Jun 26 18:26:32 deploy mariadb-prepare-db-dir[3969]: Corporation Ab. You can contact us about this at sales@mariadb.com.
Jun 26 18:26:32 deploy mariadb-prepare-db-dir[3969]: Alternatively consider joining our community based development effort:
Jun 26 18:26:32 deploy mariadb-prepare-db-dir[3969]: http://mariadb.com/kb/en/contributing-to-the-mariadb-project/
Jun 26 18:26:32 deploy mysqld_safe[4048]: 170601 18:26:32 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
Jun 26 18:26:32 deploy mysqld_safe[4048]: 170601 18:26:32 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
Jun 26 18:26:35 deploy systemd[1]: Started MariaDB database server.
4. 连接并验证 MariaDB 服务器
使用如下所示的mysql命令,以mysql的root用户连接数据库。
# mysql -u root
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.52-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)]>
以下 show database 命令将显示默认的 mysql 数据库。
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
5. 执行 MariaDB 安装后步骤
正如您从上面看到的,默认情况下,安装不会为 MySQL 根帐户分配任何密码。
要设置 mysql root 用户密码并在数据库上执行其他安全配置,请执行 mysql_secure_installation 脚本,如下所示。
# /usr/bin/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
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
由于这是我们第一次运行此脚本,因此没有为 mysql root 帐户分配密码。所以,在这里按回车键。
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
在此阶段,说“y”为 MySQL 根帐户分配密码。之后输入密码。
请注意,此 mysql root 帐户与 linux root 帐户不同。所以,这里我们设置的是mysql root账户的密码,与Linux root账户无关。
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
作为默认安装的一部分,mysql 安装匿名用户,该用户无需真实用户即可登录数据库。所以,我们真的应该删除这个用户。
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.
可以想象,mysql root 帐户将可以访问所有 mysql 数据库。因此,保持这种安全是很重要的。此外,我们应该确保不允许来自其他服务器的远程客户端使用此 mysql root 帐户进行连接。
相反,只有 localhost(安装 mysql 服务器的地方)可以使用 root 帐户连接。所以,我们真的应该禁止远程root登录。
Disallow root login remotely? [Y/n] y
... Success!
这是默认的测试数据库,我们应该将其删除。
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
在此处输入 y 以确保我们到目前为止所做的所有更改都会立即生效。
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!
6. 验证 MySQL 根访问权限
现在,如果您在没有 root 密码的情况下连接到 Mysql,您将收到以下拒绝访问错误消息。
# mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
要指定密码,请使用 -p 选项,如下所示。这将提示用户输入密码。
# mysql -u root -p
Enter password:
此外,正如您在下面的 show databases 命令中看到的那样,现在删除了测试数据库。
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
如果要在 mysql 命令行中传递密码,请在 -p 选项旁边指定它,如下所示。
# mysql -u root -pMySecurePassword
注意: -p 和密码之间没有空格。这可能会引起一些混淆,因为我们在 -u 和用户名之间有空格。但是,-p 和密码之间没有空格。
- 点赞
- 收藏
- 关注作者
评论(0)