安装环境:
数据库版本:
5.7.20
操作系统版本:
CentOS 7.9
安装步骤:
1. 下载并上传MySQL软件到/server/tools
[root@DB_MySQL ~]# mkdir -p /server/tools [root@DB_MySQL ~]# cd /server/tools/
2. 解压MySQL软件,并将其移动到/application/mysql目录下
[root@DB_MySQL tools]# ls mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz [root@DB_MySQL tools]# tar -xf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz [root@DB_MySQL tools]# mkdir -p /application/mysql [root@DB_MySQL tools]# mv mysql-5.7.20-linux-glibc2.12-x86_64/* /application/mysql/
3. 用户的创建,处理的原始环境
[root@DB_MySQL mysql]# rpm -qa | grep mariadb mariadb-libs-5.5.68-1.el7.x86_64 [root@DB_MySQL mysql]# yum remove mariadb-libs-5.5.68-1.el7.x86_64 -y [root@DB_MySQL mysql]# rpm -qa | grep mariadb [root@DB_MySQL mysql]# useradd -s /sbin/nologin mysql [root@DB_MySQL mysql]# id mysql uid=1000(mysql) gid=1000(mysql) 组=1000(mysql)
4. 设置环境变量
[root@DB_MySQL mysql]# vim /etc/profile ...行末 export PATH=/application/mysql/bin:$PATH # 初始化配置文件 [root@DB_MySQL mysql]# source /etc/profile # 使用mysql -V命令测试环境变量是否设置成功,成功执行结果如下 [root@DB_MySQL mysql]# mysql -V mysql Ver 14.14 Distrib 5.7.20, for linux-glibc2.12 (x86_64) using EditLine wrapper
5. 创建数据路径并挂载
5.1 添加一块新磁盘模拟数据盘
PS:
生产环境中,根据运维经验应该先进行磁盘的配置,在进行MySQL的软件按照工作。
5.2 格式化并挂载磁盘
[root@DB_MySQL ~]# fdisk -l # 格式化磁盘 [root@DB_MySQL ~]# mkfs.xfs /dev/sdb [root@DB_MySQL ~]# mkdir /data # 查看磁盘的UUID序列号,这里建议UUID挂载方式 [root@DB_MySQL ~]# blkid /dev/sdb: UUID="b7d12ef9-69a1-4e9f-a677-d8650f61cbf8" TYPE="xfs" # 将该UUID写入/etc/fstab文件中,永久挂载 [root@DB_MySQL ~]# vim /etc/fstab ...行末 UUID="b7d12ef9-69a1-4e9f-a677-d8650f61cbf8" /data xfs defaults 0 0 # 挂载并查看是否成功 [root@DB_MySQL ~]# mount -a [root@DB_MySQL ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 979M 0 979M 0% /dev tmpfs 991M 0 991M 0% /dev/shm tmpfs 991M 9.5M 981M 1% /run tmpfs 991M 0 991M 0% /sys/fs/cgroup /dev/mapper/centos-root 50G 4.7G 46G 10% / /dev/mapper/centos-home 67G 33M 67G 1% /home /dev/sda1 1014M 138M 877M 14% /boot tmpfs 199M 0 199M 0% /run/user/0 /dev/sdb 20G 33M 20G 1% /data <--- 挂载到/data/目录下成功
6. 授权
[root@DB_MySQL tools]# mkdir /data/mysql/data -p [root@DB_MySQL tools]# chown -R mysql.mysql /application/* [root@DB_MySQL tools]# chown -R mysql.mysql /data/
7. 初始化数据
7.1 MySQL 5.6版本
/application/mysql/scripts/mysql_install_db
7.2 MySQL 5.7版本
7.2.1 生成随机密码初始化方式(不推荐使用)
[root@DB_MySQL mysql]# mysqld --initialize --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data ... 2023-01-14T17:11:54.220022Z 1 [Note] A temporary password is generated for root@localhost: oL3w%jdyJm>C
说明:
--initialize 参数:
- 对于密码复杂度进行定制:12位,4种
- 密码过期时间: 180
- 给root@localhost用户设置临时密码
7.2.2 无限制,无临时密码 --initialize-insecure
[root@DB_MySQL mysql]# mysqld --initialize-insecure --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data
8. 启动数据库
8.1 配置文件的准备
[root@DB_MySQL mysql]# 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
8.2 启动方式
8.2.1 sys-v
[root@DB_MySQL mysql]# cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld [root@DB_MySQL init.d]# /etc/init.d/mysqld start Starting MySQL.Logging to '/data/mysql/data/DB_MySQL.localdomain.err'. SUCCESS! [root@DB_MySQL init.d]# netstat -anptu | grep 3306 tcp6 0 0 :::3306 :::* LISTEN 1687/mysqld
8.2.2 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] WantenBy=multi-user.target [Service] User=mysql Group=mysql ExecStart=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf LimitNOFILE = 5000 EOF
执行完后,可以使用systemctl相关命令启动MySQL应用
# 打印日志到屏幕启动 /application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
小结:
# 如何分析处理MySQL数据库无法启动
without updating PID 类似错误
查看/data/mysql/data 主机名.err
[ERROR] 上下文
可能情况:
/etc/my.cnf 路径不对等
/tmp/mysql.sock文件修改过或删除过
数据目录权限不是mysql
参数改错了