二进制安装mysql

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二进制安装mysql相关的知识,希望对你有一定的参考价值。

目的:通过二进制方法安装mariadb

准备工作:
操作系统:CentOS7
安装所需软件包:mariadb-10.2.23-linux-x86_64.tar.gz
可在官网进行下载,此处用的最新版本。
注:mysql和mariadb除了名字一样,内部其实都一样。但是,mariaDB在各方面都是mysql创新和提高版本,而不是简单的替代品。因此,此处使用的为mariadb最新版。
 

第一步:准备用户和组

mysql需使用制定用户,系统默认没有,需手动创建mysql用户及mysql组来使用mariadb

groupadd -r -g 336 mysql

注:-r为创建系统组,-g为制定组ID

useradd -r -g mysql -u 336 -s /sbin/nologin -d /data/mysql mysql

注:-r创建系统用户,-g制定主组,-u制定UID,-s制定shell类型,-d制定其家目录(mysql程序放在/usr/locar下,但是程序本身需要存放数据,yum安装数据库会默认放在/var/lib/mysql/下,可以自己指定一个大的目录或逻辑卷来存放,因为使用逻辑卷存放的话,万一空间不够还可以扩充。此处使用的指定目录。)
 
注意,用户制定的目录不会自动生成,需要手动创建:

mkdir /data/mysql

创建好目录后,所属者所属组也应改为mysql:

chown -R mysql.mysql /data/mysql

第二步:准备二进制程序文件和相关文件属性:

在官网下载编译好的二进制文件,然后使用tar解压缩。注意:因为是官方编译好的,所以解压缩的时候,必须解压缩到/usr/local/下:

tar xvf mariadb-10.2.23-linux-x86_64.tar.gz -C /usr/local/

进入该目录:

cd  /usr/local/

注:要求是该目录下的mysql文件,文件名不符合规则,因此,可以选择更改文件名或者建立软连接。显然,创建软连接更方便,将来想更换更新版本的时候,只需要更改一下软连接所指向的源文件即可。

ln -s mariadb-10.2.23-linux-x86_64/ mysql

创建好的软连接默认所属者和所属组不存在,因此,需要将所属者和所属组改为mysql。需要带-R来将目录下所有文件都进行更改:

chown -R root.root /usr/local/mysql/

第三步:PATH变量

在安装完成后,默认是不可以使用的,因为mysql不在变量PATH中,我们可以利用重定向来将其添加至PATH变量中,并写入文件使其永久有效:

echo PATH=‘/usr/local/mysql/bin:$PATH‘ > /etc/profile.d/mysql.sh

刚添加的不会立即生效,需要手动扫描令其生效:

. /etc/profile.d/mysql.sh

第四步:准备数据库数据目录和数据或逻辑卷(本文还没改成逻辑卷,需后期继续改进)

数据库在创建mysql用户时已创建。
进入到mysql所在目录下:

cd /usr/local/mysql

我们可以利用/usr/local/mysql/scripts/mysql_install_db来帮我们生成数据库所需的数据文件:

./scripts/mysql_install_db --datadir=/data/mysql --user=mysql

注意:
当我们想运行/usr/local/mysql/scripts/mysql_install_db时,自身必须在/usr/local/mysql目录下才可以运行。因为系统会默认在/usr/local/mysql/bin中运行程序。
 
若自身在制定目录下,系统仍然报错:“/bin/mysqld:加载共享库时出错:libaio.so.1:无法打开共享对象文件:没有这样的文件或目录”,就是缺少共享库“libaio”,需使用yum进行安装:

yum install libaio

第五步:准备Mysql的服务器端的配置文件

系统自带的文件不符合要求,我们可以自己创建一个:

mkdir /etc/mysql

注:mysql默认有指定目录,有优先级之分,详情请自行百度。。。
 
当然,手写一个配置文件不现实,我们可以参考/usr/local/mysql/support-files/里的模板文件来生成。里面很多模板文件都符合要求,但是它们有一点小区别,就是适合于什么场景。其中,my-huge.cnf号称最大的环境(但是也只有1G-2G,因为mysql出身比较小...),我们可以将其拷贝至/etc/mysql/下,取名为my.cnf:

cp /usr/local/mysql/support-files/my-huge.cnf /etc/mysql/my.cnf

之后,我们可以利用vim来编辑该文件,在[mysqld]下面添加一行:

vim /etc/mysql/my.cnf
[mysqld]
datadir=/data/mysql

注:加这一行的目的是:我们制定了数据库的存放位置,需要在这里加上这行来告诉mysql数据库存放目录。其他不需要改变。后期还有很多可优化的选项,此处不多啰嗦。
 

第六步:准备服务启动脚本

当然,手写脚本不现实,我们可以参考官方提供的模板脚本/usr/local/mysql/support-files/mysql.server来生成一个脚本。当然,要当脚本使用,就放到标准的/etc/init.d/下,可以起名为mysqld:

cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld

可以使用命令来查看服务,会发现mysqld不在里面:

chkconfig --list

这时可以使用add来将其加入服务列表:

chkconfig --add mysqld

然后启动mysqld:

service mysqld start

至此,就启用成功了,数据库就可以使用了,端口号为3306。可以直接使用mysql命令来直接连接。但是,这样的mysql一点都不安全,任何人都可以随意连接,这时就需要下一步安全加固。

第七步:安全加固

我们可以使用该命令来将其安全加固:

mysql_secure_installation

注:执行命令后,确认加固,为其添加密码,并将所有的匿名用户全部删除。即可达到无账户密码无法登陆。

第八步:测试连接

到此,便完成了mysql的全部安装过程并将其进行简单加固,可以使用mysql来测试连接是否成功:

mysql -uroot -ppassword 

连接后查看状态是否正常:

>status 

正常连接后便完成了mysql的二进制方式安装,后续具体使用这里不多累赘。

以上是关于二进制安装mysql的主要内容,如果未能解决你的问题,请参考以下文章

Redhat Linux上mysql安装-binary package安装

Linux平台下安装MySQL

Mysql的二进制安装和基础入门操作

源码安装部署MySQL数据库 二进制安装部署MySQL数据库 yum安装数据库

怎样区分linux下的二进制和源代码Mysql包?

mysql基础进阶