centos7下安装MySQL 5.7.26 二进制版本(免安装绿色版)

邮差的信 提交于 2020-08-11 05:49:02

MySQL 5.7.26 二进制版本安装(免安装绿色版)

下载地址

 

https://downloads.mysql.com/archives/community/

 

https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

 

 PS:下载一些国外站点软件,用迅雷还是比较管用

 

下载并上传软件至/opt/software

[root@mysql01 ~]# mkdir -p /opt/software

[root@mysql01 ~]# cd /opt/software/

[root@mysql01 software]# yum install -y lrzsz #文件拖拽软件

[root@mysql01 software]# rz -E

rz waiting to receive.

[root@mysql01 software]# ll

总用量 629756

-rw-r--r-- 1 root root 644869837 4月  18 23:48 mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

 

解压软件

[root@mysql01 software]# tar -xvf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz

[root@mysql01 software]# mkdir /application

[root@mysql01 software]# mv mysql-5.7.26-linux-glibc2.12-x86_64 /application/mysql

[root@mysql01 software]# cd /application/mysql/

[root@mysql01 mysql]# ls

bin  COPYING  docs  include  lib  man  README  share  support-files

 

处理原始环境,删除系统自带mariadb-libs,创建mysql用户

[root@mysql01 ~]# rpm -qa | grep mariadb

mariadb-libs-5.5.64-1.el7.x86_64

[root@mysql01 ~]# yum remove mariadb-libs.x86_64 -y

 

[root@mysql01 ~]# useradd -s /sbin/nologin mysql

[root@mysql01 ~]# id mysql

uid=1001(mysql) gid=1001(mysql) =1001(mysql)

 

设置环境变量

[root@mysql01 ~]# vim /etc/profile

export PATH=/application/mysql/bin:$PATH

[root@mysql01 ~]# source /etc/profile

 

查看MySQL版本

[root@mysql01 ~]# mysql -V

mysql  Ver 14.14 Distrib 5.7.26, for linux-glibc2.12 (x86_64) using  EditLine wrapper

[root@mysql01 ~]# mysql --version

mysql  Ver 14.14 Distrib 5.7.26, for linux-glibc2.12 (x86_64) using  EditLine wrapper

 

创建数据路径并授权

1.添加一块新磁盘模拟数据盘

2.格式化并挂载

[root@mysql01 ~]# fdisk -l #查看磁盘、分区信息

 

[root@mysql01 ~]# mkfs.xfs /dev/sdb

 

[root@mysql01 ~]# blkid #查看磁盘UUID

/dev/sdb: UUID="5b995ceb-96be-4408-9125-51b931c5c543" TYPE="xfs"

 

[root@mysql01 ~]# vim /etc/fstab

UUID="5b995ceb-96be-4408-9125-51b931c5c543"     /data   xfs     defaults        0       0

[root@mysql01 ~]# mount -a #是将/etc/fstab的所有内容重新加载

 

3.对MySQL软件和数据目录进行授权

[root@mysql01 ~]# chown -R mysql.mysql /application/*

[root@mysql01 ~]# chown -R mysql.mysql /data

 

4.初始化数据(创建系统数据)

# 5.6 版本 初始化命令  /application/mysql/scripts/mysql_install_db

# 5.7 版本

[root@mysql01 ~]# mkdir -p /data/mysql/data #创建初始化数据路径

[root@mysql01 ~]# chown -R mysql.mysql /data

方法一

[root@mysql01 ~]# mysqld --initialize --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data

2020-04-19T14:27:50.401324Z 1 [Note] A temporary password is generated for root@localhost: dr7uTgZ/q!JI

5.7说明:

--initialize 参数:

1. 对于密码复杂度进行定制:12位,4

2. 密码过期时间:180

3. root@localhost用户设置临时密码

方法二

--initialize-insecure 参数:

无限制,无临时密码

[root@mysql01 ~]# rm -rf /data/mysql/data/* #先删除方法一初始化信息

[root@mysql01 ~]# mysqld --initialize-insecure --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data

2020-04-19T15:24:41.446386Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.

 

5.配置文件准备

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

 

6.启动数据库

方法一:

sys-v #centos6中使用

[root@mysql01 ~]# cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld

[root@mysql01 ~]# service mysqld restart

 ERROR! MySQL server PID file could not be found!

Starting MySQL.Logging to '/data/mysql/data/mysql01.err'.

.. SUCCESS!

 

[root@mysql01 ~]# netstat -lnp | grep 3306 #通过端口查看是否启动

tcp6       0      0 :::3306                 :::*                    LISTEN      4982/mysqld  

方法二:

systemd #centos7中使用

 

[root@mysql01 ~]# /etc/init.d/mysqld stop #先关闭方法一中启动的MySQL

Shutting down MySQL.. SUCCESS!

 

[root@mysql01 ~]# 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

 

[root@mysql01 ~]# systemctl start mysqld.service

[root@mysql01 ~]# netstat -nlp | grep 3306

tcp6       0      0 :::3306                 :::*                    LISTEN      5134/mysqld

 

7.如何分析MySQL数据库无法启动情形

 

查看日志:

在哪?

/data/mysql/data/主机名.err

[ERROR] 上下文

可能情况:

/etc/my.cnf 路径不对等

/tmp/mysql.sock文件修改过 或 删除过

数据目录权限不是mysql

参数改错了

 

8.修改数据库密码

[root@mysql01 ~]# mysqladmin -uroot -p password

Enter password: #输入旧密码,第一次使用密码为空

New password: #输入新密码

Confirm new password: #再次确认新密码

Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

 

9.管理员用户密码忘记了

--skip-grant-tables  #跳过授权表

--skip-networking    #跳过远程登录

1)关闭数据库

[root@mysql01 ~]# /etc/init.d/mysqld stop

Shutting down MySQL.. SUCCESS!

 

2)启动数据库到维护模式

[root@mysql01 ~]# mysqld_safe --skip-grant-tables --skip-networking &

 

3)登录并修改密码

[root@mysql01 ~]# mysql

mysql> select user,host from mysql.user; #查看用户信息

mysql> select user,host,authentication_string from mysql.user; #查看用户和密码字段信息

 

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

 

mysql> flush privileges; #手动加载刷新授权表

 

mysql> alter user root@'localhost' identified by '123456'; #再次执行命令重置密码成功

Query OK, 0 rows affected (0.00 sec)

mysql> exit #退出数据库

Bye

 

4)停止数据库,再正常启动 登录验证修改密码是否成功

 

[root@mysql01 ~]# /etc/init.d/mysqld stop

Shutting down MySQL..2020-04-20T15:55:40.277521Z mysqld_safe mysqld from pid file /data/mysql/data/mysql01.pid ended

 SUCCESS!

[1]+  完成                  mysqld_safe --skip-grant-tables --skip-networking

[root@mysql01 ~]# /etc/init.d/mysqld start

Starting MySQL. SUCCESS!

 

[root@mysql01 ~]# mysql -uroot -p

Enter password: #输入修改后密码验证

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!