MariaDB10.1.9二进制安装实操

在一台内存只有512M的机器上安装MariaDB10.1.9(目前最新版),编译会遇到各种各样的问题,从gcc的版本到mariadb编译中内存不足的情况,总是导致安装失败。而官方则提供了一则用二进制压缩包安装MariaDB的安装方式,可以说实在太有爱了。所谓二进制安装,实际上就是官方提供一个已经经过编译的二进制软件包,相当于给你省去了在自己的机器上编译的过程,直接给你编译的结果。

那么,如何利用这个方法进行MariaDB的安装呢?

下载和解压

首先下载对应的二进制压缩包,在官方的下载页面,可以看到一个下载列表,其中第一个tar包是用来让你自己编译安装的,而其他的几百M的tar包则是经过编译的二进制包。你可以看到,压缩包边上会要求你的机器环境,你只需要用wget下载一个合适你的机器环境的二进制压缩包即可,我选择的是mariadb-10.1.9-linux-x86_64.tar.gz

$ cd /usr/local
$ wget https://downloads.mariadb.org/interstitial/mariadb-10.1.9/bintar-linux-x86_64/mariadb-10.1.9-linux-x86_64.tar.gz
$ tar zxvf mariadb-10.1.9-linux-x86_64.tar.gz
$ mv mariadb-10.1.9-linux-x86_64 mysql

通过上面的几个操作,在你的/usr/local下面,放下了mysql这个文件夹,而这个文件夹里面,就是已经编译好的mariadb了,接下来,其实我们要做几件事:解决依赖、配置、启用服务。

配置文件

这个时候,我们回到上面官方提供的那篇二进制压缩包安装的文章,看人家是怎么说的:确保你使用了正确的my.cnf文件也就是说,二进制压缩包是不提供my.cnf配置文件的,要你自己去写。没办法,我们从其他的服务器上面拷贝一个my.cnf到当前服务器的/etc目录下。

进入/usr/local/mysql/support-files目录,你会发现几个已经准备好的my-*.cnf文件,你懂英文的话大概看得懂,根据你机器的配置,来选择大中小(large、medium、small)等,拷贝为/etc/my.cnf即可。当然,如果你想再稍微修改一下配置,可以自己再去修改一下。

初始化数据库(安装,依赖)

接下来,我们要执行一个数据安装操作。也就是在数据库中安装好mysql数据库,当然,默认情况下,还会有一个名叫test的数据库:

$ cd mysql
$ ./scripts/mysql_install_db --user=mysql

我们都知道,mysql的数据库是放在data目录中的,你可以cd data到该目录中,看看是否产生了两个目录mysql和test,这说明安装OK了。

不过,有的时候,安装也会出毛病,也就是环境依赖有问题(大部分情况下,都会出现这个问题),你的系统中没有安装某些软件,导致执行上面的语句的时候报错。ok,我们要找出缺少什么软件,到网上查一下,这些软件怎么安装,能用yum安装的,就直接yum安装即可。安装完依赖的软件之后,再执行一下上面的mysql_install_db。直到整个过程中没有抛出任何错误为止。

由于我们希望让mysql用户来运行数据库软件,所以,我们要赋予data目录可写权限,否则数据库运行中,无法写入。

$ chown -R mysql data

另外,mysql还会有一个mysql.sock文件和mysql.pid文件,如果你修改了它们的放置路径,都需要让mysql用户对该路径有可写权限。

载入服务

接下来,我们要载入mysql服务,打算用service mysqld start|stop|restart来进行操作,二进制包中提供了工具,我们作如下操作即可:

$ cp support-files/mysql.server /etc/init.d/mysqld
$ chmod -x /etc/init.d/mysqld
$ chkconfig --add mysqld
$ chkconfig mysqld on

这样我们就可以使用service mysqld来进行操作了,而且还实现了开机启动。那么用service mysqld restart执行一下吧。现在你的mysql服务器已经运行起来了。不过我们不能直接用mysql作为客户端进行操作,在./bin目录下提供了mysql客户端软件,你可以使用./bin/mysql -u roo -p来进行登陆操作,默认密码为空。如果想直接使用mysql -u root -p,那么需要将/usr/local/mysql/bin加入到你当前的系统用户的.bashrc或.bash_profile中。

初始化数据库用户权限

虽然数据库已经跑起来了,但是数据库当前只有一个密码为空的root用户可以登陆,非常不安全,我们运行一个mysql_secure_installation程序来实现基本的数据库用户(root)权限管理。

./bin/mysql_secure_installation

然后会提示你输入root的密码,直接回车即可,因为当前root密码为空,然后设置新密码,根据提示选择yes/no直到完成即可。

由于本文仅讲述服务器的安装,所以如何修改添加mysql用户,设置权限之类的,就需要你自己动手去处理了。

2015-12-10