|NO.Z.00009|——————————|^^ 构建 ^^|——|Mysql&Mariadb&二进制部署配置.V2|
附录一:
一、在虚拟机下添加一块空磁盘并创建逻辑卷(用来作为mysql数据库存放生产数据的目录)
### --- 在虚拟机下添加新磁盘;注册新添加的磁盘:
[root@localhost ~]# echo '- - -' > /sys/class/scsi_host/host2/scan
[root@localhost ~]# lsblk
sdb 8:48 0 10G 0 disk
### --- 创建逻辑卷(创建PV)
[root@localhost ~]# pvcreate /dev/sdb // sdb创建为物理卷pv
Physical volume "/dev/sdb" successfully created.
[root@localhost ~]# pvdisplay
"/dev/sdb" is a new physical volume of "60.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb
### --- 把这块盘添加到卷组里面vg(创建vg)(添加到lv)
[root@localhost ~]# vgcreate vg0 /dev/sdb
Volume group "vg0" successfully created
[root@localhost ~]# lvcreate -n lv_mysql -l 100%FREE vg0 // 创建逻辑卷,-n:为该逻辑卷命名为lv_mysql, -l:指定大小,100%GREE:全部使用
[root@localhost ~]# lvs // 可以查看到该逻辑卷的大小
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv_mysql vg0 -wi-a----- <60.00g
### --- 创建文件系统:
[root@localhost ~]# mkfs.xfs /dev/vg0/lv_mysql // 将该逻辑卷格式化为.xfs文件系统
[root@localhost ~]# blkid // 对文件系统类型查询
/dev/mapper/vg0-lv_mysql: UUID="9f2bca6b-5748-497a-b6ea-4194b8dcd237" TYPE="xfs"
### --- 把创建好的逻辑卷挂载到一个目录之下(挂载)
~~~ 在vim下直接查询 :r!blkid /dev/vg0/lv_mysql 该语句直接查询它的UID
[root@localhost ~]# getent passwd mysql // 查看mysql数据存放目录位置
mysql:x:996:994::/data/mysqldb:/sbin/nologin
[root@localhost ~]# mkdir /data/
[root@localhost ~]# vim /etc/fstab // 挂在的话还是需要写到磁盘里面,配置
UUID=9f2bca6b-5748-497a-b6ea-4194b8dcd237 /data/ xfs defaults 0 0
### --- 挂载
[root@localhost ~]# mount -a
[root@localhost ~]# df -h
/dev/mapper/vg0-lv_mysql 62879748 32992 62846756 1% /data
### --- 创建生产数据存放目录mysqdb
[root@localhost ~]# mkdir /data/mysqldb
附录二:
一、配置启动程序脚本:修改二进制文件,发现mysql程序目录没有读写权限
### --- 我们配置huge.cnf环境程序,覆盖到my.cnf我们的配置文件
[root@localhost mysql]# cp support-files/my-huge.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’?y // 表示同意覆盖
### --- 编辑启动程序配置文件
~~~ 配置在此位置,mysql目录没有给mysql用户授予读写权限,需要给mysql目录授予msql用户读写权限。
~~~ 或者也可以给它一个MySQL用户可以写的权限的位置(默认位置为/tmp/mysql)
[root@localhost mysql]# vim /etc/my.cnf // 修改我们的配置文件
[client]
port = 3306
socket = /usr/local/mysql/mysql.sock
[mysqld]
port = 3306
datadir = /data/mysqldb // 添加生产数据存储位置
socket = /usr/local/mysql/mysql.sock // 更改mysql.sock文件位置
二、报错解决
### --- 启动时会报错:
### --- 问题现象:
[root@localhost ~]# systemctl start mysql.service
'/data/mysqldb/localhost.localdomain.err' // 错误日志地址
### --- 错误分析:
[root@localhost ~]# cat /data/mysqldb/localhost.localdomain.err
[ERROR] Can't start server : Bind on unix socket: Permission denied // 权限拒绝
[ERROR] Do you already have another mysqld server running on socket: /usr/local/mysql/mysql.sock ? //没有找到mysql.sock文件
[root@localhost ~]# ss -tunlp // 查询到3306端口未开启,没有程序监听,
[root@localhost ~]# ll /usr/local/mysql/ -d // 查看到/usr/local/mysql/文件夹没有给mysql授予读写权限
drwxrwxr-x 12 root root 282 Nov 3 02:30 /usr/local/mysql/
### --- 解决方案:
[root@localhost mysql]# setfacl -R -m u:mysql:rwx /usr/local/mysql/ // -R:对任何数据都有写权限; u:mysql:rwx :针对用户mysql有读写执行权限;
[root@localhost mysql]# ll /usr/local/mysql/ -d
drwxrwxr-x+ 12 root root 4096 Nov 3 02:30 /usr/local/mysql/ // x+ 可以看到给mysql目录授予了X+权限
[root@localhost mysql]# systemctl start mysqld.service // 现在可以正常启动了
[root@localhost ~]# ss -tunlp // 此时可以看到3306端口了
tcp LISTEN 0 80 [::]:3306 users:(("mysqld",pid=118467,fd=21))
附录三:
一、配置启动程序脚本:修改二进制文件,发现安全脚本找不到/tmp.my.sock文件位置
### --- 我们配置huge.cnf环境程序,覆盖到my.cnf我们的配置文件
[root@localhost mysql]# cp support-files/my-huge.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’?y // 表示同意覆盖
### --- 编辑启动程序配置文件
~~~ 在配置安全脚本mysql_secure_installation时,默认是/tmp/mysql.sock下;
~~~ 更改目录地址后相对应的也需要更改mysql_secure_installation脚本配置信息。
[root@localhost mysql]# vim /etc/my.cnf // 修改我们的配置文件
[client]
port = 3306
socket = /usr/local/mysql/mysql.sock
[mysqld]
port = 3306
datadir = /data/mysqldb // 添加生产数据存储位置
socket = /usr/local/mysql/mysql.sock // 更改mysql.sock文件位置
二、报错解决:
### --- 执行安全脚本时报错:
### --- 问题现象:
[root@localhost ~]# mysql_secure_installation // 执行边安全脚本
MySQL server through socket '/tmp/mysql.sock' // 使用/tmp/mysql.sock文件,我们之前配置是在/usr/local/mysql/mysql.sock
### --- 报错分析:
[root@localhost ~]# less /usr/local/mysql/bin/mysql_secure_installation // 查看该脚本是不是定义了路径
### --- 解决方案:
[root@localhost ~]# vim /etc/my.cnf // 更改mysql.sock文件路径
socket = /tmp/mysql.sock
[root@localhost my.cnf.d]# /usr/local/mysql/bin/mysqld --print-defaults // 可以查看到他当时编译时指定的路径
/usr/local/mysql/bin/mysqld would have been started with the following arguments:
--port=3306 --datadir=/data/mysqldb --socket=/tmp/mysql.sock --skip-external-locking --key_buffer_size=384M --max_allowed_packet=1M --table_open_cache=512 --sort_buffer_size=2M --read_buffer_size=2M --read_rnd_buffer_size=8M --myisam_sort_buffer_size=64M --thread_cache_size=8 --query_cache_size=32M --thread_concurrency=8 --log-bin=mysql-bin --server-id=1
[root@localhost ~]# mysql_secure_installation // 此刻就可以正常执行了
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
cdv002-database
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」