日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

linux(Ubuntu22.04)二进制安装mysql及redis

發布時間:2025/6/17 数据库 19 如意码农
生活随笔 收集整理的這篇文章主要介紹了 linux(Ubuntu22.04)二进制安装mysql及redis 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

安裝MySQL

1.下載mysql安裝包

https://downloads.mysql.com/archives/community/

解壓壓縮包 tar xf mysql-8.0.30-linux-glibc2.17-x86_64-minimal.tar

再次解壓需要的壓縮包tar xf mysql-8.0.30-linux-glibc2.17-x86_64-minimal.tar.xz

將解壓的壓縮包移動到/usr/local目錄下

2.創建數據存放目錄

cd /usr/local/mysql

mkdir -p date

3.創建用戶組和用戶

groupadd mysql

useradd g mysql mysql

4.修改目錄權限

chown -R mysql.mysql /usr/local/mysql

5.初始化mysql

cd /usr/local/mysql

./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize

命令執行后會輸出密碼。將密碼復制下后

6.修改配置文件

vim /etc/my.cnf

[client]
port = 3306
socket = /usr/local/mysql/data/mysql.sock
default-character-set = utf8mb4 [mysql]
default-character-set = utf8mb4 [mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
init_connect = 'SET NAMES utf8mb4'
max_connections = 300 port = 3306
socket = /usr/local/mysql/data/mysql.sock
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1000M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
datadir = /usr/local/mysql/data
#lower_case_table_names=1
#如果要設置lower_case_table_names可以在初始化里面設置 ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql --lower_case_table_names=1 [mysqldump]
quick
max_allowed_packet = 16M [mysql]
no-auto-rehash [myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M [mysqlhotcopy]
interactive-timeout

7.設置mysql開機自啟動

vim /etc/systemd/system/mysql.service

[Unit]
Description=MySQL Server
After=network.target [Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE=5000
Restart=always
PIDFile=/usr/local/mysql/data/mysqld.pid [Install]
WantedBy=multi-user.target

systemctl daemon-reload

systemctl enable --now mysql

8.創建軟連接用于連接數據庫

ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

在ubuntu中登錄數據庫是為報錯libncurses.so.5確實需要安裝

apt install -y libncurses.so5

9.修改mysql登錄密碼

mysql -u root -p

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '自己的密碼';

10 設置mysql遠程登錄

use mysql;
update user set host='%' where user='root' limit 1;
flush privileges;

安裝redis

1.下載安裝包

https://download.redis.io/releases/

2.解壓壓縮包

3.移動至/usr/local/redis

4.編譯安裝

make && make install

5.redis 啟動

切換至redis根目錄,創建bin和etc文件,將redis.conf文件移動到/usr/local/redis/etc/目錄,將mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server 文件移動到/usr/local/redis/bin/目錄。

6.設置redis后臺啟動

vim redis.conf

將daemonize no 改為yes

7.允許遠程訪問

找到bind 127.0.0.1 注釋掉

8.啟動redis

./redis-server

9.設置開機自啟動

cat /etc/systemd/system/redis.service
[Unit]
Description=redis-server
After=network.target [Service]
Type=forking
# 這行配置內容要根據redis的安裝目錄自定義路徑
ExecStart=/usr/local/redis-6.0.5/bin/redis-server /usr/local/redis-6.0.5/redis.conf
PrivateTmp=true [Install]
WantedBy=multi-user.target systemctl daemon-reload
systemctl enable --now redis

附帶自動化安裝redis腳本

#!/bin/bash
#author: Turbo
# -------------------------------------------------------------------
# Script Name: download_redis.sh
# Description: A script to install and uninstall Redis.
# Author: Turbo
# Version: 1.0
# Created: 2024-12-21
# Last Updated: 2025-02-17
# License: MIT License
# -------------------------------------------------------------------
# Copyright (c) 2023 Turbo
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
# -------------------------------------------------------------------
# Contact:
# - GitHub: https://gitee.com/lian-haoxiong/
# ------------------------------------------------------------------- # 定義顏色常量
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color # 添加帶日志信息的分割線函數
print_log_separator() {
local message="$1"
local level="$2"
local color="$NC"
local line_length=60
local message_length=${#message}
local padding_length=$(( (line_length - message_length - 4) / 2 ))
local padding=$(printf '%*s' "$padding_length" | tr ' ' '=') case "$level" in
info)
color="$GREEN"
;;
warning)
color="$YELLOW"
;;
error)
color="$RED"
;;
*)
color="$YELLOW"
;;
esac echo -e "${color}${padding} ${message} ${padding}${NC}"
} show_help() {
print_log_separator "顯示幫助信息" "info"
echo -e "${GREEN}使用方法: $0 [版本號] [安裝目錄]${NC}"
echo -e "${GREEN}示例: $0 6.2.11 /opt${NC}"
echo -e "${GREEN}如果不提供版本號,默認安裝 Redis 6.0.5${NC}"
echo -e "${GREEN}如果不提供安裝目錄,默認安裝在 /usr/local/${NC}"
echo -e "${GREEN}卸載 Redis: $0 --uninstall [安裝目錄]${NC}"
exit 0
} uninstall_redis() {
read -p "請輸入安裝目錄 (默認 /usr/local/): " INSTALL_DIR
if [ -z "$INSTALL_DIR" ]; then
INSTALL_DIR="/usr/local/"
fi REDIS_DIR="$INSTALL_DIR/redis-*" # 卸載 Redis
print_log_separator "卸載現有的 Redis 安裝..." "warning"
sudo systemctl stop redis
sudo systemctl disable redis
sudo rm -f /etc/systemd/system/redis.service
sudo systemctl daemon-reload
sudo userdel -r redis
sudo rm -rf $REDIS_DIR
sudo rm -rf $INSTALL_DIR/src/redis-*
sudo rm -rf $INSTALL_DIR/redis-*.tar.gz echo -e "${GREEN}Redis 卸載完成!${NC}"
exit 0
} check_existing_redis() {
if systemctl is-active --quiet redis; then
print_log_separator "檢測到已安裝 Redis" "warning"
echo -e "${YELLOW}檢測到已安裝 Redis。${NC}"
read -p "是否要卸載現有的 Redis 安裝? (y/n): " UNINSTALL
if [ "$UNINSTALL" == "y" ]; then
uninstall_redis
else
read -p "是否要修改 Redis 的端口? (y/n): " CHANGE_PORT
if [ "$CHANGE_PORT" == "y" ]; then
read -p "請輸入新的 Redis 端口 (默認 6379): " NEW_PORT
if [ -z "$NEW_PORT" ]; then
NEW_PORT="6379"
fi
fi
fi
fi
} get_redis_versions() {
print_log_separator "正在獲取 Redis 官方版本列表..." "info"
VERSIONS_URL="https://download.redis.io/releases/"
VERSIONS_PAGE=$(curl -s $VERSIONS_URL) # 解析版本列表
IFS=$'\n' read -rd '' -a versions <<< "$(echo "$VERSIONS_PAGE" | grep -oP 'redis-\K[\d]+\.[\d]+\.[\d]+' | sort -rV)"
echo "${versions[@]}"
} select_redis_version() {
local versions=("$@")
print_log_separator "展示 Redis 版本列表" "info"
echo "請選擇要安裝的 Redis 版本:"
for i in "${!versions[@]}"; do
echo "[$i] ${versions[$i]}"
done # 用戶選擇版本
read -p "請輸入編號 (默認 6.0.5): " choice
# 檢查用戶輸入是否合法
if [[ "$choice" =~ ^[0-9]+$ ]] && [ "$choice" -lt "${#versions[@]}" ]; then
REDIS_VERSION=${versions[$choice]}
else
echo "無效的選擇或未輸入選擇,使用默認版本 6.0.5"
REDIS_VERSION="6.0.5"
fi
} install_dependencies() {
print_log_separator "更新軟件包并安裝必要的依賴..." "info"
if [[ "$OS" == "ubuntu" || "$OS" == "debian" ]]; then
sudo apt-get update
sudo apt-get install -y build-essential tcl wget curl
elif [[ "$OS" == "centos" || "$OS" == "rhel" ]]; then
sudo yum install -y gcc make tcl wget curl
else
echo -e "${RED}不支持的操作系統: $OS${NC}"
exit 1
fi
} download_and_extract_redis() {
print_log_separator "下載 Redis $REDIS_VERSION..." "info"
wget "$DOWNLOAD_URL"
if [ $? -ne 0 ]; then
echo -e "${RED}下載失敗,請檢查 Redis 版本號。${NC}"
exit 1
fi # 解壓
print_log_separator "解壓 Redis..." "info"
sudo tar xf "redis-$REDIS_VERSION.tar.gz"
} compile_redis() {
print_log_separator "編譯 Redis..." "info"
cd "redis-$REDIS_VERSION"
sudo make
sudo make install
} configure_redis() {
print_log_separator "配置 Redis..." "info"
sudo sed -i 's/protected-mode yes/protected-mode no/' "$REDIS_DIR/redis.conf"
sudo sed -i 's/bind 127.0.0.1/#bind 127.0.0.1/' "$REDIS_DIR/redis.conf" # 修改端口
if [ -n "$NEW_PORT" ]; then
print_log_separator "修改 Redis 端口為 $NEW_PORT..." "info"
sudo sed -i "s/^port 6379/port $NEW_PORT/" "$REDIS_DIR/redis.conf"
fi
} create_redis_user_and_dirs() {
print_log_separator "創建 Redis 用戶和數據目錄..." "info"
sudo useradd redis
} create_redis_service() {
print_log_separator "創建 Redis Systemd 服務..." "info"
sudo tee /etc/systemd/system/redis.service > /dev/null <<EOF
[Unit]
Description=Redis In-Memory Data Store
After=network.target [Service]
User=redis
Group=redis
ExecStart=$REDIS_DIR/src/redis-server $REDIS_DIR/redis.conf
ExecStop=$REDIS_DIR/src/redis-cli shutdown
Restart=always [Install]
WantedBy=multi-user.target
EOF
} start_and_enable_redis() {
print_log_separator "啟動并啟用 Redis 服務..." "info"
sudo systemctl daemon-reload
sudo systemctl start redis
sudo systemctl enable redis
} download_and_install_redis() {
print_log_separator "開始腳本執行" "info"
# 檢查是否需要幫助信息
if [ "$1" == "--help" ]; then
show_help
fi # 檢查是否需要卸載 Redis
if [ "$1" == "--uninstall" ]; then
uninstall_redis
fi # 檢查是否已安裝 Redis
check_existing_redis # 獲取 Redis 版本列表
versions=($(get_redis_versions)) # 用戶選擇版本
select_redis_version "${versions[@]}" # 用戶輸入安裝目錄
read -p "請輸入安裝目錄 (默認 /usr/local/): " INSTALL_DIR
if [ -z "$INSTALL_DIR" ]; then
INSTALL_DIR="/usr/local/"
fi REDIS_DIR="$INSTALL_DIR/redis-$REDIS_VERSION"
DOWNLOAD_URL="http://download.redis.io/releases/redis-$REDIS_VERSION.tar.gz"
SOURCE_DIR="$INSTALL_DIR/src" # 判斷系統類型
if [ -f /etc/os-release ]; then
. /etc/os-release
OS=$ID
else
echo "無法識別操作系統類型,請手動安裝所需依賴。"
exit 1
fi # 安裝必要的依賴
install_dependencies # 創建源代碼目錄
sudo mkdir -p "$INSTALL_DIR"
cd "$INSTALL_DIR" # 下載并解壓 Redis
download_and_extract_redis # 編譯 Redis
compile_redis # 配置 Redis
configure_redis # 創建 Redis 用戶和數據目錄
create_redis_user_and_dirs # 創建 Systemd 服務
create_redis_service # 啟動并啟用 Redis 服務
start_and_enable_redis print_log_separator "安裝完成" "info"
echo -e "${GREEN}Redis $REDIS_VERSION 安裝完成并啟動成功!${NC}"
} # 調用函數
download_and_install_redis "$@"

總結

以上是生活随笔為你收集整理的linux(Ubuntu22.04)二进制安装mysql及redis的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黄色永久免费网站 | 久久这里只有精品首页 | 免费草逼视频 | 日韩国产精品一区二区三区 | 成人h动漫精品一区二区器材 | 女婴高潮h啪啪 | 韩日精品在线观看 | 又黄又免费的视频 | 欲涩漫入口免费网站 | www.97ai.com| 日韩一区二区三免费高清在线观看 | 精品视频久久久久久久 | 精品黄网 | 咪咪色图 | 影音先锋成人在线 | 亚洲欧美另类日韩 | 欧美色图亚洲自拍 | www.白虎| 日韩欧美自拍 | 理论片av | 美女福利视频在线观看 | 福利在线电影 | 亚洲一区在线视频 | 男女日屁视频 | 精品成人| 成人av激情 | 精品视频一区二区三区四区 | 4388成人网| 午夜青青草 | 国产一区二区综合 | av导航网 | 久久中出 | 欧美性大战久久久久久久 | 贝利弗山的秘密1985版免费观看 | 牛夜精品久久久久久久99黑人 | 欧美日韩一区二区三区国产精品成人 | 国产成人精品免高潮在线观看 | 国产永久精品 | 少妇影院在线观看 | 嫩草影院菊竹影院 | 中文天堂在线播放 | 一区二区三区高清 | 欧美aaaaaaaaaa | 青娱乐自拍视频 | 囯产精品久久久久久 | 永久av在线免费观看 | 中文字幕不卡在线播放 | 怡春院一区二区 | 日韩在线中文字幕视频 | 午夜免费福利影院 | 免费黄色网页 | 久久露脸国语精品国产91 | 日韩一区二区三区免费视频 | 四虎成人精品永久免费av九九 | 亚洲一二区视频 | 日本一区二区高清免费 | 少妇裸体挤奶汁奶水视频 | 亚洲精品二三区 | 吖v在线| 波多野结衣一区二区三区免费视频 | 国产艳情片 | 日本熟妇人妻xxxxx | 制服丝袜第一页在线观看 | 精品人妻一区二区三区蜜桃视频 | 久久美女免费视频 | 美女诱惑一区 | 亚洲高清精品视频 | 3344成人| 黄色国产视频 | 91香蕉久久| 久草视频福利 | 成人黄色免费网 | 毛片随便看 | 俺去俺来也在线www色官网 | 天堂中文资源在线 | 未满十八18禁止免费无码网站 | 欧美视频在线免费 | 精品人妻一区二区三区日产 | 人妻少妇偷人精品久久久任期 | 台湾性生生活1 | 人妻偷人精品一区二区三区 | 亚洲高清视频网站 | 美女高潮黄又色高清视频免费 | 神马影院午夜伦理片 | 多男调教一女折磨高潮高h 国内毛片毛片毛片毛片毛片 | 中文字幕视频免费观看 | 看免费黄色大片 | 国产群p视频 | 中文字幕在线网 | 亚洲免费福利 | 欧美大尺度视频 | 伊人手机在线视频 | 国产人妻人伦精品1国产 | 亚洲视频一二三四 | 久久97久久97精品免视看 | 毛片一级在线观看 | av一区二区在线观看 | 在线干 | 又大又长粗又爽又黄少妇视频 |