MySQL二进制安装
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL二进制安装相关的知识,希望对你有一定的参考价值。
Centos7:二进制方法安装mysql数据库:
###安装前提:确保本机没有安装mariadb的服务,也不应该含有3306端口;
# 1 下载安装包
在httpd://downloads.mariadb.org网页下载二进制安装包"mariadb-10.2.12-linux-x86_64.tar.gz"
# > 2 数据库以mysql这个用户运行的,所以要创建账号
useradd -r mysql -s /sbin/nologin
3 解压"mariadb-10.2.12-linux-x86_64.tar.gz"文件,由于二进制的包是编译完成的,指定了路径为/usr/local;所以要解压到此处
tar zxvf mariadb-10.2.12-linux-x86_64.tar.gz -C /usr/local
4 解压完成后的名称当初编译的时候名为mysql所以要创建一个软连接,指向mysql
ln -s mariadb-10.2.12-linux-x86_64/ mysql
5 解压完成后,当中的文件没有指定所有者所有组,建议将所有者域所有组改为mysql
chown -R mysql.mysql mysql
6 将二进制程序的路径放入到PATH中,方便在全局使用
echo ‘PATH=/usr/local/mysql/bin:$PATH‘ > /etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh
7 准备存放数据库的文件夹,就是指存放大量数据文件的位置,建议将存放操作系统的空间与存放数据的空间分离,而且建议使用逻辑卷
1 虚拟机中添加了一块儿大小为20G的磁盘
2 分区磁盘并且修改为LVM
fdisk /dev/sdb
n:开始分区
p:默认主分区
大小统统默认直接回车就可以,根据实际情况定义
t:修改分区类型
8e:修改为LVM版
w :保存退出
3 pvcreate /dev/sdb1 #创建pv
vgcreate vg0-mysql /dev/sdb1 -s 16M #创建vg并命名为vg0-mysql而且pe大小为16M
lvcreate -n lv_mysqldata -l 100%FREE vg0-mysql #创建lv并命名为lv_mysqldata并且使用vg0-mysql上的所有剩余空间
4 mkfs.xfs /dev/vg0-mysql/lv_mysqldata #给新创建的lv创建xfs的文件系统
5 mkdir /data/mysqldb #创建给逻辑卷挂载的目录
6 blkid #查找出逻辑卷的uuid
7 vim /etc/fstab #在文件中添加如下内容,注意UUID是不同的,实验环境是这个
UUID=784ecb9c-de51-4140-9676-a0161ba205c1 /data/mysqldb xfs defaults 0 0
8 mount -a #执行文件中没有挂载的那一行,永久挂载
8 要将创建的目录的所有者和所属组改为mysql,因为是为了给mysql做存放数据用的目录,所以必然要拥有权限
chown -R mysql.mysql /data/mysqldb
9 基于安全考虑,我们可以将存放数据库的目录权限改为770,也就是说除了mysql其他的用户都进不去
chmod 770 /data/mysqldb
10 要在/usr/local/mysql/下执行scripts/mysql_install_db这个脚本进行安装数据库,并且要执行datadir也就是数据库的存放目录以及运行用户--user;
出现OK字样则证明运行成功,信息中有一条执行./bin/mysql_secure_installation的指令,这是安全脚本,默认安装完数据库是不存在口令的,所以可以运行一下此脚本;
1 cd /usr/local/mysql
2 scripts/mysql_install_db --datadir=/data/mysqldb --user=mysql
11 如果没有什么安全限制的话则就可以启动服务了,但注意,此时默认的配置文件是/etc/my.cnf,当中的数据库路径域socket路径都是默认指定的,但当中的配置也略少,所以可以在/usr/local/mysql/support-files下修改特定环境的配置文件
my-small.cnf:小环境使用
my-medium.cnf:稍小环境使用
my-large.cnf:大的环境使用
my-huge.cnf:巨大的环境使用(其实巨大也没多大1G-2G都算巨大了= =)每一个下面都有信息,实验当中使用此配置文件;
my-innodb-heavy-4G.cnf:4G内存的环境下使用
12 将此配置文件复制到/etc/下并且命名为my.cnf
cp /usr/local/mysql/support-files/my-huge.cnf /etc/my.cnf
**13 复制过去之后进行编辑修改,当中存在[mysqld]与[client]两个语句块儿,在[mysqld]下添加一行用于修改数据库路径:datadir = /data/mysqldb**
**14 在/usr/local/mysql/support-files下还存在一个用于服务启动停止的脚本,名为mysql.server,将此文件复制到/etc/init.d/下命名为mysqld方便全局使用**
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
并且添加到chkconfig中开机自启动:chkconfig --add mysqld
15 启动服务
service mysqld start
注意:当服务启动后,在/tmp/下会生成一个粉色的mysql.sock文件,当服务停止的时候,文件也会消失,因为在配置文件当中的定义就是/tmp/mysql.sock
16 此时服务已经启动,但是默认是没有密码的,所以说任何人都可以登录数据库并且进行一系列的操作,在数据库中默认会出现几个表,这几个表的存放位置在/data/mysqldb下;
mysql #此命令可直接登录进数据库
show databases; #这是sql语句,在数据库中执行可查看当时数据库中拥有的表;
drop database test; #删除名为test的数据库,删除后在/data/mysqldb下就会消失;
17 进入数据库查看存在哪些不安全的用户;
mysql #连接进数据库
select user,host from mysql.user; #查看mysql库中的user表下的user和host字段信息;
18 在Linux环境下运行mysql_secure_installation脚本加固安全性;
mysql_secure_installation #按照脚本的提示一步一步往下走即可
19 当修改完成后再使用空口令就没有办法连接了,所以要使用以下方法连接
mysql -uroot -pmysql #-u:指定登录用户
#-p:指定登录密码,mysql是我刚刚执行那个脚本的时候设置的密码
Centos6上面需要二进制安装的话与上述操作一模一样,就是包不一样,包名为"mariadb-5.5.59-linux-x86_64.tar"
以上是关于MySQL二进制安装的主要内容,如果未能解决你的问题,请参考以下文章
Redhat Linux上mysql安装-binary package安装