Linux安装MySQL

1.MySQL 简介

待补充…(其实上网查查就知道了)

2.MySQL 安装

由于我的 MySQL 主要是用在 Linux 的,所以这里只简单介绍一下云服务器下使用 XShell 操作 CentOS 7MySQL 安装,其他操作系统的可能需要其他的方法。

2.1.切换用户

一般涉及到启动系统服务的操作都需要使用 root 权限,因此您最好提前切换到 root 账户。

2.2.检查环境

使用 ps ajx | grep mysql或mariadb 检查是否存在 mysql或mariadb(会显示一串目录),有就无需看后续的安装了。

但是如果您想体验一下下载 MySQL 的流程,请使用 systemctl stop mysql或mariadb.service 指令停止 mysql或mariadb 服务。然后使用 rpm -qa | grep mysql 检查 mysql或mariadb 的安装包,使用 rpm -qa | grep mysql或mariadb | xargs yum remove 卸载这些关于 mysql 的安装包,此时您的系统就卸载了 MySQL或mariadb 了。

补充:MariaDB 是一个开源的关系型数据库管理系统(RDBMS),它是 MySQL 的一个分支,由 MySQL 的创始人之一 Michael Widenius(又称 Monty)创建。MariaDB 基于 MySQL 的代码,并且在 GPL 许可证下发布,使得它可以免费使用和分发。 MariaDB 旨在提供高性能、可扩展性、稳定性和安全性。

MariaDBMySQL 拥有类似的命令和语法,而且它们非常相似,但是 MariaDB 包含了一些新的功能,例如更好的性能、更好的安全性、更好的可扩展性和更丰富的功能。MariaDB 中还包含一些 MySQL 没有的特性,例如虚拟列、动态列、回收站等功能。此外,MariaDB 也支持多个存储引擎,例如 InnoDBMyISAMXtraDB 等。

MariaDB 还提供了与 MySQL 兼容的 API 和命令行工具,使得用户可以很容易地将其现有的 MySQL 数据库迁移到 MariaDB 上。对于使用 MySQL 的应用程序或网站,转换到 MariaDB 也非常简单。

2.3.更新 yum 源

MySQL 官方链接上 查找适合自己的 MySQL yum 源版本(否则有可能出现兼容问题)。

[FILE] mysql80-community-release-el7-..> 18-Apr-2018 05:24    25k  
[FILE] mysql80-community-release-el7-..> 23-Aug-2023 17:38    11k  
[FILE] mysql80-community-release-el7-..> 18-Jan-2019 06:02    25k  
[FILE] mysql80-community-release-el7-..> 24-Apr-2019 18:29    25k  
[FILE] mysql80-community-release-el7-..> 04-Nov-2021 10:25     7k  
[FILE] mysql80-community-release-el7-..> 14-Jan-2022 10:21    11k  
[FILE] mysql80-community-release-el7-..> 24-Apr-2022 13:02    11k  
[FILE] mysql80-community-release-el7-..> 26-Aug-2022 18:56    11k  
[FILE] mysql80-community-release-el7-..> 25-Jul-2023 18:43    11k  
[FILE] mysql80-community-release-el7-..> 25-Jul-2023 18:41    11k  
[FILE] mysql80-community-release-el7.rpm 23-Aug-2023 17:38    11k  

或者右键该网页界面,然后“查看网页源代码”,可以显示较多的信息

<IMG SRC="/icons/generic.gif" ALT="[FILE]"> <A HREF="mysql57-community-release-el5-7.noarch.rpm">mysql57-community-release-el5-..&gt;</A> 12-Nov-2015 07:58     8k  
    
<IMG SRC="/icons/generic.gif" ALT="[FILE]"> <A HREF="mysql57-community-release-el5-8.noarch.rpm">mysql57-community-release-el5-..&gt;</A> 07-Apr-2017 07:28    24k
    
<IMG SRC="/icons/generic.gif" ALT="[FILE]"> <A HREF="mysql57-community-release-el5.rpm">mysql57-community-release-el5.rpm</A> 07-Apr-2017 07:28    24k  
    
<IMG SRC="/icons/generic.gif" ALT="[FILE]"> <A HREF="mysql57-community-release-el6-10.noarch.rpm">mysql57-community-release-el6-..&gt;</A> 07-Apr-2017 07:28    25k  
    
<IMG SRC="/icons/generic.gif" ALT="[FILE]"> <A HREF="mysql57-community-release-el6-11.noarch.rpm">mysql57-community-release-el6-..&gt;</A> 27-Apr-2017 10:45    25k  
    
<IMG SRC="/icons/generic.gif" ALT="[FILE]"> <A HREF="mysql57-community-release-el6-7.noarch.rpm">mysql57-community-release-el6-..&gt;</A> 12-Nov-2015 07:58     9k  
    
<IMG SRC="/icons/generic.gif" ALT="[FILE]"> <A HREF="mysql57-community-release-el6-8.noarch.rpm">mysql57-community-release-el6-..&gt;</A> 11-Apr-2016 09:13     9k  
    
<IMG SRC="/icons/generic.gif" ALT="[FILE]"> <A HREF="mysql57-community-release-el6-9.noarch.rpm">mysql57-community-release-el6-..&gt;</A> 12-Sep-2016 13:05     9k  
    
<IMG SRC="/icons/generic.gif" ALT="[FILE]"> <A HREF="mysql57-community-release-el6.rpm">mysql57-community-release-el6.rpm</A> 27-Apr-2017 10:45    25k  
    
<IMG SRC="/icons/generic.gif" ALT="[FILE]"> <A HREF="mysql57-community-release-el7-10.noarch.rpm">mysql57-community-release-el7-..&gt;</A> 07-Apr-2017 07:28    25k  
    
<IMG SRC="/icons/generic.gif" ALT="[FILE]"> <A HREF="mysql57-community-release-el7-11.noarch.rpm">mysql57-community-release-el7-..&gt;</A> 27-Apr-2017 10:45    25k  
    
<IMG SRC="/icons/generic.gif" ALT="[FILE]"> <A HREF="mysql57-community-release-el7-7.noarch.rpm">mysql57-community-release-el7-..&gt;</A> 12-Nov-2015 07:58     9k  
    
<IMG SRC="/icons/generic.gif" ALT="[FILE]"> <A HREF="mysql57-community-release-el7-8.noarch.rpm">mysql57-community-release-el7-..&gt;</A> 11-Apr-2016 09:13     9k  
    
<IMG SRC="/icons/generic.gif" ALT="[FILE]"> <A HREF="mysql57-community-release-el7-9.noarch.rpm">mysql57-community-release-el7-..&gt;</A> 12-Sep-2016 13:05     9k  
    
<IMG SRC="/icons/generic.gif" ALT="[FILE]"> <A HREF="mysql57-community-release-el7.rpm">mysql57-community-release-el7.rpm</A> 27-Apr-2017 10:45    25k 

这里我根据我的系统版本选择了 mysql57-community-release-el7-9.noarch.rpm(点击即可下载),这里的 57MySQL yum 源的版本(这个版本用的人较多),elCentOS,而 7-9 就是指 CentOS 7-9 版本(如果您使用的是 CentOS 7 系统但是没有找到对应的版本,就下载 mysql57-community-release-el7.rpm 即可)。然后得到一个 MySQL.rpm 后缀的文件。

[root@VM-8-9-centos ljp]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

新建一个 MySQL 目录,如果您之前下载的安装包在 Windows 下,就使用 rz 指令将其上传到 XShell 下的 CentOS 7 系统内刚刚新建的 MySQL 目录里。

# mkdir MySQL
# cd MySQL
# rz

# ls
mysql57-community-release-el7-9.noarch.rpm

接下来使用 rpm -ivh mysql57-community-release-el7-9.noarch.rpm 更新 yum 源(可以使用 ls /etc/yum.repos.d/ -l 来查看前后是否有变化)。

# ls /etc/yum.repos.d/ -l
total 52
-rw-r--r-- 1 root root  614 Jul 15 18:28 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 Jul 15 18:28 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

# rpm -ivh mysql57-community-release-el7-9.noarch.rpm
warning: mysql57-community-release-el7-9.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:mysql57-community-release-el7-9  ################################# [100%]

# ls /etc/yum.repos.d/ -l
total 60
-rw-r--r-- 1 root root  614 Jul 15 18:28 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 Jul 15 18:28 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 #支持安装相关的资源

使用 yum list | grep mysql 检查是否已经更新,如果弹出很多的 MySQL 相关资源文件,那就更新 yum 源成功,而之前下载的 mysql57-community-release-el7-9.noarch.rpm 就可以删除了(当然也可以选择不删除,主要是留着也没太多用处)。

2.4.安装 MySQL

使用 yum install -y mysql-community-server 一键安装 MySQL 即可。

2.5.安装问题

如果出现以下问题:

 Failing package is: mysql-community-common-5.7.43-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

然后重新使用 yum install -y mysql-community-server 即可。

2.6.检查安装

etc 下会多一个 my.cnf 文件,且使用 which mysql mysqld 可以打印出结果。

# which mysql mysqld
/usr/bin/mysql #这个是MySQL的客户端
/usr/sbin/mysqld #这个是MySQL的服务端

3.MySQL 启动

使用 systemctl start mysqld 启动 MySQL 的服务端,使用 ps 可以查看是否启动成功:

# systemctl start mysqld
# ps ajx | grep mysqld
    1  8880  8879  8879 ?           -1 Sl      27   0:00 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
10652  9013  9012  5510 pts/0     9012 S+       0   0:00 grep --color=auto mysqld

此时可以使用 netstat -nltp 来查看端口号(后面会讲)

4.MySQL 登录

4.1.登录方法一

使用 sudo grep 'temporary password' /var/log/mysqld.log 获取临时 root 密码,较老的版本可以使用,新版本可能不行。然后使用 mysql -u root -p 输入临时密码即可,注意输入密码的时候不会回显。

4.2.登录方法二

直接使用 mysql -u root -p 登录。

4.3.登录方法三

使用 vim /etc/my.cnf 打开 MySQL 的配置文件,然后在文件的最后添加上 skip-grant-tables 选项,保存退出(该做法就是设置为“跳过密码验证”)。

使用 systemctl restart mysqld 重启 MySQL 服务,然后使用 mysql -u root -p 即可直接登录 MySQL(可能还会显示输入密码,但是这次直接回车就可以)。

# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.43

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> 

5.MySQL 配置

5.1.配置编码问题

打开 /etc/my.cnf 修改内容如下:

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M

# ---My configuration_1---
# port=3306 # 可以不改,改了端口可能会出现一些问题,先使用默认的即可
# ------------------------

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid


# ---My configuration_2---
character-set-server=utf8
default-storage-engine=innodb
# ------------------------

然后使用 systemctl restart mysqld 重启 MySQL 服务即可。

5.2.配置开机启动

使用 systemctl enable mysqldsystemctl daemon-reload 即可。但是有一说一,云服务器一般不需要关机,几乎用不到这个功能。

  • 38
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

limou3434

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值