MySQL 5.7.26 Centos7二进制版本安装

本文详细介绍MySQL数据库在Linux系统的安装步骤,包括环境准备、配置文件创建、数据目录设置、初始化及常见问题解决方法。

资源到官网自行下载

1、先卸载系统自带的mariadb

yum remove mariadb* -y

2、添加mysql用户

useradd -s /sbin/nologin -M mysql

3、上传安装包到 /server/tools

mkdir -p /server/tools
cd /server/tools/
yum install -y lrzsz

然后把文件上传再解压,解压后的文件夹放到安装目录下并重命名为mysql,这里安装目录为/application

tar xf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
mkdir /application
mv mysql-5.7.26-linux-glibc2.12-x86_64  /application/mysql

4、设置环境变量并使之生效(慎重选择,别不小心清空了环境变量文件,可以用vim),mysql -V查看版本

echo 'export PATH=/application/mysql/bin:$PATH'>>/etc/profile
source /etc/profile
mysql -V

5、创建数据路径 /data并授权,blkid查看UUID并设置开机自动挂载(新手建议用vim更改,不建议用追加)

  1. 添加一块新磁盘模拟数据盘
    在这里插入图片描述

  2. 格式化并设置开机自动挂载磁盘

mkfs.xfs /dev/sdb
mkdir /data
blkid
echo 'UUID=ebbb821d-7374-48af-8408-b31123f33502 /data xfs defaults 0 0'>>/etc/fstab
mount -a
df -h
  1. 安装目录和数据目录授权
 chown -R mysql.mysql /application/*
 chown -R mysql.mysql /data

6、初始化数据(创建系统数据)

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

说明:
–initialize 参数:
对于密码复杂度进行定制:12位,4种
密码过期时间:180
给root@localhost用户设置临时密码
报错:

mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

解决:

yum install -y libaio-devel
mysqld --initialize --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data 

执行完上一句后最后一行会出现临时密码
[Note] A temporary password is generated for root@localhost: =mrV)_16is4U
–initialize-insecure 参数:
无限制,无临时密码
rm -rf /data/mysql/data/*
mysqld --initialize-insecure --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data

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

8、启动数据库

  1. sys-v
cp /application/mysql/support-files/mysql.server  /etc/init.d/mysqld 
service mysqld restart
  1. systemd
    注意: sysv方式启动过的话,需要先提前关闭,才能以下方式登录
service mysqld stop
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
systemctl start mysqld.service

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

9、设置管理员密码:

mysqladmin -uroot -p password 
mysql -uroot -p

管理员用户密码忘记了?
解决办法
先关闭数据库
–skip-grant-tables #跳过授权表
–skip-networking #跳过远程登录

service mysqld stop
mysqld_safe --skip-grant-tables --skip-networking &
mysql
alter user root@'localhost' identified by '123456';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
flush privileges;
alter user root@'localhost' identified by '123456';

或者使用

grant all on *.* to root@'localhost' identified by '123456' ;

改完密码后重启下数据库服务即可

service mysqld restart

查看用户名权限和密码

select user,host,authentication_string from mysql.user

在这里插入图片描述
ps:
(启动数据库方式建议只设置一种,使用sys-v,不然systemd在管理员设置密码mysql_safe设置密码后systemctl restart mysqld.service重启后还是带有–skip-grant-tables --skip-networking参数,或者用mysql_safe不带参数的执行,然后在配置文件里配置–skip-grant-tables --skip-networking参数)
正常启动mysql时过滤mysql进程和端口号如下
在这里插入图片描述

使用skip启动mysql的进程和端口是如下图
在这里插入图片描述
检查发现是配置文件中或者myql_safe选项中使用了 skip-networking,可以看到这个选项的的作用是不监听端口,同主机的用户通过 sockets 进行链接。外部主机由于没有监听端口,将无法连接。
配置文件中可以注释掉skip-networking
在这里插入图片描述
最后再以sys-v的方式重启mysql(建议不要以system的方式重启,可能会失败)
正常情况下的system启动的mysql
在这里插入图片描述
system停止mysql后
在这里插入图片描述
修改管理员密码时
在这里插入图片描述
在这里插入图片描述
system重启mysql后报错有两个进程
在这里插入图片描述

**

kill相关mysql进程后启动(这都是在实验环境的,生产环境建议不要kill数据库进程,有很大可能数据库正在写入而导致崩溃!!!!!!!),所以建议使用/etc/init.d/mysqld restart

**

在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值