centos7.9
mariadb 10.2.15
vmware
1检查环境
确保没有同类型软件
[root@centos7 ~]#rpm -ql mariadb-server
package mariadb-server is not installed
[root@centos7 ~]#rpm -ql mysql-server
package mysql-server is not installed
[root@centos7 ~]#
2下载二进制包
Download MariaDB Server - MariaDB.org
静等下载即可,或者想办法通过一些其他的方式下载
3准备用户账号
#添加用户账号,指定shell类型
[root@centos7 ~]#useradd -r -d /data/mysq1db -s /sbin/no1ogin mysql
#查看一下记录信息会出现啊以下内容
[root@centos7 ~]#getent passwd mysql
mysql:x:987:981::/data/mysq1db:/sbin/no1ogin
#添加用户时会自动创建用户的群组id并且绑定uid
[root@centos7 ~]#id mysql
uid=987(mysql) gid=981(mysql) groups=981(mysql)
4解压缩
注意;只能解压缩到 /usr/local/ 这个目录下
这个目录是源码编译的时候指定的安装路径,不可以更改
#解压缩到指定路径
[root@centos7 ~]#tar -xvf mariadb-10.2.15-linux-systemd-x86_64.tar.gz -C /usr/local/
------------------------省略很多............................
mariadb-10.2.15-linux-systemd-x86_64/lib/plugin/query_response_time.so
mariadb-10.2.15-linux-systemd-x86_64/lib/plugin/auth_pam.so
mariadb-10.2.15-linux-systemd-x86_64/lib/libmysqld.so.19
mariadb-10.2.15-linux-systemd-x86_64/lib/libmysqld.so
mariadb-10.2.15-linux-systemd-x86_64/lib/libmysqld.a
mariadb-10.2.15-linux-systemd-x86_64/lib/libmariadb.so.3
cd usr/local 下会有一个解压缩目录,但这和目录是不符合条件的
生成一个软连接
[root@centos7 /usr/local]#ln -s mariadb-10.2.15-linux-systemd-x86_64/ mysql
这一步不是必须的,只是为了更好的阅读体验,更改所有者,所属组
chown -R root: mysql/
[root@centos7 /usr/local]#chown -R root: mysql/
#修改后的效果
[root@centos7 /usr/local]#ll mysql/
total 180
drwxrwxr-x. 2 root root 4096 May 17 2018 bin
-rw-r--r--. 1 root root 17987 May 17 2018 COPYING
-rw-r--r--. 1 root root 86263 May 17 2018 COPYING.thirdparty
-rw-r--r--. 1 root root 2268 May 17 2018 CREDITS
#不修改的效果
total 180
drwxrwxr-x. 2 1021 1004 4096 May 17 2018 bin
-rw-r--r--. 1 1021 1004 17987 May 17 2018 COPYING
-rw-r--r--. 1 1021 1004 86263 May 17 2018 COPYING.thirdparty
5更改PATH路径
echo "PATH=/usr/local/mysql/bin:$PATH" > /etc/profile.d/mysql.sh
[root@centos7 /usr/local]#echo "PATH=/usr/local/mysql/bin:$PATH" > /etc/profile.d/mysql.sh
更改后使用MySQL就不需要写路径了
6创建存放数据的磁盘,逻辑卷
1 在虚拟机添加一块磁盘
2使用命令
echo '- - -'>/sys/class/scsi_host/host0/scan
使新添加的磁盘扫描出来
3 lsblk 查看一下 使用新添加的磁盘 dev/sdb
[root@centos7 ~]#lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 200G 0 disk ├─sda1 8:1 0 1G 0 part /boot ├─sda2 8:2 0 50G 0 part / ├─sda3 8:3 0 30G 0 part /date ├─sda4 8:4 0 1K 0 part └─sda5 8:5 0 4G 0 part [SWAP] sdb 8:16 0 200G 0 disk sr0 11:0 1 1024M 0 rom
4 数据库文件尽量放在大一些的空间里面规划把整个磁盘作为逻辑卷用来储存数据
# 创建物理卷
[root@centos7 ~]#pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created.
#查看一下卷组是否创建
[root@centos7 ~]#pvdisplay
"/dev/sdb" is a new physical volume of "200.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb
VG Name
PV Size 200.00 GiB #是这个,创建成功
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID x1VIqD-ItUz-48Mp-9El8-bO3s-j2Xk-DbMppS
#创建卷组
[root@centos7 ~]#vgcreate vg0 /dev/sdb
Volume group "vg0" successfully created
#把磁盘命名&空间全部作为逻辑卷
[root@centos7 ~]#lvcreate -n lv_mysql -l 100%FREE vg0
Logical volume "lv_mysql" created.
#查看卷组信息,是否有新添加到逻辑卷
[root@centos7 ~]#lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv_mysql vg0 -wi-a----- <200.00g
#创建文件系统
[root@centos7 ~]#mkfs.xfs /dev/vg0/lv_mysql
meta-data=/dev/vg0/lv_mysql isize=512 agcount=4, agsize=13106944 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=52427776, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=25599, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
#查看分区信息,记录uuid
[root@centos7 ~]#blkid
/dev/sda1: UUID="9722960f-0eb9-47fd-a36e-aa8ff56f4533" TYPE="xfs"
/dev/sda2: UUID="a6f9c71c-95ff-4192-8cd6-0051333ebfc8" TYPE="xfs"
/dev/sda3: UUID="b3880e4c-596b-49fb-88ec-ff7bfca04494" TYPE="xfs"
/dev/sda5: UUID="8da7b764-0d2b-4551-b97f-253f6a7bc4f3" TYPE="swap"
/dev/sdb: UUID="x1VIqD-ItUz-48Mp-9El8-bO3s-j2Xk-DbMppS" TYPE="LVM2_member"
/dev/mapper/vg0-lv_mysql: UUID="b231e2e2-0ecc-49c1-82a0-f46299b0849d" TYPE="xfs"
#创建挂载目录 /data
[root@centos7 ~]#mkdir /data
#永久挂载
[root@centos7 ~]#vim /etc/fstab
#添加如下内容
UUID=b231e2e2-0ecc-49c1-82a0-f46299b0849d /data xfs defaults 0 0
#使刚才的配置生效
[root@centos7 ~]#mount -a
#此时已经挂载成功了
[root@centos7 ~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /mnt/sda3
├─sda2 8:2 0 50G 0 part /
├─sda3 8:3 0 30G 0 part /date
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 4G 0 part [SWAP]
sdb 8:16 0 200G 0 disk
└─vg0-lv_mysql 253:0 0 200G 0 lvm /data
sr0 11:0 1 1024M 0 rom
7安装路径配置
#创建Mariadb安装的地址
mkdir -pv /data/mysqldb
#改变文件所属组
chown mysql.mysql /data/mysqldb
#改变文件权限
chmod 770 /data/mysqldb
8创建数据库
#进入这个目录,因为涉及到脚本调用的问题
[root@centos7 /usr/local]#cd mysql/
#运行这个脚本 scripts/mysql_install_db --datadir=/data/mysqldb --user=mysql
[root@centos7 /usr/local/mysql]#scripts/mysql_install_db --datadir=/data/mysqldb --user=mysql
Installing MariaDB/MySQL system tables in '/data/mysqldb' ...
#出现OK就没有问题
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
------------------------------省略很多
9复制一个系统的配置文件
#进入目录 必须是这个目录
[root@centos7 /usr/local]#cd mysql/
#复制配置文件
[root@centos7 /usr/local/mysql]#cp support-files/my-huge.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y #是否覆盖这个文件,输入 y
#修改下配置文件
[root@centos7 /usr/local/mysql]#vim /etc/my.cnf
#找到这块
[client]
#password = your_password
port = 3306
socket = /tmp/mysql.sock
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
port = 3306
#添加下面一行
datadir=/data/mysqldb #添加此行
socket = /tmp/mysql.sock
10复制脚本作为启动路径
#进入这个脚本
[root@centos7 ~]#cd /usr/local/mysql/
#复制脚本作为启动路径
[root@centos7 /usr/local/mysql]#cp support-files/mysql.server /etc/init.d/mysqld
#添加 mysql服务
[root@centos7 /usr/local/mysql]#chkconfig --add mysqld
#启动mysqld 服务
[root@centos7 /usr/local/mysql]#service mysqld start
Starting mysqld (via systemctl): [ OK ]
11安全加固
[root@centos7 ~]#mysql_secure_installation
请输入root口令,你没有直接回车
Enter current password for root (enter for none):
是否设置root口令
Set root password? [Y/n] y
New password:
Re-enter new password:
是否删除匿名账户
Remove anonymous users? [Y/n ] y
禁用root用户远程连接
Disallow root login remotely? [Y/n] n
是否删除test测试文件
Remove test database and access to it? [Y/n] y
是否生效保存
Reload privilege tables now? [Y/n] y