MySQL二进制安装
进入MySQL官网:https://www.mysql.com/
1选择DOWNLOADS
2进入DOWNLOADS 页面后,点击最下面的社区链接,如果有钱可以直接选择Enterprise付费版本下载
3右下角找到下载档案
4选择第一个社区服务
5选择下载版本和应用的系统,应用系统本文这里选择的是Linux通用版本
6选择64位下载(32位已淘汰)
7准备用户(确保在二进制安装之前,你的电脑上没有其他数据库,否则冲突)
groupadd -r -g 306 mysql
useradd -r -g 306 -u 306 -d /data/mysql mysql
(可以先执行getent passwd mysql Ss -ntl
这两个命令查看 )
注意:这里是故意制定了一个ID,也可以不指定ID,将来如果主机越来越多,可以统一规划,哪个账号用哪个ID,这样我们不至于造成问题的存在
getent passwd mysql
这个数据库有mysql的账户,账户路径是/var/lib/mysql
,而/var/lib/mysql
是默认数据库的存放路径,数据库文件就在这,生产中很多人喜欢把数据库放在一个专门的分区中,一般很多人喜欢放在:/data/mysql
,数据和程序单独存放,这样万一哪天系统重装了,程序没了,数据还在
所以第二条命令中的/data/mysql
意思是将来会把数据放在这个目录下,但是由于前面加了-r
,r
是指不创建夹目录(不会自动生成),r
是系统账号,默认不会自动创建夹目录; 如果想要让它强制生成夹目录也行,useradd
有一个选项可以强制生成夹目录:-m
8准备数据目录,建议使用逻辑卷(这一步可选)
#可选做,后面的脚本mysql_install_db
可自动生成此目录
mkdir /data/mysql
chown mysql:mysql /data/mysql
备注:建议做一下,因为我们把数据库放到逻辑卷里面会更好一点,如果我们认为的把文件夹准备好,而且给他关联一个逻辑卷(逻辑卷可以在线扩容)
9准备二进制程序(可以自定义安装包,一下为范例)
tar xf mariadb-VERSION-linux-x86_64.tar.gz -C /usr/local
cd /usr/local
ln -sv mariadb-VERSION mysql
chown -R root:root /usr/local/mysql/
备注:(也可以使用wget
下载),我们通常会加压到 /usr/local
,因为这个文件是编译完了的,体现在压缩包中的linux
,只要写操作系统名称的,都是表示这个是编译完了的,是针对linux
编译的,编译的时候制定的就是/usr
下的mysql
,因为他是带版本号的,所以我们要给版本号创建个软连接,取名叫:mysql
,如果不改软连接或者文件夹名,将来运行过程中,会报各种错误,所以需要指定一下
10 准备配置文件
cd /usr/local/mysql
cp -b support-files/my-large.cnf /etc/my.cnf
vim /etc/my.cnf
#mysql语句块中添加以下三个选项
[mysqld]
datadir = /data/mysql
innodb_file_per_table = on #在mariadb5.5以上版的是默认值,可不加
skip_name_resolve = on #禁止主机名解析,建议使用
备注:进入到/usr/local/mysql
,这个目录里面有一个子目录:support-files
,它里面有一些相关的配置文件,其中有一个文件叫my-large.cnf
,它提供了好几个配置文件,适用于不同的场景,用large
作为数据库的配置范例,相当于模板,拷贝它,有些地方还要改,它有些地方是系统带的,不一定符合我们现在的安装要求。
至于其他的可加可不加,最后两项是跟系统优化有关
11创建数据库文件
cd /usr/local/mysql/
./scripts/mysql_install_db --datadir=/data/mysql --user=mysql
备注:运行这个脚本,它里面可以指定数据库生成的路径,以及这些数据库生成的文件的所有者是mysql,在二进制安装中要制定以谁的身份拥有这个目录里的文件
[root@centos8 mysql]#ls /data/mysql/ -l
total 110604
-rw-rw---- 1 mysql mysql 12582912 Jun 1 16:44 ibdata1
-rw-rw---- 1 mysql mysql 50331648 Jun 1 16:44 ib_logfile0
-rw-rw---- 1 mysql mysql 50331648 Jun 1 16:44 ib_logfile1
drwx------ 2 mysql mysql 4096 Jun 1 16:44 mysql
drwx------ 2 mysql mysql 4096 Jun 1 16:44 performance_schema
drwx------ 2 mysql mysql 4096 Jun 1 16:44 test
12准备服务脚本,并启动服务
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
service mysqld start
#如果有对应的service
文件可以执行下面
cp support-files/systemd/mariadb.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl enable --now mariadb
备注:作为数据库,我们要开机启动,我们可以用mysqld
这样的启动脚本来启动,这个脚本官方也提供好了,只需要复制目录里的mysql-server
作为启动脚本就行,靠过来就能用,把它加到服务列表里面,如果官方提供了service
文件,也可以把service
拷贝到对应的目录下也行,像mariadb 10.2就提供了service
第一种启动脚本适合于Centos6早期的版本,Centos7也能用,但是从Centos7往后就建议采用service
文件(但是不管怎么样,能起来就行,主要是为了启动)
13 PATH路径
echo ‘PATH=/user/local/mysql/bin:$PATH’ > /etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh
备注:为了后期的管理方便,我们需要修改PATH
变量,可以方便的使用它的一些客户端工具
14 安全初始化
/user/local/mysql/bin/mysql_secure_installation
备注:为了更安全,可以跑一边安全脚本,因为之前已经制定了PATH变量,这里的路径可以不写,直接运行,这样数据库就装完了