文章目录
- 说明
- 1、关闭不需要的环境
- 2、检查并删除系统安装包
- 3、获取 mysql 官方 yum 源
- 4、安装 mysql yum 源,对比前后 yum 源
- 5、看看 yum 源是否安装成功
- 6、安装 mysql 服务
- 7、查看配置文件和数据存储位置
- 8、启动服务
- 9、登录 mysql
- 方法一:
- 方法二:
- 💥方法三:
- 10、设置开机启动(可以不设)
- 11、配置 my.cnf 文件
- 12、常见问题
- 💥💥💥mysql 常见登陆选项
说明
- 安装与卸载中,用户全部切换成为 root,⼀旦 安装,普通用户能使用的
- 初期练习,mysql 不进⾏用户管理,全部使⽤ root 进⾏,尽快适应 mysql 语句,后⾯学了用户管理,在考虑新建普通用户
- mariadb 是 mysql 的一个开源分支,如果安装了 mariadb 的话,那么就不用再安装 mysql 了,不过下面的步骤都是按照 mysql 来的
1、关闭不需要的环境
这里演示的前提是存在 mysql 进程,为了演示如何将其服务关闭的过程!
首先通过进程指令 ps 来检查是否有 mysql 的存在:
[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 指令将其服务关闭:
[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后面
为了检测是否删除彻底,我们可以通过下面几个指令来检查:
[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 版本,否则可能会存在软件兼容性问题,下面指令查看自己的系统版本
[root@VM-8-2-centos liren]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core) # 说明是7.9版本,我们就去找7.9版本的
在官方网站里面其实下载名称不是很明显:
所以我们可以在空白处右击,查看网页源代码:
点击图中红色方框中的链接,下载下来,然后通过云服务器中的 rz 指令从我们本地拉取到云服务器中:
[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]$
可以看到它列举出来了,说明安装成功,这个时候我们把我们的安装包删掉,也可以不删,看个人选择!
[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 服务
[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、查看配置文件和数据存储位置
安装结束之后,我们通过下面几步查看是否配置文件等都存在:
[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、启动服务
[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
方法一:
这种方法可能一些新版本并不适用
# 获取临时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默认没有密码
方法二:
一般来说要看版本
# 如果你安装的最新的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) # 新版本可能可以
💥方法三:
对于这种方法主要就是去配置文件 my.cnf
加上跳过授权表,这种做法比较危险,但是目前我们只需要这么做,后面我们会学如何进行用户管理!
[root@VM-8-2-centos MySQL]# vim /etc/my.cnf
然后在【mysqld】最后⼀栏配置(不知道是什么,就放在配置⽂件最后)加⼊:skip-grant-tables 选项,并保存退出
接着重启 mysql 服务:
[root@VM-8-2-centos MySQL]# systemctl restart mysqld # 除了使用restart,用stop搭配start也可以
然后通过方法一中的登录操作就能免密登录了,直接按回车即可:
[root@VM-8-2-centos MySQL]# mysql -u root -p # -u表示以谁的身份登录
Enter password: # 这里按回车就行
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.42 MySQL Community Server (GPL)
Copyright (c) 2000, 2023, 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> quit # 在此输入sql指令,使用quit可以退出
Bye
[root@VM-8-2-centos MySQL]#
10、设置开机启动(可以不设)
对于云服务器来说,因为开启 mysql 服务其实是个守护进程,所以开机启动没必要!
而如果是虚拟机的话,则会在开机的时候自己启动 mysql 服务!
#开启开机⾃启动
systemctl enable mysqld
systemctl daemon-reload
11、配置 my.cnf 文件
配置⼀下 my.cnf 主要是为了数据库客⼾端和服务器的**编码格式**,一般设为 utf-8 比较好,另外一些端口号的设置等等,上面给出的跳过授权表免密登录也是一个配置之一!
配置完毕,重启 mysql 即可!
12、常见问题
-
比如 mysql 已经配置了客⼾端服务器 utf-8 编码,但是无法输入中文:确保你在终端命令行中可以输入中文
[root@VM-8-2-centos MySQL]# env | grep LANG LANG=en_US.utf8
-
安装遇到秘钥过期的问题:
Failing package is: mysql-community-client-5.7.39-1.el7.x86_64 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql 解决⽅案: rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
💥💥💥mysql 常见登陆选项
- 如果我们在配置文件 my.cnf 中配置了默认端口号的话,我们可以不使用 -P 选项来指定访问的端口号
- 如果我们不使用 -h 来指定登录哪台部署了 mysql 的主机,那么会默认登录本地主机
- 目前我们采用免密码方式登录来学习,等后面学习了用户管理之后才要设置密码
- 输入密码是不会回显的