MariaDB安裝

来源:https://www.cnblogs.com/fishparadise/archive/2018/05/21/9068125.html
-Advertisement-
Play Games

二進位安裝 (CentOS7 + MariaDB 10.2.8) 安裝前準備 1. 關閉NUMA 2. 檢查NUMA 限制設置 ulimit a查看 主要查看open files,max user processes的限制設置。 open files系統打開文件過多,會報 OS error code ...


二進位安裝

(CentOS7 + MariaDB 10.2.8)

安裝前準備

1. 關閉NUMA
numctl -interleave=all /path/mysqdd --defaults-file=/path/my.cnf
https://access.redhat.com/solutions/23216
2. 檢查NUMA
numactl --show
numactl --hardware

限制設置

ulimit -a查看
主要查看open files,max user processes的限制設置。
open files系統打開文件過多,會報 OS error code 24: Too many open files的錯誤。

直接修改/etc/security/limits.conf文件,需重啟OS生效。
vim /etc/security/limits.conf

*               soft    nproc           65535
*               hard    nproc           65535
*               soft    nofile          65535
*               hard    nofile          65535
3. Swap

原則:要麼不分配,要麼最多分配4GB
查看:
sysctl -a | grep vm.swappiness

臨時性修改(等號兩邊沒有空格):

sysctl vm.swappiness=0
sysctl -p

永久修改(需重啟OS生效):

vim /etc/sysctl.conf
vm.swappiness=0

如果沒有,在最後添加一行。

4. CPU

關閉硬體的節能模式,開啟高性能模式

5. 文件系統

建議XFS
mysql資料庫所在/data目錄單獨一個掛載分區

6. SELinux & iptables

臨時性關閉SELinux

setenforce 0

永久關閉

vim /etc/sysconfig/selinux
SELINUX=disabled

臨時性關閉iptables

service iptables stop

永久關閉

chkconfig --del iptables

如果是CentOS 7下關閉firewall

systemctl stop firewall
systemctl disable firewall
7. IO調度

raid

正式安裝

1. 創建賬號
groupadd mysql

運行的mysql賬號不能登錄linux

useradd -g mysql -d /usr/local/mysql -s /sbin/nologin -M mysql
id mysql
2. 基本軟體安裝
mkdir -p /opt/mysql
cd /opt/mysql
wget https://mirrors.tuna.tsinghua.edu.cn/mariadb//mariadb-10.2.8/bintar-linux-x86_64/mariadb-10.2.8-linux-x86_64.tar.gz
tar -zxvf mariadb-10.2.8-linux-x86_64.tar.gz 
cd /usr/local/
ln -s /opt/mysql/mariadb-10.2.8-linux-x86_64 mysql
chown -R mysql:mysql mysql mysql/
3. 資料庫相關的目錄
mkdir -p /data/mysql/mysql3306/{data,log,tmp}
cd /data/
chown -R mysql:mysql mysql

配置文件:/etc/my.cnf
以下為4G記憶體,4核邏輯CPU的my.cnf參考,需要根據生產實際情況而調整:

[client]
port = 3306
socket = /data/mysql/mysql3306/tmp/mysql3306.sock
default-character-set = utf8mb4

[mysql]
auto-rehash
prompt = "\\u@\\h [\\d]"
default-character-set = utf8mb4

[mysqld]
user = mysql
port = 3306
socket = /data/mysql/mysql3306/tmp/mysql3306.sock
basedir = /usr/local/mysql
datadir = /data/mysql/mysql3306/data
tmpdir = /data/mysql/mysql3306/tmp

#character set
character-set-server = utf8mb4
open_files_limit = 65535
max_connections = 200
max_connect_errors = 100000

#logs
log-error = /data/mysql/mysql3306/log/error.log
slow_query_log = 1
long_query_time = 1
slow_query_log_file = /data/mysql/mysql3306/log/slow.log

#binlog
log-bin = /data/mysql/mysql3306/log/mysql-bin
binlog_format = row
binlog_cache_size = 4M
max_binlog_cache_size = 1000M
max_binlog_size = 500M
sync_binlog = 1
expire_logs_days = 7

#replication
#server-id format: port of mysql + last two segments of ip
server-id = 3306137244
relay_log = /data/mysql/mysql3306/log/relay-bin
log_slave_updates = 1

#innodb
innodb_data_file_path = ibdata1:1G:autoextend
innodb_buffer_pool_size = 2560M
innodb_buffer_pool_instances = 8
innodb_flush_log_at_trx_commit = 1
innodb_flush_method = O_DIRECT
innodb_file_per_table = 1
innodb_io_capacity = 2000
innodb_max_dirty_pages_pct = 50
innodb_log_file_size = 1G
innodb_log_buffer_size = 32M
innodb_rollback_on_timeout = 1
innodb_status_file = 1
#transaction_isolation = READ-COMMITTED

#buffer & cache
table_open_cache = 2048
table_definition_cache = 2048
max_heap_table_size = 32M
sort_buffer_size = 4M
join_buffer_size = 4M
thread_cache_size = 100
query_cache_size = 0
query_cache_type = 0
query_cache_min_res_unit = 512
thread_stack = 512K
tmp_table_size = 96M
key_buffer_size = 32M
read_buffer_size = 8M
read_rnd_buffer_size = 8M
bulk_insert_buffer_size = 64M

#time
default-time-zone = '+08:00'

[mysqldump]
quick
max_allowed_packet = 128M

[myisamchk]
key_buffer_size = 16M
sort_buffer_size = 32M
4. 初始化
cd /usr/local/mysql
./scripts/mysql_install_db  --user=mysql

如果不是配置文件不是預設目錄,指定一下。(--defaults-file=/etc/my.cnf必須是第一個參數)

./scripts/mysql_install_db   --defaults-file=/etc/my3307.cnf   --user=mysql

註意:一定要用相對路徑來安裝,否則會報:FATAL ERROR: Could not find ./bin/my_print_defaults的錯誤。

5. 啟動
cp /usr/local/mysql/support-files/mysql.server     /etc/init.d/mysql
/etc/init.d/mysql start

service mysql start

如果要加入系統自動啟動(生產環境一般不會設置自動啟動)

chkconfig --add mysql

官網有提到使用以下啟動方式: (https://mariadb.com/kb/en/the-mariadb-library/installing-mariadb-binary-tarballs)

/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf &

不能使用service msyql stop的方法來關閉,可使用/etc/init.d/mysql stop或mysqladmin -uroot -p shutdown或kill 進程來關閉(KILL的方式不推薦)

6. 連接mysql

如果在shell下輸入mysql顯示command not found 是環境變數沒有設置好。

echo 'export PATH=$PATH:/usr/local/mysql/bin' >>/etc/profile
source /etc/profile

在本機使用socket文件連接

mysql -S /data/mysql/mysql3306/tmp/mysql3306.sock -uroot -p

使用TCP/IP連接

mysql -uroot -p -h127.0.0.1
  1. 安全加固
ALTER USER 'root'@'localhost' IDENTIFIED BY 'my_password';
DELETE FROM mysql.user WHERE user = '';
FLUSH PRIVILEGES;
DROP DATABASE IF EXISTS `test`;
  1. 關閉mysql
/etc/init.d/mysql stop

service mysql stop







您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一同事在寫腳本時,遇到一個關於LIKE裡面使用不同的變數類型導致查詢結果不一致的問題,因為這個問題被不同的人問過好幾次,索性總結一下,免得每次都要解釋一遍,直接丟一篇博客豈不是更方便!其實看似有點讓人不解的現象背後實質跟數據類型的實現有關。 下麵我們構造這樣一個類似的簡單案例。如下所, CREATE... ...
  • 實例效果: 實現表數據的增修刪時,記錄日誌。 1.“複製”現有表, 創建相應的_Log表; (註意點: 2.對現有表,創建Insert,Update,Delete的觸發器, 並將相應數據 記錄到對應的_Log表 相應代碼如下: ...
  • 初始化故障排查 1. so依賴缺失 比如報這樣的錯誤: 可以用 安裝依賴包。 實驗發現安裝成功之後,還是報同樣的錯誤。用 查詢, 。上網找了原因,需要再 。而 安裝出來是numactl 2.0.9 2.el6.i686;所以需要再安裝 ,安裝出來是 。 解決方法,安裝libaio.so.1;但 預設 ...
  • 1.decode () 例子:它的寫法如下decode('a','b','c','d'),其中a,b,c,d可以是其他函數也可以是數值,依據我們自己的情況來使用,它的含義是如果a=b,那麼結果顯示c,否則d。 翻譯成我們更通俗易懂的話就是: if(sex=1) then return '男' els ...
  • 以下是MariaDB官方文檔說明,MariaDB如何安裝在已經存在MySQL實例的主機上: 但是如果是先安裝了MariaDB,然後再安裝MySQL,比如: 在 做了一個軟鏈接,即 具體見《MariaDB安裝》的配置是一樣的。 安裝時註意 新的MySQL實例的配置文件,比如/etc/my3308.cn ...
  • 一、什麼是資料庫鏡像 基本軟體的高可用性解決方案 快速的故障轉移恢復(3秒轉移),低硬體成本 基於資料庫級別的實現 二、資料庫鏡像中的伺服器角色 主體伺服器 承載主體資料庫 接受用戶連接和事務處理請求 鏡像伺服器 承載鏡像資料庫 作為主體資料庫的熱備份(主體資料庫的變化及時傳到鏡像資料庫中) 僅在故 ...
  • 轉載請標明出處:http://blog.csdn.net/zhaoyanjun6/article/details/80393761 本文出自 "【趙彥軍的博客】" 獲取當前時間 返回當前日期 :select curdate() ; 返回當前時間 :select curtime() ; 返回當前日期和 ...
  • 二進位安裝方式的MariaDB卸載 1. 關閉mysql服務 2. 刪除數據文件和目錄 3. 刪除軟鏈接,二進文件(如有必要) 4. 刪除自啟動配置,配置文件 5. 刪除mysql用戶和用戶組(如有必要) RPM包安裝方式的MariaDB卸載 1. 關閉mysql服務 2. 檢查mysql組件 3. ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...