天天看点

6步在CentOS安装和配置MariaDB MySQL

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 - 包含客户机程序界面所需的共享库。

<code># yum info mariadb-server</code>

<code>Loaded plugins: fastestmirror</code>

<code>Loading mirror speeds from cached hostfile</code>

<code> </code><code>* base: repos-va.psychz.net</code>

<code> </code><code>* extras: linux.cc.lehigh.edu</code>

<code> </code><code>* updates: mirror.us.leaseweb.net</code>

<code>Available Packages</code>

<code>Name        : mariadb-server</code>

<code>Arch        : x86_64</code>

<code>Epoch       : 1</code>

<code>Version     : 5.5.52</code>

<code>Release     : 1.el7</code>

<code>Size        : 11 M</code>

<code>Repo        : base</code><code>/7/x86_64</code>

使用yum install安装如下所示的MariaDB MySQL服务器软件包。

<code>#yum </code><code>install</code> <code>mariadb-server</code>

此时,在这个服务器上,已经安装了mariadb-server以及以下依赖的包。

<code>mariadb-server.x86_64 1:5.5.52-1.el7</code>

<code>mariadb-libs.x86_64 1:5.5.52-1.el7</code>

<code>mariadb.x86_64 1:5.5.52-1.el7</code>

<code>libaio.x86_64 0:0.3.109-13.el7</code>

<code>perl-DBD-MySQL.x86_64 0:4.023-5.el7</code>

<code>perl-DBI.x86_64 0:1.627-4.el7</code>

<code>perl-Compress-Raw-Bzip2.x86_64 0:2.061-3.el7</code>

<code>perl-Compress-Raw-Zlib.x86_64 1:2.061-4.el7</code>

<code>perl-Data-Dumper.x86_64 0:2.145-3.el7</code>

<code>perl-IO-Compress.noarch 0:2.061-2.el7</code>

<code>perl-Net-Daemon.noarch 0:0.48-5.el7</code>

<code>perl-plRPC.noarch 0:0.2020-14.el7</code>

验证确保这已经安装了三个重要的MariaDB mysql包。

<code>#rpm -qa | </code><code>grep</code> <code>-i maria </code>

<code>mariadb-5.5.52-1.el7.x86_64 </code>

<code>mariadb-server-5.5.52-1.el7.x86_64 </code>

<code>mariadb-libs-5.5.52-1.el7.x86_64</code>

如下所示,mariadb数据库服务器模块已加载,但尚未启动。

<code># systemctl status mariadb</code>

<code>? mariadb.service - MariaDB database server</code>

<code>   </code><code>Loaded: loaded (</code><code>/usr/lib/systemd/system/mariadb</code><code>.service; disabled; vendor preset: disabled)</code>

<code>   </code><code>Active: inactive (dead)</code>

使用systemctl启动MariaDB mysql服务器,如下:

<code>#systemctl start mariadb</code>

验证systemctl状态以确保mariadb数据库服务器已成功启动

<code>   </code><code>Active: active (running) since Thu 2017-06-26 18:26:35 UTC; 13s ago</code>

<code>  </code><code>Process: 4049 ExecStartPost=</code><code>/usr/libexec/mariadb-wait-ready</code> <code>$MAINPID (code=exited, status=0</code><code>/SUCCESS</code><code>)</code>

<code>  </code><code>Process: 3969 ExecStartPre=</code><code>/usr/libexec/mariadb-prepare-db-dir</code> <code>%n (code=exited, status=0</code><code>/SUCCESS</code><code>)</code>

<code> </code><code>Main PID: 4048 (mysqld_safe)</code>

<code>   </code><code>CGroup: </code><code>/system</code><code>.slice</code><code>/mariadb</code><code>.service</code>

<code>           </code><code>+-4048 </code><code>/bin/sh</code> <code>/usr/bin/mysqld_safe</code> <code>--basedir=</code><code>/usr</code>

<code>           </code><code>+-4206 </code><code>/usr/libexec/mysqld</code> <code>--basedir=</code><code>/usr</code> <code>--datadir=</code><code>/var/lib/mysql</code> <code>--plugin-</code><code>dir</code><code>=</code><code>/usr/lib64/mysql/plugin</code> <code>--log-error=</code><code>/var/log/mariadb/ma</code><code>...</code>

<code>Aug 15 15:20:30 deploy mariadb-prepare-db-</code><code>dir</code><code>[3969]: The latest information about MariaDB is available at http:</code><code>//mariadb</code><code>.org/.</code>

<code>Aug 15 15:20:30 deploy mariadb-prepare-db-</code><code>dir</code><code>[3969]: You can </code><code>find</code> <code>additional information about the MySQL part at:</code>

<code>Aug 15 15:20:30 deploy mariadb-prepare-db-</code><code>dir</code><code>[3969]: http:</code><code>//dev</code><code>.mysql.com</code>

<code>Aug 15 15:20:30 deploy mariadb-prepare-db-</code><code>dir</code><code>[3969]: Support MariaDB development by buying support</code><code>/new</code> <code>features from MariaDB</code>

<code>Aug 15 15:20:30 deploy mariadb-prepare-db-</code><code>dir</code><code>[3969]: Corporation Ab. You can contact us about this at [email protected].</code>

<code>Aug 15 15:20:30 deploy mariadb-prepare-db-</code><code>dir</code><code>[3969]: Alternatively consider joining our community based development effort:</code>

<code>Aug 15 15:20:30 deploy mariadb-prepare-db-</code><code>dir</code><code>[3969]: http:</code><code>//mariadb</code><code>.com</code><code>/kb/en/contributing-to-the-mariadb-project/</code>

<code>Aug 15 15:20:30 deploy mysqld_safe[4048]: 170601 15:20:33 mysqld_safe Logging to </code><code>'/var/log/mariadb/mariadb.log'</code><code>.</code>

<code>Aug 15 15:20:30 deploy mysqld_safe[4048]: 170601 15:20:33 mysqld_safe Starting mysqld daemon with databases from </code><code>/var/lib/mysql</code>

<code>Aug 15 15:20:35 deploy systemd[1]: Started MariaDB database server.</code>

4.连接并验证MariaDB Server

使用如下所示的mysql命令使用mysql的root用户连接到数据库

<code># mysql -u root</code>

<code>Welcome to the MariaDB monitor.  Commands end with ; or \g.</code>

<code>Your MariaDB connection </code><code>id</code> <code>is 2</code>

<code>Server version: 5.5.52-MariaDB MariaDB Server</code>

<code> </code> 

<code>Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.</code>

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

<code>MariaDB [(none)]&gt;</code>

以下show database命令将显示默认的mysql数据库。

<code>MariaDB [(none)]&gt; show databases;</code>

<code>+--------------------+</code>

<code>| Database           |</code>

<code>| information_schema |</code>

<code>| mysql              |</code>

<code>| performance_schema |</code>

<code>| </code><code>test</code>               <code>|</code>

5.执行MariaDB Post Installation步骤

从上方可以看出,默认情况下,安装不会为MySQL root帐户分配任何密码。

要设置mysql root用户密码并在数据库上执行其他安全配置,请执行如下所示的mysql_secure_installation脚本。

<code># /usr/bin/mysql_secure_installation</code>

<code>NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB</code>

<code>      </code><code>SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!</code>

<code>In order to log into MariaDB to secure it, we'll need the current</code>

<code>password </code><code>for</code> <code>the root user.  If you've just installed MariaDB, and</code>

<code>you haven't </code><code>set</code> <code>the root password yet, the password will be blank,</code>

<code>so you should just press enter here.</code>

由于这是我们第一次运行此脚本,因此没有为mysql root帐户分配密码。所以,请在这里输入

<code>Enter current password </code><code>for</code> <code>root (enter </code><code>for</code> <code>none): </code>

<code>OK, successfully used password, moving on...</code>

<code>Setting the root password ensures that nobody can log into the MariaDB</code>

<code>root user without the proper authorisation.</code>

在这个阶段,说“y”为MySQL根帐户分配密码。之后输入密码。

请注意,这个mysql root帐户与linux root帐户不同。所以,我们在这里设置mysql root帐号的密码,这与Linux root帐号无关。

<code>Set root password? [Y</code><code>/n</code><code>] y</code>

<code>New password: </code>

<code>Re-enter new password: </code>

<code>Password updated successfully!</code>

<code>Reloading privilege tables..</code>

<code> </code><code>... Success!</code>

作为默认安装的一部分,mysql安装匿名用户,无需真实用户即可登录数据库。所以我们应该删除这个用户

<code>Remove anonymous </code><code>users</code><code>? [Y</code><code>/n</code><code>] y</code>

<code>Normally, root should only be allowed to connect from </code><code>'localhost'</code><code>.  This</code>

<code>ensures that someone cannot guess at the root password from the network.</code>

可以想像,mysql root帐号将可以访问所有的mysql数据库。所以,保持这个安全是很重要的。此外,我们应该确保来自其他服务器的远程客户端不允许使用此mysql root帐户进行连接。

相反,只有本地主机(其中安装了mysql服务器)可以使用root帐户进行连接。所以我们应该远程禁止root登录。

<code>Disallow root login remotely? [Y</code><code>/n</code><code>] y</code>

这是默认的测试数据库,我们应该删除它。

<code>Remove </code><code>test</code> <code>database and access to it? [Y</code><code>/n</code><code>] y</code>

<code> </code><code>- Dropping </code><code>test</code> <code>database...</code>

<code> </code><code>- Removing privileges on </code><code>test</code> <code>database...</code>

在这里输入y,以确保我们所做的所有更改将立即生效。

<code>Reload privilege tables now? [Y</code><code>/n</code><code>] y</code>

<code>Cleaning up...</code>

<code>All </code><code>done</code><code>!  If you've completed all of the above steps, your MariaDB</code>

<code>installation should now be secure.</code>

<code>Thanks </code><code>for</code> <code>using MariaDB</code>

6.验证MySQL根访问

现在,如果您连接到没有root密码的Mysql,您将收到以下访问被拒绝的错误消息。

<code>ERROR 1045 (28000): Access denied </code><code>for</code> <code>user </code><code>'root'</code><code>@</code><code>'localhost'</code> <code>(using password: NO)</code>

要指定密码,请使用-p选项,如下所示。这将提示用户输入密码。

<code># mysql -u root -p</code>

<code>Enter password:</code>

另外,从下面的show databases命令可以看出,测试数据库现在被删除了。

如果要在mysql命令行中传递密码,请在-p选项旁边指定,如下所示。

<code># mysql -u root -pMySecurePassword</code>

注意:-p和密码之间没有空格。这可能会导致一些混淆,因为我们在-u和username之间有空格。但是,-p和密码之间没有空格。

本文转自 喵来个鱼 51CTO博客,原文链接:http://blog.51cto.com/m51cto/1958672,如需转载请自行联系原作者