二进制和yum的方式安装MySQL


关闭防火墙
在这里插入图片描述


关闭SElinux

在这里插入图片描述


一、安装mysql

安装mysql有两种方式,二进制安装和yum安装。
使用yum安装mysql5.7和mysql8.0的安装方式都是一样的。
二进制安装mysql8.0和mysql5.7的安装方式也是一样的操作。

1、yum方式安装mysql5.7.x

下载mysql的rpm路径

在这里插入图片描述

防火墙和selinux都已关闭

# 下载/mysql-community-client-5.7.9-1.el7.x86_64.rpm
[root@localhost ~]# cat /etc/redhat-release 
CentOS Stream release 8
[root@localhost ~]#
[root@localhost ~]# cd /opt/
[root@localhost opt]# wget https://repo.mysql.com//yum/mysql-5.7-community/el/7/x86_64/mysql-community-client-5.7.9-1.el7.x86_64.rpm
………………省略部分输出信息………………

# 下载/mysql-community-client-5.7.9-1.el7.x86_64.rpm
[root@localhost opt]# wget https://repo.mysql.com//yum/mysql-5.7-community/el/7/x86_64/mysql-community-common-5.7.9-1.el7.x86_64.rpm
………………省略部分输出信息………………

# 下载/mysql-community-client-5.7.9-1.el7.x86_64.rpm
[root@localhost opt]# wget https://repo.mysql.com//yum/mysql-5.7-community/el/7/x86_64/mysql-community-devel-5.7.9-1.el7.x86_64.rpm
………………省略部分输出信息………………

# 下载/mysql-community-client-5.7.9-1.el7.x86_64.rpm
[root@localhost opt]# wget https://repo.mysql.com//yum/mysql-5.7-community/el/7/x86_64/mysql-community-libs-5.7.9-1.el7.x86_64.rpm
………………省略部分输出信息………………

# 下载/mysql-community-client-5.7.9-1.el7.x86_64.rpm
[root@localhost opt]# wget https://repo.mysql.com//yum/mysql-5.7-community/el/7/x86_64/mysql-community-server-5.7.9-1.el7.x86_64.rpm
………………省略部分输出信息………………

[root@localhost opt]# ll
total 175932
-rw-r--r--. 1 root root  25591100 Nov 12  2015 mysql-community-client-5.7.9-1.el7.x86_64.rpm
-rw-r--r--. 1 root root    275276 Nov 12  2015 mysql-community-common-5.7.9-1.el7.x86_64.rpm
-rw-r--r--. 1 root root   3889700 Nov 12  2015 mysql-community-devel-5.7.9-1.el7.x86_64.rpm
-rw-r--r--. 1 root root   2301852 Nov 12  2015 mysql-community-libs-5.7.9-1.el7.x86_64.rpm
-rw-r--r--. 1 root root 148087384 Nov 12  2015 mysql-community-server-5.7.9-1.el7.x86_64.rpm
[root@localhost opt]# 

[root@localhost opt]# pwd
/opt
[root@localhost opt]# dnf -y install mysql-community-*  # 安装mysql
···省略N

[root@localhost opt]# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: inactive (dead)
[root@localhost opt]# systemctl enable --now mysqld
[root@localhost opt]# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2023-05-08 10:10:42 CST; 2s ago
  Process: 15795 ExecStart=/usr/sbin/mysqld --daemonize $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
  Process: 15722 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 15797 (mysqld)
    Tasks: 27 (limit: 17399)
   Memory: 301.6M
   CGroup: /system.slice/mysqld.service
           └─15797 /usr/sbin/mysqld --daemonize

May 08 10:10:38 localhost.localdomain systemd[1]: Starting MySQL Server...
May 08 10:10:42 localhost.localdomain systemd[1]: Started MySQL Server.


[root@localhost opt]# cat /var/log/mysqld.log | grep root
2023-05-08T02:10:39.233385Z 1 [Note] A temporary password is generated for root@localhost: ;dW,aj%&E9ha  # 临时密码:;dW,aj%&E9ha

# 使用临时密码登录,然后修改临时密码
[root@localhost opt]# mysql -uroot -p';dW,aj%&E9ha'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.9

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
# 执行修改密码语句
mysql> alter user 'root'@'localhost' identified by 'Agan@3306';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;  # 刷新授权表
Query OK, 0 rows affected (0.01 sec)

mysql> exit; # 退出

图片说明:

在这里插入图片描述

在这里插入图片描述



2、二进制安装mysql8.0.x的方式

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

# mysql-8.0.28-linux-glibc2.12-x86_64.tar.gz
# mysql-8.0.28-linux-glibc2.17-x86_64.tar.gz
两者有什么区别:

这两个文件名中的"glibc2.12""glibc2.17"表示了两个不同的glibc(GNU C Library)版本。
glibc是Linux系统中的重要组件之一,它提供了许多操作系统功能和服务的实现。不同的Linux发行版和版本可能使用不同的glibc版本。
在你提供的两个文件中,"glibc2.12"表示该MySQL版本是构建和编译在glibc 2.12上的,而"glibc2.17"表示该MySQL版本是构建和编译在glibc 2.17上的。
选择正确的glibc版本对于确保MySQL与特定Linux发行版和版本的兼容性非常重要。因此,你应该根据你的操作系统使用的glibc版本来选择相应的MySQL tar.gz包进行安装。
如果你的CentOS 7.6系统使用的是glibc 2.12,那么你应该选择下载并安装"glibc2.12"版本的MySQL tar.gz包。
如果你不确定你的系统使用的是哪个glibc版本,你可以在终端中运行以下命令来查看:
ldd --version
根据输出结果中的glibc版本信息,选择对应的MySQL tar.gz包进行安装。
请注意,确保选择与你的操作系统和glibc版本兼容的MySQL版本是非常重要的,否则可能会导致不稳定或不可预测的行为。

[root@localhost ~]# ldd --version
ldd (GNU libc) 2.12
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
[root@localhost ~]# 

使用xftp 把mysql的二进制包传到系统里

在这里插入图片描述


# 创建mysql系统用户,没有家目录,不需要登录
[root@localhost ~]# useradd -r -M -s /sbin/nologin mysql
[root@localhost ~]# id mysql
uid=995(mysql) gid=992(mysql) groups=992(mysql)


[root@localhost ~]# cd /opt/
[root@localhost opt]# ls
mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz

# 解压到 /usr/local/ 目录下
[root@localhost opt]# tar xf mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz -C /usr/local/

[root@localhost opt]# ll -d /usr/local/mysql-8.0.28-linux-glibc2.12-x86_64 
drwxr-xr-x. 9 root root 129 May  8 15:12 /usr/local/mysql-8.0.28-linux-glibc2.12-x86_64
[root@localhost opt]# cd /usr/local/
[root@localhost local]# mv mysql-8.0.28-linux-glibc2.12-x86_64 mysql # 重名名为mysql
[root@localhost local]# ll -d mysql/
drwxr-xr-x. 9 root root 129 May  8 15:12 mysql/
[root@localhost local]# 

#修改目录/usr/local/mysql的属主属组
[root@localhost ~]# chown -R mysql.mysql /usr/local/mysql
[root@localhost ~]# ll -d /usr/local/mysql
drwxr-xr-x. 9 mysql mysql 129 May  8 15:12 /usr/local/mysql
[root@localhost ~]# 

[root@localhost ~]# ll /usr/local/mysql/
total 284
drwxr-xr-x.  2 mysql mysql   4096 Dec 18  2021 bin
drwxr-xr-x.  2 mysql mysql     55 Dec 18  2021 docs
drwxr-xr-x.  3 mysql mysql    282 Dec 18  2021 include
drwxr-xr-x.  6 mysql mysql    201 Dec 18  2021 lib
-rw-r--r--.  1 mysql mysql 276595 Dec 18  2021 LICENSE
drwxr-xr-x.  4 mysql mysql     30 Dec 18  2021 man
-rw-r--r--.  1 mysql mysql    666 Dec 18  2021 README
drwxr-xr-x. 28 mysql mysql   4096 Dec 18  2021 share
drwxr-xr-x.  2 mysql mysql     77 Dec 18  2021 support-files
[root@localhost ~]# 

# 创建数据存放目录
[root@localhost ~]# mkdir -p /opt/mysqldata
[root@localhost ~]# ll -d /opt/mysqldata
drwxr-xr-x. 2 root root 6 May  8 15:16 /opt/mysqldata
[root@localhost ~]# 
[root@localhost ~]# chown -R mysql.mysql /opt/mysqldata  # 修改所有者和所属组为MySQL
[root@localhost ~]# ll -d /opt/mysqldata/
drwxr-xr-x. 2 mysql mysql 6 May  8 15:16 /opt/mysqldata/
[root@localhost ~]# 



# 添加环境变量
[root@localhost ~]# which mysql # 没设置环境变量之前,是找不到,mysql命令的
/usr/bin/which: no mysql in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[root@localhost ~]# 

[root@localhost ~]# echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@localhost ~]# source /etc/profile.d/mysql.sh # 刷新让其生效
[root@localhost ~]# echo $PATH
/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# 
[root@localhost ~]# which mysql
/usr/local/mysql/bin/mysql
[root@localhost ~]# 

# 创建软链接。叫mysql
[root@localhost ~]# ln -s /usr/local/mysql/include /usr/include/mysql
[root@localhost ~]# ll -d /usr/include/mysql 
lrwxrwxrwx. 1 root root 24 May  8 15:23 /usr/include/mysql -> /usr/local/mysql/include
[root@localhost ~]# 
# /usr/include/mysql 这个文件源自于/usr/local/mysql/include

# 配置 man 文档
[root@localhost ~]# vim /etc/man_db.conf 
# 
#
# This file is used by the man-db package to configure the man and cat paths.
# It is also used to provide a manpath for those without one by examining
# their PATH environment variable. For details see the manpath(5) man page.
#
# Lines beginning with `#' are comments and are ignored. Any combination of
# tabs or spaces may be used as `whitespace' separators.
#
# There are three mappings allowed in this file:
# --------------------------------------------------------
# MANDATORY_MANPATH			manpath_element
# MANPATH_MAP		path_element	manpath_element
# MANDB_MAP		global_manpath	[relative_catpath]
#---------------------------------------------------------
# every automatically generated MANPATH includes these fields
#
#MANDATORY_MANPATH 			/usr/src/pvm3/man
#
MANDATORY_MANPATH			/usr/man
MANDATORY_MANPATH			/usr/share/man
MANDATORY_MANPATH			/usr/local/share/man
MANDATORY_MANPATH			/usr/local/mysql/man # 添加man文档路径

# 映射库文件
[root@localhost ~]# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
[root@localhost ~]# ldconfig 
[root@localhost ~]# 


# 初始化数据库
[root@localhost ~]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/opt/mysqldata
2023-05-08T07:31:51.755160Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.28) initializing of server in progress as process 16438
2023-05-08T07:31:51.766308Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2023-05-08T07:31:52.388829Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2023-05-08T07:31:53.605686Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: +.ke0r3rgd6F # 临时密码:+.ke0r3rgd6F

   // 如果不想显示密码可以用这个参数:将--initialize替换为 --initialize-insecure



# 生成配置文件
[root@localhost ~]# vi /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /opt/mysqldata
socket = /tmp/mysql.sock
port = 3306
pid-file = /opt/mysqldata/mysql.pid
user = mysql
skip-name-resolve # 跳过名称解析,使用IP地址访问



# 配置启动mysql服务,用systemctl来控制mysql服务
[root@localhost ~]# cd /usr/local/mysql/support-files/
[root@localhost support-files]# ll
total 20
-rwxr-xr-x. 1 mysql mysql  1061 Dec 18  2021 mysqld_multi.server
-rw-r--r--. 1 mysql mysql  2027 Dec 18  2021 mysql-log-rotate
-rwxr-xr-x. 1 mysql mysql 10576 Dec 18  2021 mysql.server
[root@localhost support-files]# cp -r mysql.server mysqld
[root@localhost support-files]# ll
total 32
-rwxr-xr-x. 1 root  root  10576 May  8 15:45 mysqld
-rwxr-xr-x. 1 mysql mysql  1061 Dec 18  2021 mysqld_multi.server
-rw-r--r--. 1 mysql mysql  2027 Dec 18  2021 mysql-log-rotate
-rwxr-xr-x. 1 mysql mysql 10576 Dec 18  2021 mysql.server
[root@localhost support-files]# chown -R mysql.mysql mysqld
[root@localhost support-files]# ll
total 32
-rwxr-xr-x. 1 mysql mysql 10576 May  8 15:45 mysqld
-rwxr-xr-x. 1 mysql mysql  1061 Dec 18  2021 mysqld_multi.server
-rw-r--r--. 1 mysql mysql  2027 Dec 18  2021 mysql-log-rotate
-rwxr-xr-x. 1 mysql mysql 10576 Dec 18  2021 mysql.server
[root@localhost support-files]# 


[root@localhost ~]# cd /usr/lib/systemd/system
[root@localhost system]# cp sshd.service mysqld.service
[root@localhost system]# vi mysqld.service 
[Unit]
Description=mysql server daemon
After=network.target 

[Service]
Type=forking
ExecStart=/usr/local/mysql/support-files/mysqld start
ExecStop=/usr/local/mysql/support-files/mysqld stop
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target
[root@localhost system]# 


[root@localhost ~]# systemctl daemon-reload # 重新加载
[root@localhost ~]# systemctl enable --now mysqld  # 启动服务,并设置开机自启
[root@localhost ~]# systemctl status mysqld
● mysqld.service - mysql server daemon
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2023-05-08 16:43:08 CST; 8min ago
  Process: 1987 ExecStart=/usr/local/mysql/support-files/mysqld start (code=exited, status=0/SUCCESS)
 Main PID: 2000 (mysqld_safe)
    Tasks: 38 (limit: 17399)
····省略N

# 登录
[root@localhost ~]# mysql -uroot -p'+.ke0r3rgd6F'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.28

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
# 修改密码
mysql> alter user 'root'@'localhost' identified by 'Agan@3306';
Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;  # 刷新授权表
Query OK, 0 rows affected (0.00 sec)
 
mysql> exit;  # 退出
Bye
[root@localhost ~]# 



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值