本文共 3671 字,大约阅读时间需要 12 分钟。
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"
转载于:https://blog.51cto.com/kaikai0720/2106075