開源大數據集羣部署(一)集羣實施規劃
開源大數據集羣部署(二)集羣基礎環境實施準備
作者:櫰木
本文將介紹mysql部署,其中在hd1.dtstack.com主機root權限下安裝配置
1 解壓文件
解壓名為mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz的壓縮包,其內容解壓到/opt/目錄下。然後通過符號鏈接將目錄/opt/mysql-8.0.31-linux-glibc2.12-x86_64/鏈接到/opt/mysql。
tar -xvJf mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz -C /opt/
ln -s /opt/mysql-8.0.31-linux-glibc2.12-x86_64/ /opt/mysql
2 配置文件
mysql配置文件/etc/my.cnf包含了一系列參數和設置,用於配置MySQL服務器的行為和性能,具體配置內容如下:
[client]
port = 3306
socket = /data/mysql8/data/mysql.sock
[mysql]
prompt = "\u@mysql \R:\m:\s [\d]>"
port = 3306
socket = /data/mysql8/data/mysql.sock
[mysqld]
# 用户
user = mysql
# # 端口
port = 3306
# # 安裝目錄
basedir = /opt/mysql
# # 數據目錄
datadir = /data/mysql57/data
# # sock 文件目錄
socket = /data/mysql57/data/mysql.sock
# # 臨時文件目錄
tmpdir = /data/mysql57/tmp
# # 錯誤日誌目錄
log-error = /data/mysql57/logs/error.log
# # Server id
server-id = 1
# # 二進制日誌
log-bin = /data/mysql8/logs/mysql-bin
# # binlog 清理機制
expire_logs_days = 10
# # 日誌格式 推薦為 row
binlog_format = ROW
# # 雙一參數
# sync_binlog = 1
# # binlog 緩存 如果有大事務 可以提升 binlog 寫入效率
# binlog_cache_size = 4M
# # binlog 使用最大內存
max_binlog_cache_size = 4G
# # 單 binlog 文件大小
max_binlog_size = 500M
# # 中繼日誌目錄
relay_log = /data/mysql57/logs/mysql-relay
# # GTID
# gtid_mode = on
# # 強制GTID的一致性
# enforce_gtid_consistency = 1
# # 隔離級別
transaction_isolation = READ-COMMITTED
# # innodb 最大緩存區 操作系統內存的 70%-80% 最佳
# innodb_buffer_pool_size = 2048M
# # 獨立的緩衝池實例,建議每個實例大小至少為 1 G 參考 buffer pool 大小設置
# innodb_buffer_pool_instances = 2
# # 默認為關閉OFF。如果開啓該參數,啓動MySQL服務時,MySQL將本地熱數據加載到InnoDB緩衝池中
# innodb_buffer_pool_load_at_startup = 1
# # 默認為關閉OFF。如果開啓該參數,停止MySQL服務時,InnoDB將InnoDB緩衝池中的熱數據保存到本地硬盤
# innodb_buffer_pool_dump_at_shutdown = 1
# # 共享表空間大小
# innodb_data_file_path = ibdata1:500M:autoextend
# # 臨時表空間
# innodb_temp_data_file_path = ibtmp1:200M:autoextend
# # redo 刷寫機制 雙一參數之一
# innodb_flush_log_at_trx_commit = 1
# # redo buffer size
# innodb_log_buffer_size = 32M
# # redo 文件大小
# innodb_log_file_size = 128MB
# # redo 日誌組數 默認為 2
# innodb_log_files_in_group = 2
# # 排序緩存大小
# innodb_sort_buffer_size = 1048576
# # doublewrite 兩次寫機制
# innodb_doublewrite = 1
# # 開啓慢日誌組
# slow_query_log = 1
# # 慢日誌目錄
# slow_query_log_file = /data/mysql57/logs/slow.log
# # 查詢大於多少秒會記錄到慢日誌中
# long_query_time = 5
# # 是否記錄未使用索引的 SQL
# log_queries_not_using_indexes = 0
# # MySQL 允許的最大連接
max_connections = 1000
lower-case-table-names = 1
#跳過ssl
skip_ssl
# # 單個用户限制的最大連接數,默認是不限制
# max_user_connections = 64
# #最大連接錯誤數,防止密碼暴力破解
# max_connect_errors = 10000
# # PID 文件
pid-file = mysql.pid
# # Server 編碼
character-set-server = utf8mb4
# # Server 比較規則
# collation_server = utf8mb4_general_ci
# # 禁用DNS主機名查找
# skip_name_resolve = 1
# # 打開文件最大數量
open_files_limit = 65535
# # 自動提交
autocommit = 1
# # timestamp 列如果沒有顯式定義為 null
# explicit_defaults_for_timestamp = 1
説明:server-id= 1服務的唯一編號,master為1
3 創建對應數據和日誌目錄
為MySQL創建數據目錄、日誌目錄和臨時目錄,並設置這些目錄的所有者為mysql用户和mysql用户組
mkdir -p /data/mysql8/data/
mkdir -p /data/mysql8/logs/
mkdir -p /data/mysql8/tmp
chown mysql:mysql -R /data/mysql8
4 初始化mysql數據
執行MySQL服務器的初始化過程,生成初始的系統表和數據文件,從而能夠啓動MySQL服務器並開始使用它。
cd /opt/mysql
bin/mysqld --initialize --user=mysql --basedir=/opt/mysql --datadir=/data/mysql8/data/ --lower-case-table-names=1
5 啓動服務和檢查服務(mysql權限啓動mysql數據庫)
服務配置文件(mysqld.service):
vi /etc/systemd/system/mysqld.service
[Unit]
Description=MySQL Server 8.0.31
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/opt/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
啓動MySQL服務:
systemctl start mysqld
狀態為running表示mysql服務已經起來
修改默認密碼:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
6 創建用户
mysql> CREATE USER 'test'@'%' IDENTIFIED BY '123456';
mysql> flush privileges;
[mysql@hd3.dtstack.com ~]$ systemctl stop mysqld
[mysql@hd3.dtstack.com ~]$ systemctl start mysqld
更多技術信息請查看雲掣官網https://yunche.pro/?t=yrgw