ansible部署二进制mysql 8

embedded/2025/1/16 21:02:39/

1、配置文件

ll /ansible
-rw-r--r-- 1 root root        836 Sep 22 12:09 my.cnf
-rw-r--r-- 1 root root        810 Sep 22 07:21 mysql.service
-rw-r--r-- 1 root root       2731 Sep 22 12:32 mysql.yam

2、my.cnf内容

root@bole:/ansible# cat my.cnf 
[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8mb4
[mysqld]
skip-name-resolve
user=mysql
ngram_token_size=2
server-id=1
default_password_lifetime=0
port=3306
#设置安装目录
basedir=/app/mysql
#数据存放目录
datadir=/app/mysql/data
log-error=/app/mysql/logs/err.log
#允许最大连接数
max_connections=1000
#服务端默认使用的字符集
character-set-server=utf8mb4
#创捷新表时默认的储存引擎
default-storage-engine=INNODB
#忘记密码时使用
#skip-grant-tables
#不区分大小写
lower_case_table_names=1
#认证方式
default_authentication_plugin=mysql_native_password
max_allowed_packet=500M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
wait_timeout=28800
interactive_timeout=28800
max_connect_errors=100
max_user_connections=0
#日志文件大小
max_binlog_size=100M

3、mysql.service内容

root@bole:/ansible# cat mysql.service 
[Unit]
Description=MySQL Server
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# Have mysqld write its state to the systemd notify socket
Type=notify# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0# Start main service
ExecStart=/app/mysql/bin/mysqld --defaults-file=/app/mysql/conf/my.cnf $MYSQLD_OPTS# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql# Sets open_files_limit
LimitNOFILE=10000Restart=on-failure
RestartPreventExitStatus=1# Set environment variable MYSQLD_PARENT_PID. This is required for restart.
Environment=MYSQLD_PARENT_PID=1PrivateTmp=false

4、mysql.yaml的内容

root@bole:/ansible# cat mysql.yaml 
- name: Install MySQLhosts: 192.168.10.102gather_facts: no#创建用户组tasks:- name: Create MySQL groupgroup:name: mysqlsystem: yesgid: 306- name: Create MySQL useruser:name: mysqlshell: /sbin/nologinsystem: yesgroup: mysqluid: 306home: /data/mysqlcreate_home: no#将shell的标准输出赋予 id_output- name: Check creation of user and groupshell: id mysqlregister: id_output#将标准输出打印,加stdout即使捕获register模块的标准输出- name: Print output of 'id mysql'debug:var: id_output.stdout#创建app目录- name: Create directory for MySQL installationfile:path: /appstate: directorymode: 0755#下载mysql的tar包并将其解压- name: Unzip MySQL tarballblock:- name: Download MySQL tarballget_url:url: https://cdn.mysql.com/Downloads/MySQL-8.0/mysql-8.0.39-linux-glibc2.28-x86_64.tardest: /app- name: Unzip MySQL tarball to temporary directoryunarchive:src: /app/mysql-8.0.39-linux-glibc2.28-x86_64.tardest: /appcopy: no- name: Tar.xz Mysqlunarchive:src: /app/mysql-8.0.39-linux-glibc2.28-x86_64.tar.xzdest: /appcopy: no- name: Move MySQL directory to final locationshell: mv /app/mysql-8.0.39-linux-glibc2.28-x86_64 /app/mysqlargs:creates: /app/mysql- name: Set ownership and permissions for MySQL directoryfile:path: /app/mysqlstate: directoryowner: mysqlgroup: mysqlmode: 0755#创建所需的目录- name: Create MySQL directoriesfile:path: "{{ item }}"state: directoryowner: mysqlgroup: mysqlmode: 0755with_items:- /app/mysql- /app/mysql/logs- /app/mysql/conf- /app/mysql/data#安装依赖- name: Install dependenciesapt:name:- libaio1- libaio-dev- libncurses5-devupdate_cache: yes#拷贝配置文件及service文件- name: Copy MySQL configuration filescopy:src: /ansible/my.cnfdest: /app/mysql/confowner: mysqlgroup: mysqlmode: 0644- name: Copy Mysql.servicecopy:src: /ansible/mysql.servicedest: /usr/lib/systemd/systemowner: rootgroup: rootmode: 0644#安装mysql并启动- name: Initialize MySQLshell: /app/mysql/bin/mysqld --defaults-file=/app/mysql/conf/my.cnf --initializeenvironment:MYSQL_ROOT_PASSWORD: your_root_password_here- name: Start MySQL servicesystemd:name: mysqlstate: startedenabled: yes

5、验证查看

root@ab2:~# systemctl status mysqlmysql.service - MySQL ServerLoaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)Active: active (running) since Sun 2024-09-22 12:33:40 UTC; 18min agoDocs: man:mysqld(8)http://dev.mysql.com/doc/refman/en/using-systemd.htmlMain PID: 4001 (mysqld)Status: "Server is operational"Tasks: 38 (limit: 4513)Memory: 361.7MCPU: 8.028sCGroup: /system.slice/mysql.service└─4001 /app/mysql/bin/mysqld --defaults-file=/app/mysql/conf/my.cnfSep 22 12:33:40 ab2 systemd[1]: Starting MySQL Server...
Sep 22 12:33:40 ab2 systemd[1]: Started MySQL Server.

6、登录验证

#获取密码
root@ab2:~# cat /app/mysql/logs/err.log |grep 'temporary password'
2024-09-22T12:33:37.597706Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: QEJw-p,=:8(.
#登录
mysql -uroot -p 'QEJw-p,=:8(.'#修改密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)

http://www.ppmy.cn/embedded/115529.html

相关文章

NLP-transformer学习:(7)evaluate实践

NLP-transformer学习:(7)evaluate 使用方法 打好基础,为了后面学习走得更远。 本章节是单独的 NLP-transformer学习 章节,主要实践了evaluate。同时,最近将学习代码传到:https://github.com/Mex…

速盾:高防 CDN 怎么屏蔽恶意访问?

在当今网络环境中,恶意访问是网站和应用面临的一个严重问题。高防 CDN(Content Delivery Network,内容分发网络)作为一种强大的防护工具,可以有效地屏蔽恶意访问,保护网站和应用的安全。那么,高…

无人机集群路径规划:雾凇优化算法( rime optimization algorithm,RIME)求解无人机集群路径规划,提供MATLAB代码

一、单个无人机路径规划模型介绍 无人机三维路径规划是指在三维空间中为无人机规划一条合理的飞行路径,使其能够安全、高效地完成任务。路径规划是无人机自主飞行的关键技术之一,它可以通过算法和模型来确定无人机的航迹,以避开障碍物、优化…

【Android】BottomSheet基本用法总结(BottomSheetDialog,BottomSheetDialogFragment)

BottomSheet BottomSheet 是一种位于屏幕底部的面板,用于显示附加内容或选项。提供了从屏幕底部向上滑动显示内容的交互方式。这种设计模式在 Material Design 中被广泛推荐,因为它可以提供一种优雅且不干扰主屏幕内容的方式来展示额外信息或操作。 具体…

深入理解API和前后端网络请求流程

在现代web应用开发中,理解API和网络请求流程的细节至关重要。本文将深入探讨从用户操作到后端处理,再到前端展示的整个过程,包括每个环节的作用、原理和潜在的优化点。 一、API的本质与类型 1. API的定义与作用 API(应用程序编…

Study Plan For Algorithms - Part35

1. 滑动窗口的最大值 给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。 方法一: def maxSlidingWindow(nums, k):queue []res []if not nums:return queuefor r in range(len(nums)):l r - k 1if l > 0 and queue[0] nums…

阿里云 Quick BI使用介绍

Quick BI使用介绍 文章目录 阿里云 Quick BI使用介绍1. 创建自己的quick bi服务器2. 新建数据源3. 上传文件和 使用4. 开始分析 -选仪表盘5. 提供的图表6. 一个图表的设置使用小结 阿里云 Quick BI使用介绍 Quick BI是一款全场景数据消费式的BI平台,秉承全场景消费…

keepalived高可用

keepalived是什么keepalived是集群管理中保证集群高可用的一个服务软件,用来防止单点故障。keepalived工作原理keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。虚拟路由冗余协议&#…