【超详细】MySQL环境安装

2023-10-17 12:35:39 浏览数 (1)

说明

  • 安装与卸载中,用户全部切换成为 root,⼀旦 安装,普通用户能使用的
  • 初期练习,mysql 不进⾏用户管理,全部使⽤ root 进⾏,尽快适应 mysql 语句,后⾯学了用户管理,在考虑新建普通用户
  • mariadbmysql 的一个开源分支,如果安装了 mariadb 的话,那么就不用再安装 mysql 了,不过下面的步骤都是按照 mysql 来的

1、关闭不需要的环境

​ 这里演示的前提是存在 mysql 进程,为了演示如何将其服务关闭的过程!

​ 首先通过进程指令 ps 来检查是否有 mysql 的存在:

代码语言:javascript复制
[root@VM-8-2-centos liren]# ps ajx | grep mysql
    1  6928  6927  6927 ?           -1 Sl      27   0:00 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
31787 10780 10779 29479 pts/40   10779 R        0   0:00 grep --color=auto mysql  #这是grep进程
[root@VM-8-2-centos liren]#

​ 可以看到是存在的!所以我们通过 systemctl 指令将其服务关闭:

代码语言:javascript复制
[root@VM-8-2-centos liren]# systemctl stop mysqld.service    # 停⽌mysql服务
[root@VM-8-2-centos liren]# ps ajx | grep mysql
31787 11274 11273 29479 pts/40   11273 R        0   0:00 grep --color=auto mysql
[root@VM-8-2-centos liren]# 

​ 这个步骤就是关掉它的进程,因为我们要删除它的环境,肯定先要将它的进程关闭!

2、检查并删除系统安装包

​ 现在我们要检查一下机器中是否有曾经从远端拉取过来的安装包,对于 yum 来说,它下载下来的安装包格式是 .rpm,所以我们用来检查关于安装包的指令也是 rpm

代码语言:javascript复制
[root@VM-8-2-centos liren]# rpm -qa | grep mysql
[root@VM-8-2-centos liren]#                               # 这种情况说明没有安装包

[root@VM-8-2-centos liren]# rpm -qa | grep mysql          # 这种情况说明存在安装包
mysql-community-common-5.7.41-1.el7.x86_64
mysql-community-server-5.7.41-1.el7.x86_64
mysql57-community-release-el7-11.noarch
mysql-community-client-5.7.41-1.el7.x86_64
mysql-community-libs-5.7.41-1.el7.x86_64
[root@VM-8-2-centos liren]#

​ 如果存在安装包,我们可以一个一个安装包去删除,但是这里我们可以使用 “管道 xargs” 指令来批量删除安装包,指令如下:

代码语言:javascript复制
[root@VM-8-2-centos liren]# rpm -qa | grep mysql | xargs yum -y remove          # xargs会将管道中的参数放到remove后面

​ 为了检测是否删除彻底,我们可以通过下面几个指令来检查:

代码语言:javascript复制
[root@VM-8-2-centos liren]# rpm -qa | grep mysql            # 检查安装包还在不在
[root@VM-8-2-centos liren]#                               

[root@VM-8-2-centos liren]# ps ajx | grep mysql             # 检查是否服务关闭
31787 24039 24038 29479 pts/40   24038 R        0   0:00 grep --color=auto mysql

[root@VM-8-2-centos liren]# ls /etc/my.cnf                  # 将MySQL启动时加载的配置文件删除
/etc/my.cnf
[root@VM-8-2-centos liren]# rm /etc/my.cnf
rm: remove regular file ‘/etc/my.cnf’? y

[root@VM-8-2-centos liren]# ls /var/lib/mysql/              # 曾经使用过的mysql的缓存数据,如果需要的话可以备份
auto.cnf    ca.pem           client-key.pem  ibdata1      ib_logfile1  performance_schema  public_key.pem   server-key.pem
ca-key.pem  client-cert.pem  ib_buffer_pool  ib_logfile0  mysql        private_key.pem     server-cert.pem  sys
[root@VM-8-2-centos liren]# 

3、获取 mysql 官方 yum 源

官方yum源网址

注意:最好安装和自己系统⼀致的 mysql 版本,否则可能会存在软件兼容性问题,下面指令查看自己的系统版本

代码语言:javascript复制
[root@VM-8-2-centos liren]# cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)        # 说明是7.9版本,我们就去找7.9版本的

​ 在官方网站里面其实下载名称不是很明显:

​ 所以我们可以在空白处右击,查看网页源代码:

​ 点击图中红色方框中的链接,下载下来,然后通过云服务器中的 rz 指令从我们本地拉取到云服务器中:

代码语言:javascript复制
[root@VM-8-2-centos MySQL]# rz
[root@VM-8-2-centos MySQL]# ll
total 12
-rw-r--r-- 1 root root 9224 Jun  5 18:22 mysql57-community-release-el7-9.noarch.rpm

​ 这样子我们就获得了 mysql 的安装包了!

4、安装 mysql yum 源,对比前后 yum 源

​ 我们的 yum 源安装之后是放到 /etc/yum.repos.d/ 的路径之下的,所以可以通过观察这个文件夹来看看安装前后的对比!

​ 另外安装 yum 源我们之前说过了,要使用 rpm 指令,因为 yum 源下载的安装包格式是 .rpm 的,再配合 rpm 的选项就能安装了:

代码语言:javascript复制
# 安装前
[root@VM-8-2-centos MySQL]# ll /etc/yum.repos.d/
total 52
-rw-r--r-- 1 root root  614 Jun 21  2022 CentOS-Base.repo
-rw-r--r-- 1 root root 1309 Nov 23  2020 CentOS-CR.repo
-rw-r--r-- 1 root root  649 Nov 23  2020 CentOS-Debuginfo.repo
-rw-r--r-- 1 root root  230 Jun 21  2022 CentOS-Epel.repo
-rw-r--r-- 1 root root  314 Nov 23  2020 CentOS-fasttrack.repo
-rw-r--r-- 1 root root  630 Nov 23  2020 CentOS-Media.repo
-rw-r--r-- 1 root root 1331 Nov 23  2020 CentOS-Sources.repo
-rw-r--r-- 1 root root 8515 Nov 23  2020 CentOS-Vault.repo
-rw-r--r-- 1 root root  616 Nov 23  2020 CentOS-x86_64-kernel.repo
-rw-r--r-- 1 root root 1358 Sep  5  2021 epel.repo
-rw-r--r-- 1 root root 1457 Sep  5  2021 epel-testing.repo

# 进行安装
[root@VM-8-2-centos MySQL]# rpm -hvi mysql57-community-release-el7-9.noarch.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:mysql57-community-release-el7-9  ################################# [100%]
   
# 安装后
[root@VM-8-2-centos MySQL]# ll /etc/yum.repos.d/
total 60
-rw-r--r-- 1 root root  614 Jun 21  2022 CentOS-Base.repo
-rw-r--r-- 1 root root 1309 Nov 23  2020 CentOS-CR.repo
-rw-r--r-- 1 root root  649 Nov 23  2020 CentOS-Debuginfo.repo
-rw-r--r-- 1 root root  230 Jun 21  2022 CentOS-Epel.repo
-rw-r--r-- 1 root root  314 Nov 23  2020 CentOS-fasttrack.repo
-rw-r--r-- 1 root root  630 Nov 23  2020 CentOS-Media.repo
-rw-r--r-- 1 root root 1331 Nov 23  2020 CentOS-Sources.repo
-rw-r--r-- 1 root root 8515 Nov 23  2020 CentOS-Vault.repo
-rw-r--r-- 1 root root  616 Nov 23  2020 CentOS-x86_64-kernel.repo
-rw-r--r-- 1 root root 1358 Sep  5  2021 epel.repo
-rw-r--r-- 1 root root 1457 Sep  5  2021 epel-testing.repo
-rw-r--r-- 1 root root 1416 Sep 12  2016 mysql-community.repo  # 多了两个mysql文件
-rw-r--r-- 1 root root 1440 Sep 12  2016 mysql-community-source.repo

5、看看 yum 源是否安装成功

​ 这里使用 yum list | grep mysql 进行查看是否 yum 源存在:

代码语言:javascript复制
[liren@VM-8-2-centos MySQL]$ yum list | grep mysql
Repository epel is listed more than once in the configuration
mysql57-community-release.noarch         el7-9                         installed
akonadi-mysql.x86_64                     1.9.2-4.el7                   os       
anope-mysql.x86_64                       2.0.12-1.el7                  epel     
apr-util-mysql.x86_64                    1.5.2-6.el7_9.1               updates  
calligra-kexi-driver-mysql.x86_64        2.9.10-2.el7                  epel     
collectd-mysql.x86_64                    5.8.1-1.el7                   epel     
dmlite-plugins-mysql.x86_64              1.15.2-12.el7                 epel     
dovecot-mysql.x86_64                     1:2.2.36-8.el7                os       
dpm-copy-server-mysql.x86_64             1.13.0-1.el7                  epel     
…………
…………
[liren@VM-8-2-centos MySQL]$ 

​ 可以看到它列举出来了,说明安装成功,这个时候我们把我们的安装包删掉,也可以不删,看个人选择!

代码语言:javascript复制
[root@VM-8-2-centos MySQL]# rm mysql57-community-release-el7-9.noarch.rpm 
rm: remove regular file ‘mysql57-community-release-el7-9.noarch.rpm’? y
[root@VM-8-2-centos MySQL]# 

6、安装 mysql 服务

代码语言:javascript复制
[root@VM-8-2-centos MySQL]# yum install -y mysql-community-server
[sudo] password for liren:
Loaded plugins: aliases, auto-update-debuginfo, fastestmirror, protectbase
Repository epel is listed more than once in the configuration
……
Installing : mysql-community-common-5.7.33-1.el7.x86_64 #公共模块
Installing : mysql-community-libs-5.7.33-1.el7.x86_64   #库
Installing : mysql-community-client-5.7.33-1.el7.x86_64 #客⼾端
Installing : mysql-community-server-5.7.33-1.el7.x86_64 #服务器
……
Complete!

​ 如果安装服务的时候报错了,那么可以看看下面的常见问题,不行再去网上找方法解决!

7、查看配置文件和数据存储位置

​ 安装结束之后,我们通过下面几步查看是否配置文件等都存在:

代码语言:javascript复制
[root@VM-8-2-centos MySQL]# ls /etc/my.cnf      # mysql的启动配置文件
/etc/my.cnf

[root@VM-8-2-centos MySQL]# which mysqld        # mysql的服务端
/usr/sbin/mysqld

[root@VM-8-2-centos MySQL]# which mysql         # mysql的客户端
/usr/bin/mysql

8、启动服务

代码语言:javascript复制
[root@VM-8-2-centos MySQL]# ps ajx | grep mysql            # 启动前
11917 23062 23061  9601 pts/41   23061 R        0   0:00 grep --color=auto mysql

[root@VM-8-2-centos MySQL]# systemctl start mysqld         # 启动mysql服务端的指令,也可以是mysqld.service

[root@VM-8-2-centos MySQL]# ps ajx | grep mysql            # 启动后
    1 23147 23146 23146 ?           -1 Sl      27   0:00 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
11917 23181 23180  9601 pts/41   23180 R        0   0:00 grep --color=auto mysql
[root@VM-8-2-centos MySQL]# netstat -nltp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1130/sshd           
tcp6       0      0 :::3306                 :::*                    LISTEN      23147/mysqld       # mysqld的网络状态

9、登录 mysql

方法一:

​ 这种方法可能一些新版本并不适用

代码语言:javascript复制
# 获取临时root密码
[liren@VM-0-3-centos 9.9]$ sudo grep 'temporary password' /var/log/mysqld.log
2021-04-12T03:23:46.153263Z 1 [Note] A temporary password is generated for
root@localhost: yLMalT:v 5l*
# 使⽤临时密码登录
[liren@VM-0-3-centos 9.9]$ mysql -uroot -p
Enter password:

# 判断修改密码时候新密码是否符合当前的策略,不满⾜报错,不让修改,关闭它
# 安全强度,默认为中,即1,要求必须包含 数字、符号、⼤⼩写字⺟,⻓度⾄少为8位
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)

# 密码最⼩⻓度
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)

# 修改本地登录密码,暂不授权远程登录
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'qwer@wu.888';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

# 如果你安装的最新的mysql,没有所谓的临时密码,root默认没有密码
方法二:

​ 一般来说要看版本

代码语言:javascript复制
# 如果你安装的最新的mysql,没有所谓的临时密码,root默认没有密码
# 试着直接client登陆⼀下
[root@VM-8-2-centos MySQL]# mysql -u root -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)     # 新版本可能可以

0 人点赞