mysql 数据库DBA课程01:安装

mysql 下载地址:
https://dev.mysql.com/downloads/mysql/https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

创建安装目录:
mkdir -p /application
上传文件/application
tar zxvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz -C /application/
cd /application/
mv mysql-5.7.26-linux-glibc2.12-x86_64 mysql

原则上,需要将数据,日志,独立存储。
mysql 分为两部分
软件部分:
/application/mysql
数据部分:(虚拟机再添加一块盘,进行挂载)
/dev/sdb------>/data/
/data/mysql/data 在/data 下面,再创建两层目录

++++++++++++++++++++++
创建用户和处理原始环境:
rpm -qa|grep mariadb



yum remove mariadb* -y
useradd -s /sbin/nologin mysql
设置环境变量:
vim /etc/profile
export PATH=/application/mysql/bin:$PATH
保存退出。
source /etc/profile



++++++ 创建 数据部分
直接格式化先前添加的硬盘


挂载:
mkdir -p /data


vim /etc/fstab


mount -a
目录授权:
chown -R mysql.mysql /application/*
chown -R mysql.mysql /data
初始化数据:(创建系统数据,维持mysql正常运行的数据)


mysql 5.7
mkdir -p /data/mysql/data
chown -R mysql.mysql /data
mysqld --initialize --user=mysql --basedir=/application/mysql
--datadir=/data/mysql/data




++++++++
如果报错: libaio.so.1: cannot open shared
yum install libaio-devel -y
mysqld --initialize-insecure --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data
这个初始化命令,就不会生成临时密码,和原来的5.5一样,直接输入mysql就可以登录。



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
===== 以上是基础配置文件,先启动mysql

启动 数据库
两种方法:(兼容 centos 6中的mysql 启动方法)
1)sys-v --- service 方式
cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld
service mysqld start
2)systemd --- systemctl 方式
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
++++++++ 其余内容为官方文档的写法,不需要更改。

如何分析mysql 启动不了的情况
所有mysql 启动不了的报错信息都是如下内容:


模拟数据库故障:


看日志,默认情况下,mysql 的错误日志,在数据目录下面,就是 datadir=这里写的目录
命名规则为,主机名.err





修改权限,就可以启动了。


/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
会把启动过程,打印到屏幕上,包括错误信息。
++++++++++++
管理员密码的设定:
mysqladmin -uroot -p password oldboy123 ----->第一次修改直接回车,因为先前的密码为空。
再次修改的时候,就需要输入,老的密码。

*** 忘记本地数据库管理员密码密码:

启动到,数据库的维护模式mysqld_safe --skip-grant-tables --skip-networking &

--skip-networking 不允许远程登录

可以把这个参数,写在my.cnf [mysqld]下面
也可以用 命令加上这两个参数:

1、先关闭数据库:
systemctl stop mysqld
2、进入维护模式
mysqld_safe --skip-grant-tables --skip-networking &

3、登录数据库
mysql 直接回车






正常关闭数据库,再启动数据库。