1.MySQL 5.7二进制方式部署
一、准备环境
准备一台Centos 7.6系统 最小内存512,最好挂载两块磁盘一块作为系统盘,一块作为MySQL数据盘。
1.、修改hosts、关闭selinux、firewalld
hostnamectl set-hostname mysql01
sed -ri '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config
systemctl stop firewalld && systemctl disable firewalld
2、创建目录
#1.创建程序目录
mkdir /application
#2.创建存放软件包目录
mkdir tools
3、格式化数据磁盘并挂载到/data下
#1.格式化/dev/sdb磁盘
mkfs.xfs /dev/sdb
#2.mount挂载加入开机自启、每个UUID值不一样通过 blkid命令查看
echo "UUID=26390314-0703-4200-a181-0f8fdaf09368 /data xfs defaults 0 0 " >> /etc/fstab
#3.mount 挂载
#4.查看是否挂载情况
[root@mysql01 ~]# df -Th | grep "/data"
/dev/sdb xfs 20G 33M 20G 1% /data
二、通过二进制方式部署MySQL 5.7
mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
下载地址 https://downloads.mysql.com/archives/community/
1、上传二进制包到/tools目录中并解压至/application程序目录中
cd /tools && 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-5.7.26
2、用户的创建处理原始环境
yum remove mariadb-libs-5.5.60-1.el7_5.x86_64 -y 或手动删除/etc/my.cn文件
rpm -qa |grep mariadb
useradd -s /sbin/nologin mysql
3、设置环境变量
echo 'PATH=/application/mysql-5.7.26/bin:$PATH' >> /etc/profile
source /etc/profile
4、初始化数据
#1.创建数据目录并授权
mkdir /data/mysql/data -p && chown -R mysql.mysql /data
#2.初始化 (二选一)
mysqld --initialize --user=mysql --basedir=/application/mysql-5.7.26 --datadir=/data/mysql/data //有临时密码初始化
mysqld --initialize-insecure --user=mysql --basedir=/application/mysql-5.7.26 --datadir=/data/mysql/data //无临时密码初始化
5、配置my.cnf文件
cat >/etc/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/application/mysql-5.7.26
datadir=/data/mysql/data
socket=/tmp/mysql.sock
server_id=6
port=3306
log_error=/data/mysql/mysql.log
# log_bin=/data/mysql/mysql-bin
[mysql]
socket=/tmp/mysql.sock
EOF
6、启动数据库
#1.默认启动方式
[root@db01 ~]#cd /application/mysql/support-files/
[root@db01 support-files ]#./mysql.server start
#2.设置sys-v service启动
[root@db01 /etc/init.d]# cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@db01 /etc/init.d]# service mysqld restart
#3.设置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-5.7.26/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
EOF
启动
systemctl start mysqld && systemctl enable mysqld
如何分析处理MySQL数据库无法启动
without updating PID 类似错误
查看日志:
在哪?
/data/mysql/data/主机名.err
[ERROR] 上下文
可能情况:
/etc/my.cnf 路径不对等
/tmp/mysql.sock文件修改过 或 删除过
数据目录权限不是mysql
参数改错了
#报错
Starting MySQL.2020-09-01T07:32:45.953856Z mysqld_safe error: log-error set to '/data/mysql/mysql.log', however file don't exists. Create writable for user 'mysql'.
ERROR! The server quit without updating PID file (/data/mysql/data/sonarqube.pid).
解决
touch /data/mysql/mysql.log
chown -R mysql.mysql /data/mysql/mysql.log
验证:netstat -anpt
7、管理员密码的设定(格式化时无临时密码)
[root@db01 ~]# mysqladmin -uroot -p password adminroot
Enter password: #此处直接回车