目前在代码上线和logstash这块比较薄弱

如果还算喜欢数据库的话就转数据库好了
机器学习—》前端—》运维—》DBA

官网

  1. 老男孩Linux运维MySQL中级-第2章-MySQL8.0安装部署
  2. 官方网站:https://www.oldboyedu.com
  3. ## 2.1 MySQL版本背景与选择
  4. ### 1)MySQL版本发展背景
  5. https://mirrors.aliyun.com/mysql/
  6. ### 2)企业版与社区版
  7. ### 3)社区版版本选择
  8. 大方向:GA,退后6-12月,前后没有太多小版本,作为选择.
  9. 5.6 : 5.6.40 + 双数版,经典版,官方即将停止更新.
  10. 5.7 : 5.7.22/30 + 双数版,主流,逐步过渡到8.0
  11. 8.0 : 8.0.26 + 双数版,开始评测,小规模边缘业务数据库使用.
  12. 本着眼当下和未来,因此,讲解以MySQL8.0为主,同时兼顾MySQL 5.7,并尽可能兼顾MySQL5.6,当下互联网企业MySQL5.6正逐步淘汰, 5.7为绝对主流,8.0时代已到来。
  13. **面试题:你们公司用的MySQL版本?**
  14. ## 2.2 MySQL安装方式及选择
  15. ### 1)数据库安装方式:
  16. 1.yum:简单、自动解决依赖(默认源没有数据库). 没法定制.
  17. https://www.cnblogs.com/oldboy666/p/15559963.html
  18. 2.二进制:比较简单。没办法定制,软件大,***** 中小企业
  19. 推荐
  20. 3.rpm:复杂、下载、手工解决依赖、没法定制
  21. https://www.cnblogs.com/oldboy666/p/15558992.html
  22. 4.源码:特别复杂、编译软件gcc都需要升级,可定制任何东西.
  23. 大厂早期:百度\阿里===>改动源码===>编译==>rpm==>yum
  24. ## 2.3 MySQL软件获取
  25. 官方:https://downloads.mysql.com/archives/community/
  26. 国内镜像:https://mirrors.aliyun.com/mysql/
  27. https://mirrors.aliyun.com/mysql/MySQL-8.0/mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
  28. #### 2.4 MySQL8.0.26企业级安装实践
  29. #### 1.硬件环境准备
  30. vmware虚拟机环境学习,相应地则需准备如下内容:
  31. 1)VM虚拟机内存最好设置4GB以上。
  32. 2)提前下载好要安装的MySQL8.0软件包。
  33. 生产物理服务器:
  34. SSD固态+Raid10(Raid5)
  35. 内存:64G/128G/256G
  36. #### 2.软件环境准备
  37. 基本条件:CentOS7.9能上网
  38. yum install wget net-tools lrzsz -y
  39. #1)查看系统环境
  40. [root@oldboy ~]# cat /etc/redhat-release #<==操作系统版本。
  41. CentOS Linux release 7.9.2009 (Core)
  42. #2)关闭selinux:
  43. setenforce 0
  44. getenforce
  45. sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
  46. #3)卸载mariadb依赖包
  47. yum remove mariadb* -y #<==卸载系统已经安装的mariadb依赖包。
  48. #4)安装相关依赖包
  49. yum install ncurses ncurses-devel libaio-devel openssl openssl-devel -y
  50. #5)关闭防火墙
  51. systemctl stop firewalld
  52. systemctl disable firewalld
  53. #### 3.开始安装MySQL
  54. 本书二进制方式安装MySQL,安装过程如下。
  55. 1)建立MySQL用户账号
  56. 首先以root身份登录到Linux系统中,然后执行如下命令创建mysql用户账号:
  57. useradd mysql -s /sbin/nologin -M #<==创建mysql用户。
  58. id mysql
  59. 2)下载、解压mysql软件包,并做好软链接mysql到/usr/local
  60. cd /opt
  61. 下载或上传二进制mysql
  62. tar xf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
  63. mv /opt/mysql-8.0.26-linux-glibc2.12-x86_64 /usr/local/mysql
  64. ls -l /usr/local/mysql
  65. 3)创建MySQL数据目录、配置文件(/etc/my.cnf)并授权
  66. #1)增加简易配置文件,后面在优化
  67. cat>/etc/my.cnf<<'EOF'
  68. #by oldboy weixin:oldboy0102
  69. [mysqld]
  70. user=mysql
  71. basedir=/usr/local/mysql
  72. datadir=/data/3306/data
  73. port=3306
  74. socket=/tmp/mysql.sock
  75. [client]
  76. socket=/tmp/mysql.sock
  77. EOF
  78. cat /etc/my.cnf
  79. chown mysql.mysql /etc/my.cnf
  80. #2)创建MySQL数据目录并授权
  81. mkdir -p /data/3306/data
  82. chown -R mysql.mysql /data
  83. ls -ld /data
  84. 4)配置PATH环境变量,并初始化MySQL数据库
  85. #1) 配置PATH环境变量
  86. echo 'export PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile
  87. . /etc/profile
  88. echo $PATH
  89. #2)初始化MySQL数据库
  90. /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql \
  91. --basedir=/usr/local/mysql --datadir=/data/3306/data
  92. 重点知识1 : 之前不同版本的初始化命令异同
  93. /usr/local/mysql/scripts/mysql_install_db #5.7之前
  94. /usr/local/mysql/bin/mysqld #5.7和8.0初始化
  95. 重点知识2: --initialize和--initialize-insecure区别
  96. --initialize: 会生成一个12位,4种密码复杂度临时管理员密码. 第一次登陆需要修改.
  97. --initialize-insecure:管理员密码为空.
  98. 来自8.0官方翻译 by oldboy
  99. mysql_install_db程序已从MySQL发行版中删除。数据目录初始化应通过使用 --initialize 或--initialize-insecure选项调用mysqld来执行。 此外,删除了mysql_install_db使用的mysqld选项,并删除了控制mysql_install_db安装位置的选项。
  100. #(5)初始化数据库的原理及结果说明
  101. 初始化数据库的实质就是创建基础的数据库系统的库文件等信息,例如:生成mysql库表等。
  102. [root@db01 /opt]# ls /data/3306/data/ -l
  103. total 176568
  104. -rw-r----- 1 mysql mysql 56 Mar 7 16:40 auto.cnf
  105. -rw------- 1 mysql mysql 1680 Mar 7 16:40 ca-key.pem
  106. -rw-r--r-- 1 mysql mysql 1112 Mar 7 16:40 ca.pem
  107. -rw-r--r-- 1 mysql mysql 1112 Mar 7 16:40 client-cert.pem
  108. 2.2.2配置并启动MySQL数据库
  109. 1.设置MySQL启动脚本
  110. cd /usr/local/mysql/support-files/
  111. cp mysql.server /etc/init.d/mysqld #<==拷贝mysql启动脚本到启动路径。
  112. systemctl enable mysqld #<==等价chkconfig mysqld on(c7把服务设置开机自启动命令)
  113. 2.启动MySQL数据库
  114. systemctl start mysqld
  115. service start mysqld
  116. /etc/init.d/mysqld start
  117. 提示:使用kill -9 ID关闭数据库引起数据库故障案例
  118. http://oldboy.blog.51cto.com/2561410/1431161
  119. 3.检查MySQL数据库是否启动。8.0增加33060端口
  120. netstat -lntup|grep 330
  121. 4.查看MySQL数据库启动结果日志。
  122. cat /data/3306/data/db01.err
  123. 5.过滤错误日志
  124. egrep -i "error" /data/3306/data/db01.err
  125. 2.2.3登录MySQL测试
  126. 执行登录命令如下:
  127. mysql
  128. 2.2.4 MySQL安装常见故障分析及解决方案
  129. 问题1:初始化报错libaio
  130. [root@oldboy opt]# mysqld --initialize-insecure --user=mysql \
  131. --basedir=/usr/local/mysql --datadir=/data/3306/data
  132. mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
  133. 原因:缺少libaio-devel依赖包
  134. 解决:yum install libaio-devel -y
  135. 如果不知道包名,可以执行 yum provides libaio -y查.
  136. 问题2: 初始化报错数据文件目录不为空
  137. 2021-11-09T04:08:57.631792Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
  138. 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.
  139. 解决:rm -rf /data/3306/data/*
  140. 问题3:启动后初始无法登录
  141. [root@oldboy ~]# mysql
  142. ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
  143. 原因:此问题一般都是数据库初始化问题或者数据库文件损坏以及目录权限问题。
  144. 解决办法:删除初始化目录,然后重新初始化数据库,剩余过程不变。
  145. rm -rf /data/3306/data/*
  146. mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3306/data
  147. 老男孩答疑:Access denied问题原因:
  148. 1.数据库初始化问题
  149. 2.目录权限问题
  150. 3.系统数据库文件损坏
  151. 4.用户密码不对
  152. 5.授权的主机范围不对.
  153. ### 今日作业:
  154. 1. 新克隆机器,练习部署5.65.7最新版,注意端口\安装路径\数据文件路径\启动程序名字
  155. 2. 写好笔记。
  156. ### 企业面试:
  157. ### 1.数据库文件损坏最大可能性
  158. 1)kill -9 pid #强制
  159. 提示:使用kill -9 ID关闭数据库引起数据库故障案例
  160. http://oldboy.blog.51cto.com/2561410/1431161
  161. 2)突然断电了.
  162. 3)磁盘坏道.
  163. mysql备份恢复.
  164. ### 2.重点知识1
  165. 初始化路径和命令不同
  166. 初始化密码参数
  167. ### 3.你们公司数据库的版本?
  168. 5730
  169. 5720
  170. 8017
  171. ###4.回顾
  172. 把汽车买回家了.不会开.