1. 程式人生 > 其它 >|NO.Z.00009|——————————|^^ 構建 ^^|——|Mysql&Mariadb&二進位制部署配置.V2|

|NO.Z.00009|——————————|^^ 構建 ^^|——|Mysql&Mariadb&二進位制部署配置.V2|



[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)