0
点赞
收藏
分享

微信扫一扫

Centos8下的Mysql5.6二进制安装

yongxinz 2023-07-26 阅读 80

1.二进制安装数据库到底是什么意思呢?

他是这样的一个逻辑就是,官方已经把原代码帮你编译完了,已经有二进制了。
你只需要把二进制文件下载下来。对应的找到一个目录里面。存好,然后稍作配置,
你就可以用了。有点像咱们
WINDOWS里装的那个绿色版,不过那个绿色版软件更简单,绿色版软件解压缩完了以后
扔到一个目录里,把那个程序打开双击就完了,就能运行了。

但是mysql呢,由于它是个比较复杂的软件,所以这个软件你光把二进制找了一个目录
放。你还不行,因为他缺失了很多相关的文件。那事实上,我们学到这,大家对数据库
的文件组成能不能大致说出来?我们刚才已经简单的做了mysql的使用,虽然我们还没
有体系的给大家讲,但是呢,目前来讲大家能不能把我们刚才接触到的?mysql相关文
件做一个总结,我们在my中需要用到哪些相关的文件?

	配置文件:
	mysql.socket套接字文件:
		这个套接的文件,我们不需要人为去创建,因为这个套接字文件呢,它是系
        统自动生成的,
		这个文件你不是手工创建的,是数据库服务,在启动过程中自动生成的。
  		所以我们知道有这个文件就行了,但是我们不会去手工创建,但是路径是要
        指定的是吧?路径你得告诉他这个数据库。socket文件在哪放?这个是你们
        要说清楚的,

	数据库文件:
		数据库文件没有这个不行,数据库文件都没有它服务,那怎么启动啊?
        所以这些数据库文件需要你到时候把它创建出来。

	启动文件:	
		还有一个很关键的东西,就是作为服务来讲,是不是要启动啊?启动的话,
        我们用这个命令来启动的时候,他是不是依赖于mysql.service文件

	账号:


注意。默认情况下,你下载下来以后,这些文件可能都是没有放在对应的目录里的。
你都需要人为的去准备,还有一个很关键的东西就是账号。咱matlab的运行是不是
以mysql的身份运行的?对吧,你从网上下载一个二进制文件过来,但是你都做好了,
但是有账号吗?没有。所以我们二进制安装本身

中间我们需要手工的去准备这么多东西,所以二进制安装是比较繁琐的,我们需
要手工的去完成这些准备工作都要去准备。啊,唯独要不省的事,就是我们那个配
置。啊,就是那个编译安装过程不用做了,因为编译安装人家帮你做好了,已经帮你
编译完了啊,但是那些文件都没有。所以我们需要一步一步的准备。由于我们下载的
是二进制安装,换句话说,官方已经帮我们编译完了,	
但是编译安装我们大家记得,我们编译安装是不是有一个这样的一个configure脚本?
这个它这个脚本儿是不是要指定安装一个路径啊?你这个程序安装在哪儿?对吧?但是
现在编译安装不是没有自己编译安装吗?我们是用人家编译完了的。那人家编译完了的
,你下载下来,你是不是也得?必须要放到人家当初编译的时候,指定的这个目录里,
你这个二进制程序才能正常使用啊,对吧?

你不能随便放啊。你当初人家编译的时候放在哪,你就应该把这个文件拷到哪去才能
正常使用。所以这些呢,我们都需要人为去准备。明白吧,所以这个过程呢,是繁琐
的啊,繁琐的,不过呢,大家没关系,我们一步一步带着大家来完成。我们以
mysql5.6的。二进制安装来给大家介绍

mysql5.6。是目前很多企业用的一个数据库版本

2.二进制安装过程:

第一步:
	去mysql的官方站点去下载社区版本。链接如下:
		https://dev.mysql.com/downloads/
	找到 Dwonload Archives 下载存档 点进去

	进入之后找到MySQL Community Server 这是社区服务器,点进去

	在选择版本5.6.47 操作系统选择Linux-Generic 这个是最通用的Linux,
  mysql可兼容多版本的linux
	
	选择好之后下面会出现两个可下载选项:
		一个是32位版,这个不考虑已经被淘汰了,另一个就是64位版

	或者直接在Linux上使用wget下载:
		右键那个下载,然后复制链接:
	wget 
  https://downloads.mysql.com/archives/
  get/p/23/file/mysql-5.6.47-linux-glibc2.12-x86_64.tar.gz
	这样也能下载好		


第二步:捋顺二进制安装过程的步骤
	1.准备用户
		注意,你们要想二阶段安装,一定要确保你当前机上不要安装数据库啊。
    你想你电脑上已经有一个数据库了,你再装一个不就打架了吗?对不对?
    所以你一定要确保你电脑上没有安装数据库,比方说是最小安装,最小安装肯定
    不会有数据库
		
		先把账号创建出来,创建账号呢,你可以分开创建,先把组创建出来,
    再创建用户,实际上也可以一步到位。哎,你也可以直接就一提供命令,
    连用户账号,因为创建账号的时候呢,系统会自动的创建一个组和他同名。

		注意我这个是故意指定了一个ID,这个ID实际上你不指定也行,不指定也可以,
    只不过就是为了。统一ID。将来我们尤其主机一多,那么用户账号,
    他可能为了统一管理,我们就规划一下,说哪个账号用哪个ID,
    这样的话我们不至于造成问题的存在,

		useradd -r -g 306 -u 306 -d /data/mysql mysql

	2.准备数据目录,建议使用逻辑卷

		这个data什么意思呢?
			你对比一下,我现在是不是装了一个亚门安装的数据库啊?这个数据库呢?
      它上面不是有my这个账户吗?你看他的账户是什么目录的目录?是不是就
      是而默认数据库的存放路径?数据库文件不就在这吗?我现在计划是数据
      库不想放在这,因为这个目录感觉不伦不类,在生产中更多的用户喜欢把
      数据库放在一个专门的分区里面。一般很多人都喜欢叫这个叫data下的
      mysql这一看不就是data,就是专门放数据的吗?里面是放mysql的数据的。
      因为它不是用程序,
			
			所以也是数据和程序相分离。所以我们现在呢,数据是在这个目录里,
      当然这个目录呢,哎。

			将来我会将来会把这个数据呢放在这个目录下,但是呢,由于我这加了r。
      r什么意思?r就是指不创建啊?r是表示系统账号对吧?系统账号呢?
      它不会创建加目录就是默认不会自动生成家目录,也就是这个文件夹虽然有。
      你指定了它的家目录

			但是它不会创建哎,不会创建,那不会创建,那怎么办啊?你自己可以创建啊,
      手工创建呗。哎,有人说能不能自动创建呀?可以自动创建呃,但是你加上r,
      它是默认不会自动创建,但是如果你想强制让它自动生成加目录也行。
      你们还记得不记得有一个选项可以强制创建加目录?记得不useradd有一个
      选项, 它可以强制生成加目录

		逻辑卷有什么好处?	
			逻辑卷有什么好处?是不是可以在线扩容啊?如果这个文件夹。你对应的一个
      分区当时分小了,数据库越来越大,将来数据放不下了。那就麻烦了,

			分区没法扩呀,如果是逻辑卷的话,是不是轻松可以扩容啊?
      所以这个也是一个推荐使用的。
      

	3.准备二进制程序		
		tar xf mariadb-VERSION-linux-x86_64.tar.gz -C /usr/local

		通常我们习惯性的往这解压/usr/local。叫为什么写在这儿呢?

		因为他人家这个文件是一个编译完了的,那从哪能看出来是编译完了的呢?
		VERSION-linux这写了个linux。

		只要写操作系统名称呢,就表示这个系统已经是编译完了,是针对linux编译的,
    那注意我这。例子是以mariadb啊,实际上我现在用的是mysql,实际上一样啊,
    无非就是这儿换成买就行了嘛哎,那么我们人家编译的时候是当时指定的路径就
    是usr下的。所以我们把它解压缩解压缩完了以后,但是有个问题,它解压缩完
    了以后,它是带版本号的,

		ln -sv mariadb-VERSION mysql
		chown -R root:root /usr/local/mysql/

		所以我们需要。把这个带版本号的给他创建一个软链接,改名叫mysql,因为
    人家当初编译的时候,人家的数据库路径是放在这个路径下的。是如果你不改。
    软链接或者不改这个文件夹名将来这个程序运行,会报各种错误。所以我们
    这儿呢,就需要把它指定一下,把这个当然改软链接比较好,改软链接有个
    好处,就是将来万一版本不想。用这个版本了,你想升级啊,换个新版本,

		那无非就是软链接一删就行了,所以这个省事儿,所以你我们一般来讲不用改名
    而是用软链接的方式。当然这个文件夹里面的这些文件的属性可能有问题,
    待会儿我们要设一下,把它改一下,否则呢,会出现它里面那个文件呢,
    是没有所有者,没有所有组的。待会儿我们可以确认一下啊。

	4.准备数据库配置文件:
		接着我们还缺失数据库的配置文件,那缺失数据库的配置文件呢?虽然我们呃,
    知道数据库配置文件一般都是放在etc/my.cnf文件里,我这有没有my?卖点什
    么文件呢啊?我们看了这里边。有没有呢?你看这个文件是不存在的,不存在呢,
    我们就需要创建这个文件,但是这个文件的内容我们不需要从头到尾创建,
    我们可以复制咱们。解压缩的这个目录。

		解压缩的这个目录里面,当前这个文件就有这样的一个。你进到这个解压缩的目录
    里啊,当然这个需要你进去,这个前面少了一个进目录的路径,我把它补上。
    你进到这个目录里,这个目录里面有一个子目录,叫这个里面他有一些相关的配置
    文件,其中有一个文件叫。support-files 他的目录下有一个my-large.cnf
		这些配置文件呢,适用于不同场景,

		然后large呢,是适合于大型。数据库环境还有什么?还有small small呢?
    就是适合于小环境啊,他提供了几个范例,那么其中呢,你拿这个large可以作为。
    数据库的一个配置范例就相当于一个模板似的,你拿过来拷贝它,至少这个数据库
    可以用,明白了吧?哎,配置文件可以用,省的你手写了嘛,省的你一个一个手写了。

		好把这个文件拷过来,拷过来以后有些地方可能还要改为什么呢?因为它这个配置文
    件里面的内容是系统带的,它不一定要符合咱们现在的安装要求,比方说我们刚才曾
    经做了一个规划。我们是不是希望数据库放在下的这个文件夹里,所以我们需要进一
    步的修改,其中在这个语句块里面人为的写上一个叫。把它指向我们,只希望数据库
    存放的路径。这个是必须要指的啊,因为你前面计划数据库放在这儿,那么系统可
    不知道你要放在这儿,所以必须要人为的把数据库配置文件改了加在这儿。至于其
    他的加也行,

		不加也行,这两项呢,是为了优化用的。这个可以加也可以不加,对吧?这两项是和
    系统优化有关,这个我们暂时先不提,你不加都行。好接着我们,虽然我们期望数据
    库放在下,但是这个文件夹肯定是空的,刚开始对吧?空的那么我们说了这个数据库
    要把这些相关的数据库文件放到里面去。那么刚装好的,	

	5.准备服务脚本,并启动服务

		刚解压缩的这个里面没有这些文件,所以我们需要通过啊,某种方法生成这些相关的
    数据库文件怎么生成呢?方法就是运行这个脚本。这个脚本它里面可以指定数据库将
    来生成的路径,以及这些数据库生成的文件的所有者是谁?是my。啊,为什么是买
    你可以看一下啊,我前面不是用亚方式安装了吗?你看这里面的用户。你看这里面
    用户。我现在是不是就在数据库所在目录,你看这个数据库的所有者是不是就买,
    所以我们在。

		二进制安装的时候呢,也需要指定一个以谁的身份。拥有这个目录里的文件行了
    吧?要指定好接着作为数据库来讲,我们将来要设置开机启动,那么开机启动呢?
    我们可以用。my d.这样的一个启动脚本儿,这个小本儿呢?官方也提供好了,
    你只需要复制这个目录里面的my server作为启动脚本儿就行了,直接拷过来就
    可以用了。唉,然后呢?

		把他加到福利表里面,但是如果官方提供了service文件,你也可以把service文件
    。考到对应的目录下也行哎,这也是可以的,你像咱们玛瑞db的那个应该是十点二。
    十点二呢,应该就提供了service,你可以把那个的那个文件复制过来,我们现在用
    的是买点五点六那个应该是没有的。那个没有没有的话呢,
    它提供的是一个service,提供的是一个服务脚本,用这种方法哎。当然,

6.修改PATH路径
	我们需要修改它的变量啊my的。把这个病目录加到咱们的my里面,将来我们可以方便
  的使用他的一些工具,

	比方说my的客户端工具就是放在这个目录下的,所以我们为了方便省着写,每次写
  路径。我可以把它写一个,它的变量让它生效。啊,实际上到此呢,咱们数据库就
  做完了,只不过呢,为了更安全,还记得我们是不是有一个安全脚本要跑啊?哎,
  现在你跑一下这个安全脚本就行了。实际上,刚才pad变量指定好以后,		


	所以这个版本在8上你都不用,但是centos7上的相对版本就比较老,centos7上
  呢,它默认带的版本是五点。而是的五点五,所以它比较老,所以当然目前来讲
  在centos7上去。装的这个版本是比较老的。所以我们建议大家还是在centos7
  上去装啊,这个8上能不能装这个需要测一下


第三步具体命令的执行:
	
	1.准备用户:
		groupadd -r -g 306 mysql 建立组
		useradd -r -g 306 -u 306 -d /data/mysql mysql 建立用户

	2.准备数据目录,使用逻辑卷	

		lsblk命令:
			显示 系统上的分区
		创建逻辑卷:
			注意data本身是个独立分区了,我们现在希望在。data/mysql
			下面的以逻辑卷方式来组织啊.

		所以我们那就单分一个分区:
			执行命令 fdisk /dev/sda
				在输入p 能看到5个分区

			注意他这个分区已经分到五了,那么再分,我把所有的空间都给他分一部分吧,
      我也不都分完。第一个扇区从这开始呃,分个比方说我们分个30。	

				在当前环境下输入 n 则能继续分区 
				回车 在输入+30G 就能分出30G的大小了

			然后需要修改一下id 

			我们在输入 t 在按回车,下面就能改了,如果不记得id 号则输入L查询
			要改LVM需要id修改为8e

			w 保存退出 没报错就行了

		下面来创建逻辑卷:
			输入命令:
				先把他变成物理卷:
					先安装工具: yum install lvm2 -y

				执行命令:
					pvcreate /dev/sda6	

			然后给他加到卷组里中:
				vgcreate vg0 /dev/sda6

			在创建逻辑卷:	
				lvcreate -n mysql -l 100%free vg0
					把所有空间都用完,是从vg0里面分

				lvs 显示当前大小

			在创建文件系统:
				mkfs.ext4 /dev/vg0/mysql

			然后进行挂载,为了持久保存,需要写在/etc/fstab文件中
				vim /etc/fstab

				在vim 文本里面执行这个命令
				 r!blkid /dev/vg0/mysql

UUID=72835333-748b-482c-805b-1e9191c17836 /data/mysql ext4 defaults 0 0 最后加入这样一行就行了

然后这个文件夹不存在,我们需要手工创建:
				 mkdir /data/mysql
				 mount -a 挂载
				 df -h 查询是否挂载成功

				 这个逻辑卷就有了

	这里需要修改逻辑卷的所有者			 
		chown mysql.mysql /data/mysql/		 
	删除文件夹:
		rm -rf /data/mysql/lost+found/

	3.准备解压缩这个安装包
		tar xvf mysql-5.6.47-linux-glibc2.12-x86_64.tar.gz -C
    /usr/local
		 解压缩到 /usr/local 这个目录下

		 查看解压后的文件大小:
		 	du -sh /usr/local/mysql-5.6.47-linux-glibc2.12-x86_64/

		usr/local/这个目录我们是不能直接用的,我们要在之前
        创建的mysql目录下,因此
		
        我们要创建软链接:
			cd /usr/local 这个目录下然后执行
			ln -s mysql-5.6.47-linux-glibc2.12-x86_64/ mysql
				ll查看有箭头了,就表示成功了

		现在这个 mysql/文件下还是有点问题的,有那种,没有所属组和所属用户的
        文件存在,我们需要把这些给改掉。
			chown -R root.root mysql/

	4.准备配置文件:
		配置文件就在解压缩的目录里		
			cd /usr/local/mysql 
			ls support-files/
			ls scripts/ 
			这两个目录都是稍后要用到的

		当前文件路径:/usr/local/mysql	
			由于没有large文件所以要使用这个 my-default.cnf 文件
			这个文件在ls support-files/ 这个目录下
		
		我们来查看这个文件:
			vim support-files/my-default.cnf 
				

				[mysqld]:说明是mysql的配置文件

		我们需要自己写一份配置文件:

		[mysqld]
		datadir = /data/mysql
		innodb_file_per_table = on #在mariadb5.5以上版的是默认值,
        可不加
		skip_name_resolve = on    #禁止主机名解析,建议使用		

		这样写:
			vim /etc/my.cnf
				[mysqld]
				datadir = /data/mysql 
			加入上面两行内容
			
	5.需要建立数据库

		那怎么去创建数据库呢?很简单,咱们这儿有一个。脚本这个脚本可以帮
        我们来生成。数据库这个脚本已经写好了,但是这个脚本运行啊,有一个
        需要注意的地方,你看这个脚本路径没有问题,我们正常运行脚本是不是
        可以进来,因为它不在path变量里

		/usr/local/mysql/scripts 有一个脚本文件 mysql_install_db

		cd /usr/local/mysql/scripts 到这里,然后 ./mysql_install_db 
		会报错的,因为缺少/bin文件,所以需要返回到mysql目录下去运行这个
        脚本

		ls bin/my_print_defaults
			显示出
				bin/my_print_defaults

		必须在/usr/local/mysql这个路径下执行这个脚本,用绝对路径也不行
	
		这行命令要是想成功运行需要解决依赖关系:
			./scripts/mysql_install_db
            --datadir=/data/mysql --user=mysql
				
		在上面的命令运行之前需要执行:
			yum install -y perl perl-devel
			yum -y install autoconf

		这样脚本才执行能执行成功
			ls /data/mysql/ -l 查看是否执行成功

	6. 准备服务脚本,并启动服务	

		/usr/local/mysql 在这个目录下执行CP命令
		cp support-files/mysql.server /etc/init.d/

		脚本名字不好看我们需要修改一下脚本名字,
        进入到这个/etc/init.d/目录下
			mv mysql.server mysqld
			把mysql.server名称修改为mysqld

		启动脚本:
			在/etc/init.d 路径下启动脚本
			service mysqld start	

		为了以后方便需要修改一些环境变量
			/usr/local/mysql/bin/ 这个目录我们经常使用,
            所以要加入到path环境变量

		echo 'PATH=/user/local/mysql/bin:$PATH' > 
        /etc/profile.d/mysql.sh

		. /etc/profile.d/mysql.sh 启动脚本
		CentOS8环境下在执行mysql如果在报错就执行
			yum install ncurses-compat-libs
		解决好依赖关系就行了

		在执行mysql就能进入数据库了 

	6.对数据库进行安全加固
		执行那个安全脚本就行了	

		mysql_secure_installation 

		第一项是问你是否设置密码 选yes
		 这里设置了123456
		第二项问你是不是删除匿名用户 yes
		第三项问你是否允许远程登录root yes
		第四项是不是删除test数据库 yes
		第五项问你是不是让刚才的设置是否生效 yes

	如此一来数据库就设置好了


	7.登录数据库 
		mysql -uroot -p123456

		现在mysql没有设置成开机运行

	8.如何做到开机运行呢?
		我们用比较传统的方法
			vim /etc/rc.d/rc.local 
			文件中加入这行路径 
				/etc/init.d/mysqld  start


		执行完成之后,需要对这个文件加执行权限
			chmod +x /etc/rc.d/rc.local 变成可执行文件

			reboot 重启虚拟机	
			centos7不用这么麻烦
	完成安装

举报

相关推荐

0 条评论