目前在代码上线和logstash这块比较薄弱
如果还算喜欢数据库的话就转数据库好了
机器学习—》前端—》运维—》DBA
官网
老男孩Linux运维MySQL中级-第2章-MySQL8.0安装部署官方网站:https://www.oldboyedu.com## 2.1 MySQL版本背景与选择### 1)MySQL版本发展背景https://mirrors.aliyun.com/mysql/### 2)企业版与社区版### 3)社区版版本选择大方向:GA,退后6-12月,前后没有太多小版本,作为选择.5.6 : 5.6.40 + 双数版,经典版,官方即将停止更新.5.7 : 5.7.22/30 + 双数版,主流,逐步过渡到8.08.0 : 8.0.26 + 双数版,开始评测,小规模边缘业务数据库使用.本着眼当下和未来,因此,讲解以MySQL8.0为主,同时兼顾MySQL 5.7,并尽可能兼顾MySQL5.6,当下互联网企业MySQL5.6正逐步淘汰, 5.7为绝对主流,8.0时代已到来。**面试题:你们公司用的MySQL版本?**## 2.2 MySQL安装方式及选择### 1)数据库安装方式:1.yum:简单、自动解决依赖(默认源没有数据库). 没法定制.https://www.cnblogs.com/oldboy666/p/15559963.html2.二进制:比较简单。没办法定制,软件大,***** 中小企业推荐3.rpm:复杂、下载、手工解决依赖、没法定制https://www.cnblogs.com/oldboy666/p/15558992.html4.源码:特别复杂、编译软件gcc都需要升级,可定制任何东西.大厂早期:百度\阿里===>改动源码===>编译==>rpm==>yum## 2.3 MySQL软件获取官方:https://downloads.mysql.com/archives/community/国内镜像:https://mirrors.aliyun.com/mysql/https://mirrors.aliyun.com/mysql/MySQL-8.0/mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz#### 2.4 MySQL8.0.26企业级安装实践#### 1.硬件环境准备vmware虚拟机环境学习,相应地则需准备如下内容:1)VM虚拟机内存最好设置4GB以上。2)提前下载好要安装的MySQL8.0软件包。生产物理服务器:SSD固态+Raid10(Raid5)内存:64G/128G/256G#### 2.软件环境准备基本条件:CentOS7.9能上网yum install wget net-tools lrzsz -y#1)查看系统环境[root@oldboy ~]# cat /etc/redhat-release #<==操作系统版本。CentOS Linux release 7.9.2009 (Core)#2)关闭selinux:setenforce 0getenforcesed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config#3)卸载mariadb依赖包yum remove mariadb* -y #<==卸载系统已经安装的mariadb依赖包。#4)安装相关依赖包yum install ncurses ncurses-devel libaio-devel openssl openssl-devel -y#5)关闭防火墙systemctl stop firewalldsystemctl disable firewalld#### 3.开始安装MySQL本书二进制方式安装MySQL,安装过程如下。(1)建立MySQL用户账号首先以root身份登录到Linux系统中,然后执行如下命令创建mysql用户账号:useradd mysql -s /sbin/nologin -M #<==创建mysql用户。id mysql(2)下载、解压mysql软件包,并做好软链接mysql到/usr/local。cd /opt下载或上传二进制mysqltar xf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xzmv /opt/mysql-8.0.26-linux-glibc2.12-x86_64 /usr/local/mysqlls -l /usr/local/mysql(3)创建MySQL数据目录、配置文件(/etc/my.cnf)并授权#1)增加简易配置文件,后面在优化cat>/etc/my.cnf<<'EOF'#by oldboy weixin:oldboy0102[mysqld]user=mysqlbasedir=/usr/local/mysqldatadir=/data/3306/dataport=3306socket=/tmp/mysql.sock[client]socket=/tmp/mysql.sockEOFcat /etc/my.cnfchown mysql.mysql /etc/my.cnf#2)创建MySQL数据目录并授权mkdir -p /data/3306/datachown -R mysql.mysql /datals -ld /data(4)配置PATH环境变量,并初始化MySQL数据库#1) 配置PATH环境变量echo 'export PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile. /etc/profileecho $PATH#2)初始化MySQL数据库/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql \--basedir=/usr/local/mysql --datadir=/data/3306/data重点知识1 : 之前不同版本的初始化命令异同/usr/local/mysql/scripts/mysql_install_db #5.7之前/usr/local/mysql/bin/mysqld #5.7和8.0初始化重点知识2: --initialize和--initialize-insecure区别--initialize: 会生成一个12位,4种密码复杂度临时管理员密码. 第一次登陆需要修改.--initialize-insecure:管理员密码为空.来自8.0官方翻译 by oldboy:mysql_install_db程序已从MySQL发行版中删除。数据目录初始化应通过使用 --initialize 或--initialize-insecure选项调用mysqld来执行。 此外,删除了mysql_install_db使用的mysqld选项,并删除了控制mysql_install_db安装位置的选项。#(5)初始化数据库的原理及结果说明初始化数据库的实质就是创建基础的数据库系统的库文件等信息,例如:生成mysql库表等。[root@db01 /opt]# ls /data/3306/data/ -ltotal 176568-rw-r----- 1 mysql mysql 56 Mar 7 16:40 auto.cnf-rw------- 1 mysql mysql 1680 Mar 7 16:40 ca-key.pem-rw-r--r-- 1 mysql mysql 1112 Mar 7 16:40 ca.pem-rw-r--r-- 1 mysql mysql 1112 Mar 7 16:40 client-cert.pem2.2.2配置并启动MySQL数据库1.设置MySQL启动脚本cd /usr/local/mysql/support-files/cp mysql.server /etc/init.d/mysqld #<==拷贝mysql启动脚本到启动路径。systemctl enable mysqld #<==等价chkconfig mysqld on(c7把服务设置开机自启动命令)2.启动MySQL数据库systemctl start mysqldservice start mysqld/etc/init.d/mysqld start提示:使用kill -9 ID关闭数据库引起数据库故障案例http://oldboy.blog.51cto.com/2561410/1431161。3.检查MySQL数据库是否启动。8.0增加33060端口netstat -lntup|grep 3304.查看MySQL数据库启动结果日志。cat /data/3306/data/db01.err5.过滤错误日志egrep -i "error" /data/3306/data/db01.err2.2.3登录MySQL测试执行登录命令如下:mysql2.2.4 MySQL安装常见故障分析及解决方案问题1:初始化报错libaio[root@oldboy opt]# mysqld --initialize-insecure --user=mysql \--basedir=/usr/local/mysql --datadir=/data/3306/datamysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory原因:缺少libaio-devel依赖包解决:yum install libaio-devel -y如果不知道包名,可以执行 yum provides libaio -y查.问题2: 初始化报错数据文件目录不为空2021-11-09T04:08:57.631792Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.2021-10-09T04:08:57.631803Z 0 [ERROR] [MY-013236] [Server] The designated data directory /data/3306/data/ is unusable. You can remove all files that the server added to it.解决:rm -rf /data/3306/data/*问题3:启动后初始无法登录[root@oldboy ~]# mysqlERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)原因:此问题一般都是数据库初始化问题或者数据库文件损坏以及目录权限问题。解决办法:删除初始化目录,然后重新初始化数据库,剩余过程不变。rm -rf /data/3306/data/*mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3306/data老男孩答疑:Access denied问题原因:1.数据库初始化问题2.目录权限问题3.系统数据库文件损坏4.用户密码不对5.授权的主机范围不对.### 今日作业:1. 新克隆机器,练习部署5.6、5.7最新版,注意端口\安装路径\数据文件路径\启动程序名字2. 写好笔记。### 企业面试:### 1.数据库文件损坏最大可能性1)kill -9 pid #强制提示:使用kill -9 ID关闭数据库引起数据库故障案例http://oldboy.blog.51cto.com/2561410/1431161。2)突然断电了.3)磁盘坏道.mysql备份恢复.### 2.重点知识1初始化路径和命令不同初始化密码参数### 3.你们公司数据库的版本?573057208017###4.回顾把汽车买回家了.不会开.
