|NO.Z.00009|——————————|^^ 構建 ^^|——|Mysql&Mariadb&二進位制部署配置.V2|
阿新 • • 發佈:2022-03-22
[Applications:Mysql&Mariadb&二進位制部署配置.V2] [Applications.Databases] [|mysql/mariadb10.2.35二進位制安裝/配置]
附錄一: 一、在虛擬機器下新增一塊空磁碟並建立邏輯卷(用來作為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 // 此刻就可以正常執行了
===============================END===============================
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
來自為知筆記(Wiz)