说明
- 安装与卸载中,用户全部切换成为 root,⼀旦 安装,普通用户能使用的
- 初期练习,mysql 不进⾏用户管理,全部使⽤ root 进⾏,尽快适应 mysql 语句,后⾯学了用户管理,在考虑新建普通用户
- mariadb 是 mysql 的一个开源分支,如果安装了 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:
[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”
指令来批量删除安装包,指令如下:
[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 的选项就能安装了:
# 安装前
[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 源存在:
[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) # 新版本可能可以