二进制和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的方式

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


在这里插入图片描述


使用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 ~]# 



猜你喜欢

转载自blog.csdn.net/m0_58805648/article/details/130571962