MySQL二进制安装
Centos7 下二进制安装
# 下载地址
# https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/
# 关闭防火墙及selinux
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i s#enforcing#disabled#g /etc/selinux/config
# 卸载mariadb相关软件包
yum remove mariadb* -y
# 下载依赖包
yum install libaio-devel -y
# 下载tar包
wget https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/mysql-5.7.34-el7-x86_64.tar.gz
# 解压
tar xf mysql-5.7.31-el7-x86_64.tar.gz
mv mysql-5.7.31-el7-x86_64 /usr/local/mysql
# 创建mysql用户
useradd -s /sbin/nologin mysql
#添加环境变量
echo 'export PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile
source /etc/profile
# mysql软件目录授权mysql用户
chown -R mysql:mysql /usr/local/mysql
# 查看版本
mysql -V
数据目录
# 数据库数据目录应该单独用一块盘挂载
# mkfs.xfs /dev/sdb
# vim /etc/fstab
# mount -a
# 这边测试就直接创建目录了
mkdir /data/mysql/data -p
chown -R mysql:mysql /data
# 初始化
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
# 参数说明
--initialize-insecure # 使用空密码,后续手动添加密码即可
--initialize # 会产生一个临时密码
--user # 指定用户
--basedir # 指定软件路径
--datadir # 指定数据路径
# 最简配置文件
cat >/etc/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql/data
socket=/tmp/mysql.sock
server_id=6
port=3306
[mysql]
socket=/tmp/mysql.sock
EOF
# 启动配置
# 方法一: mysql的脚本启动文件
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
service mysqld start # 该方法启动命令
service mysqld stop # 该方法停止命令
# 方法二: systemd启动配置
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=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
EOF
# 使用systemd启动和检查
systemctl start mysqld.service
systemctl status mysqld.service
netstat -lntup |grep 3306
# 数据库启动错误分析
without updating PID 类似错误
查看日志:
/data/mysql/data/主机名.err
[ERROR] 上下文
可能情况:
/etc/my.cnf 路径不对等
/tmp/mysql.sock文件修改过 或 删除过
数据目录权限不是mysql
参数改错了
# 调试命令
mysqld --default-file=/etc/my.cnf