DBA-day01-第一章 MYSQL简介及安装

这篇博客详细介绍了如何在Linux环境下安装MySQL 5.7,包括二进制版本的下载、解压、用户创建、环境变量设置、数据路径准备、初始化数据以及配置文件的创建。此外,还提到了5.6和5.7版本的初始化命令区别,并提供了源码版安装的简要步骤和MySQL服务的启动、停止以及密码修改方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

每天
上午: 提出一个自己学的最好的知识点 1个, 最不好的1个
晚上: 提出一个自己学的最好的知识点 1个, 最不好的1个

每天4个问题:
2个学的好的
2个学的弱的

  1. DBA职业规划
    2.1 需要学习的内容
    (1)MySQL 5.7 安装部署(二进制)解压即可*****
    方式二:编译方式,在本文最下方

(2)MySQL升级步骤扩展 ***
(3)MySQL5.7 体系结构原理 *****
(4)MySQL基础管理 *****
(5)基础SQL语句使用 *****
(6)SQL高级应用 ***
(7)Information_schema获取元数据 ***
(8)索引、执行计划管理(基础优化)*****
(9)存储引擎 *****
(10)日志管理 *****
(11)备份与恢复 ******
(12)主从复制及架构演变 ******
(13)传统的高可用及读写分离(MHA&Atlas)****
(14)传统分布式架构设计与实现-扩展(Mycat—>DBLE,DRDS)**
(15)MySQL 5.7 高可用及分布式架构-扩展(MGR,InnoDB Cluster)***
(16)MySQL优化(安全、性能) ****
(17)MySQL 监控(zabbix、Open-falcon) ****
(18) RDS(阿里云课程) *****

额外要会的(NoSQL):
Redis
mongodb
ES
了解:
PG
Oracle
RDBMS : 关系型数据库 管理系统
NoSQL : 非关系型的
NewSQL : 新型的分布式解决方案

RDBMS —> NOSQL+RDBMS —> NoSQL(RDBMS),RDBMS(NoSQL)----> NewSQL (spanner TiDB PDB)

3、DBA职业素养
3.1、人品
责任-----权利

3.2
3.2.1 严谨
磁带库----->备份软件-----17楼
数据库修改\删除类的命令时 再三考虑,而且要有理论或者实践的支撑

3.2.2 请收起你的好奇心!!!!!
注意规范:
脱库? 华住网(ip root 密码),“脱敏”!!!。
学会保护自己!!!

3.3、细心
把最简单的事情做的最漂亮,最专业。

3.4、心态
别惹事,出事别怕事


职业技能有关:
3.5、熟悉操作系统(精通)
3.6、熟悉公司业务
业务?
产品的功能
用户的行为(热功能,热数据)

3.7、熟悉行业
熟悉行业发展趋势
版本
数据库产品类型
https://db-engines.com/en/ranking
定期参加数据库大会

3.8、喜欢数据库
体验很重要

其实成功的门槛并不拥挤,因为大部分人在路上就放弃了。
—oldguo

  1. 数据库产品
    4.1 什么是数据?
    4.2 DBMS 数据库管理系统
    RDBMS : Oracle ,MySQL ,PG,MSSQL
    NoSQL : MongoDB ,Redis ,ES
    NEWSQL (分布式): TiDB,Spanner ,AliSQL(RDS+DRDS) ,OB ,PolarDB

4.3 MySQL 企业版本GA选择
5.6 : 5.6.34 5.6.36 5.6.38(2017913) 5.6.40
5.7 : 5.7.18 ,20(2017913) ,24 ,(上课版本:5726)
8.0 : 8014, 8015 ,8016

4.4 关于数据库版本面试
你们公司用的什么版本的MySQL? 你在公司干几年了?

4.5 MySQL 5.7.26 二进制版本安装
CentOS7.6
4.5.1 下载并上传软件至/server/tools
或者直接在linux上下载 wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.26-linux-glibc2.12-i686.tar.gz
[root@db01 ~]# mkdir -p /server/tools
[root@db01 ~]# cd /server/tools/
[root@db01 /server/tools]# yum install -y lrzsz
[root@db01 /server/tools]# ls
mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

4.5.2 解压软件
[root@db01 /server/tools]# tar xf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
[root@db01 ~]# mkdir /application
[root@db01 /server/tools]# mv mysql-5.7.26-linux-glibc2.12-x86_64 /application/mysql

4.5.3 用户的创建处理原始环境
[root@db01 ~]# yum remove mariadb-libs-5.5.60-1.el7_5.x86_64 -y
[root@db01 ~]# rpm -qa |grep mariadb
[root@db01 ~]# useradd -s /sbin/nologin mysql

4.5.4 设置环境变量
vim /etc/profile
export PATH=/application/mysql/bin:$PATH
[root@db01 ~]# source /etc/profile
[root@db01 ~]# mysql -V
mysql Ver 14.14 Distrib 5.7.26, for linux-glibc2.12 (x86_64) using EditLine wrapper

4.5.5 创建数据路径并授权

  1. 添加一块新磁盘模拟数据盘
  2. 格式化并挂载磁盘
    [root@db01 ~]# fdisk -l
    [root@db01 ~]# mkfs.ext4 /dev/sdb
    [root@db01 ~]# mkdir /data
    [root@db01 ~]# blkid
    [root@db01 ~]# vim /etc/fstab
    [root@db01 ~]# UUID=1ec2fd76-d6f3-4710-a80d-26c4fa871fa7 /ext4 defaults 0 0
    [root@db01 ~]# mount /dev/sdb /data
    [root@db01 ~]# df -h
    /dev/sdb
  3. 授权
    chown -R mysql.mysql /application/*
    chown -R mysql.mysql /data

4.5.6 初始化数据(创建系统数据)

5.6 版本 初始化命令

编译版:/usr/bin/mysql_install_db
压缩版:/application/mysql/scripts/mysql_install_db

5.7 版本

[root@db01 ~]# mkdir /data/mysql/data -p
[root@db01 ~]# chown -R mysql.mysql /data
[root@db01 ~]# mysqld --initialize --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data

说明:
–initialize 参数:

  1. 对于密码复杂度进行定制:12位,4种
  2. 密码过期时间:180
  3. 给root@localhost用户设置临时密码

报错:
mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解决:
[root@db01 ~]# yum install -y libaio-devel

[root@db01 ~]# mysqld --initialize --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data
2019-06-13T04:21:27.706564Z 1 [Note] A temporary password is generated for root@localhost: =mrV)_16is4U

–initialize-insecure 参数:
无限制,无临时密码
[root@db01 /data/mysql/data]# \rm -rf /data/mysql/data/*
[root@db01 ~]# mysqld --initialize-insecure --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data

4.5.7 配置文件的准备
cat >/etc/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/application/mysql
datadir=/data/mysql/data
socket=/tmp/mysql.sock
server_id=6
port=3306
[mysql]
socket=/tmp/mysql.sock
EOF

4.5.8 启动数据库

  1. sys-v

[root@db01 /etc/init.d]# cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@db01 /etc/init.d]# service mysqld restart

  1. systemd
    注意: sysv方式启动过的话,需要先提前关闭,才能以下方式登录
    cat >/etc/systemd/system/mysqld.service <<EOF
    [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
    ExecStart=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
    LimitNOFILE = 5000
    EOF

  2. 如何分析处理MySQL数据库无法启动
    5.1 without updating PID 类似错误
    查看日志:
    在哪?
    /data/mysql/data/主机名.err
    [ERROR] 上下文
    可能情况:
    /etc/my.cnf 路径不对等
    /tmp/mysql.sock文件修改过 或 删除过
    数据目录权限不是mysql
    参数改错了

6.管理员密码的设定(root@localhost)
[root@db01 ~]# mysqladmin -uroot -p password oldboy123
Enter password:

  1. 管理员用户密码忘记了?
    –skip-grant-tables #跳过授权表
    –skip-networking #跳过远程登录

7.1 关闭数据库
[root@db01 ~]# /etc/init.d/mysqld stop
Shutting down MySQL… SUCCESS!

7.2 启动数据库到维护模式
[root@db01 ~]# mysqld_safe --skip-grant-tables --skip-networking &

7.3 登录并修改密码
mysql> alter user root@‘localhost’ identified by ‘1’;
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
mysql> flush privileges;
mysql> alter user root@‘localhost’ identified by ‘1’;
Query OK, 0 rows affected (0.01 sec)

7.4 关闭数据库,正常启动验证

番外篇: MySQL源码版安装方式:

在此之前确保已经安装文件上传系统lrzsz,安装过的可跳过该步骤:
1.手动编译安装
1、下载安装包,wget https://ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz 或者是 上传已经下载好的安装包
2、cd /usr/local/src/
3、mkdir lrzsz
4、cd lrzsz/
5、解压:tar -xvf lrzsz-0.12.20.tar.gz
6、cd lrzsz-0.12.20
7、执行配置:./configure
a)会提示 configure: error: no acceptable cc found in $PATH,意思是缺少gcc命令,需要安装gcc
b)手动安装gcc比较麻烦,所有选择使用yum安装
c)yum install gcc
8、编译:make
9、安装:make install
10、cd /usr/bin
11、ln -s /usr/local/bin/lrz rz
12、ln -s /usr/local/bin/lsz sz
13、输入命令:rz
a)随便选择 一个文件
b)安装成功!

2.使用yum安装
yum -y install lrzsz

进入正题
下载:http://dev.mysql.com/downloads/mysql/

或者使用wget下载:
wget http://dev.mysql.com/get/D
ownloads/MySQL-5.6/MySQL-5.6.22-1.el6.i686.rpm-bundle.tar

2.安装
2.1.检测是否已经安装了mysql
rpm -qa | grep mysql

如果已经安装了,将其卸载,如:

rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64
2.2.安装mysql
1、mkdir /usr/local/src/mysql
2、cd /usr/local/src/mysql
3、tar -xvf MySQL-5.6.22-1.el6.i686.rpm-bundle.tar

4、安装server
rpm -ivh MySQL-server-5.6.22-1.el6.i686.rpm
出错:

安装依赖:yum -y install libaio.so.1 libgcc_s.so.1 libstdc++.so.6

需要升级libstdc+±4.4.7-4.el6.x86_64
yum update libstdc+±4.4.7-4.el6.x86_64
5、安装中:

6、安装client

安装依赖:yum -y install libncurses.so.5 libtinfo.so.5
7、查询mysq服务运行状态

服务未启动。
8、启动mysql服务
service mysql start
9、使用root账号登录mysql
提示:

在安装mysql server时有句提示:

注意:这个密码是不安全的,所有需要修改初始密码。
10、使用密码登录mysql账号:mysql -uroot -p
11、修改root密码:SET PASSWORD = PASSWORD(‘123456’);
2.3.系统启动时自动启动mysql服务
加入到系统服务:
chkconfig --add mysql
自动启动:
chkconfig mysql on
查询列表:
chkconfig

说明:都没关闭(off)时是没有自动启动。

2.4.开启远程访问
登录:
mysql -uroot –p123456

设置远程访问(使用root密码):
grant all privileges on . to ‘root’ @’%’ identified by ‘123456’;
flush privileges;

防火墙打开3306端口
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
/etc/rc.d/init.d/iptables save
/etc/init.d/iptables status

扩展之卸载MySQL

**

如何在Linux下卸载MySQL数据库呢? 下面总结、整理了一下Linux平台下卸载MySQL的方法。 MySQL的安装主要有三种方式:二进制包安装(Using Generic Binaries)、RPM包安装、源码安装。对应不同的安装方式,卸载的步骤有些不同。文章中如有不足或不对的地方,敬请指出或补充!

RPM包安装方式的MySQL卸载

1: 检查是否安装了MySQL组件。

[root@DB-Server init.d]# rpm -qa | grep -i mysql

MySQL-devel-5.6.23-1.linux_glibc2.5

MySQL-client-5.6.23-1.linux_glibc2.5

MySQL-server-5.6.23-1.linux_glibc2.5

clip_image001

如上所示,说明安装了MySQL 5.6.23这个版本的client、server、devel三个组件。

2: 卸载前关闭MySQL服务

2.1 方法1

[root@DB-Server init.d]# service mysql status
MySQL running (25673)[ OK ]
[root@DB-Server init.d]# service mysql stop
Shutting down MySQL…[ OK ]
[root@DB-Server init.d]# service mysql status
MySQL is not running[FAILED]
clip_image002

2.2 方法2

[root@DB-Server init.d]# ./mysql status
MySQL running (26215)[ OK ]
[root@DB-Server init.d]# ./mysql stop
Shutting down MySQL…[ OK ]
[root@DB-Server init.d]# ./mysql status
MySQL is not running[FAILED]
[root@DB-Server init.d]#
clip_image003

[root@DB-Server init.d]# chkconfig --list | grep -i mysql

mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off

[root@DB-Server init.d]#

  1. 收集MySQL对应的文件夹信息

[root@DB-Server init.d]# whereis mysql

mysql: /usr/bin/mysql /usr/include/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz

最好实用find命令查看MySQL数据库相关的文件,方便后面彻底删除MySQL。

[root@DB-Server init.d]# find / -name mysql
/etc/rc.d/init.d/mysql
/etc/logrotate.d/mysql
/var/lock/subsys/mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/include/mysql
/usr/include/mysql/mysql
/usr/bin/mysql
/usr/share/mysql
/usr/lib64/mysql
clip_image004

4: 卸载删除MySQL各类组件

[root@DB-Server init.d]#
[root@DB-Server init.d]# rpm -ev MySQL-devel-5.6.23-1.linux_glibc2.5
[root@DB-Server init.d]# rpm -ev MySQL-server-5.6.23-1.linux_glibc2.5
You have new mail in /var/spool/mail/root
[root@DB-Server init.d]# rpm -ev MySQL-client-5.6.23-1.linux_glibc2.5
[root@DB-Server init.d]#
clip_image005

5:删除MySQL对应的文件夹

检查各个MySQL文件夹是否清理删除干净。

[root@DB-Server init.d]# whereis mysql
mysql:
[root@DB-Server init.d]# find / -name mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/lib64/mysql
[root@DB-Server init.d]# rm -rf /var/lib/mysql
[root@DB-Server init.d]# rm -rf /var/lib/mysql/mysql
[root@DB-Server init.d]# rm -rf /usr/lib64/mysql
[root@DB-Server init.d]#
6:删除mysql用户及用户组

如果有必要,删除mysql用户以及mysql用户组。

[root@DB-Server ~]# more /etc/passwd | grep mysql
mysql❌101:501::/home/mysql:/bin/bash
[root@DB-Server ~]# more /etc/shadow | grep mysql
mysql:!!:16496::::::
[root@DB-Server ~]# more /etc/group | grep mysql
mysql❌501:
[root@DB-Server ~]# userdel mysql
[root@DB-Server ~]# groupdel mysql
groupdel: group mysql does not exist
[root@DB-Server ~]#

7:确认MySQL是否卸载删除

[root@DB-Server init.d]# rpm -qa | grep -i mysql

二进制包/源码安装方式的MySQL卸载

如果是采用二进制包安装的MySQL,那么你用下面命令是找不到任何MySQL组件的。所以如果你不知道MySQL的安装方式,千万不要用下面命令来判别是否安装了MySQL

[root@DB-Server init.d]# rpm -qa | grep -i mysql

1: 检查MySQL服务并关闭服务进程。

首先通过进程查看是否有MySQL的服务的状态, 如下所示,MySQL服务是启动的。

[root@DB-Server init.d]# ps -ef | grep mysql
root 4752 4302 0 22:55 pts/1 00:00:00 more /etc/init.d/mysql.server
root 7176 1 0 23:23 pts/1 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/DB-Server.localdomain.pid
mysql 7269 7176 15 23:23 pts/1 00:00:01 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/data/DB-Server.localdomain.err --pid-file=/usr/local/mysql/data/DB-Server.localdomain.pid
root 7321 4302 0 23:23 pts/1 00:00:00 grep mysql
[root@DB-Server init.d]# /etc/init.d/mysql.server status
MySQL running (7269)[ OK ]
[root@DB-Server init.d]# /etc/init.d/mysql.server stop
Shutting down MySQL…[ OK ]
[root@DB-Server init.d]# /etc/init.d/mysql.server status
MySQL is not running[FAILED]
[root@DB-Server init.d]#
clip_image006

2: 查找MySQL的安装目录并彻底删除

[root@DB-Server init.d]# whereis mysql

mysql: /usr/local/mysql

[root@DB-Server init.d]# find / -name mysql

/var/spool/mail/mysql

/usr/local/mysql-5.7.5-m15-linux-glibc2.5-x86_64/include/mysql

/usr/local/mysql-5.7.5-m15-linux-glibc2.5-x86_64/bin/mysql

/usr/local/mysql-5.7.5-m15-linux-glibc2.5-x86_64/data/mysql

/usr/local/mysql

clip_image007

[root@DB-Server init.d]# rm -rf /usr/local/mysql-5.7.5-m15-linux-glibc2.5-x86_64/

[root@DB-Server init.d]# rm -rf /usr/local/

[root@DB-Server init.d]# rm -rf /var/spool/mail/mysql

[root@DB-Server init.d]#

3: 删除一些配置文件

配置文件一般有/etc/my.cnf 或/etc/init.d/mysql.server,视具体安装配置情况而定。

4:删除MySQL用户以及用户组

[root@DB-Server ~]# id mysql

uid=101(mysql) gid=501(mysql) groups=501(mysql) context=root:system_r:unconfined_t:SystemLow-SystemHigh

[root@DB-Server ~]# userdel mysql

参考资料

http://blog.itblood.com/completely-uninstall-the-mysql-under-linux-graphic-tutorials.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值