网上有很多,您简单看看即可。
由于我的MySQL
主要是用在Linux
的,所以这里只简单介绍一下云服务器下使用XShell
操作CentOS 7
的MySQL
安装。
一般涉及到启动系统服务的操作都需要使用root
权限,因此您最好提前切换到root
账户。
使用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
旨在提供高性能、可扩展性、稳定性和安全性。
MariaDB
和MySQL
拥有类似的命令和语法,而且它们非常相似,但是MariaDB
包含了一些新的功能,例如更好的性能、更好的安全性、更好的可扩展性和更丰富的功能。MariaDB
中还包含一些MySQL
没有的特性,例如虚拟列、动态列、回收站等功能。此外,MariaDB也支持多个存储引擎,例如InnoDB
、MyISAM
、XtraDB
等。
MariaDB
还提供了与MySQL
兼容的API
和命令行工具,使得用户可以很容易地将其现有的MySQL
数据库迁移到MariaDB
上。对于使用MySQL
的应用程序或网站,转换到MariaDB
也非常简单。
在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-..>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-..>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.rpmA> 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-..>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-..>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-..>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-..>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-..>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.rpmA> 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-..>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-..>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-..>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-..>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-..>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.rpmA> 27-Apr-2017 10:45 25k
这里我根据我的系统版本选择了mysql57-community-release-el7-9.noarch.rpm(点击即可下载),这里的57
是MySQL yum
源的版本(这个版本用的人较多),el
指CentOS
,而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
就可以删除了(当然也可以选择不删除,主要是留着也没太多用处)。
使用yum install -y mysql-community-server
一键安装MySQL
即可。
如果出现以下问题:
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
即可。
在etc
下会多一个my.cnf
文件,且使用which mysql mysqld
可以打印出结果。
# which mysql mysqld
/usr/bin/mysql #这个是MySQL的客户端
/usr/sbin/mysqld #这个是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
来查看端口号(后面会讲)
使用sudo grep 'temporary password' /var/log/mysqld.log
获取临时root
密码,较老的版本可以使用,新版本可能不行。然后使用mysql -u root -p
输入临时密码即可,注意输入密码的时候不会回显。
直接使用mysql -u root -p
登录。
使用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>
打开/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
服务即可。
使用systemctl enable mysqld
和systemctl daemon-reload
即可。但是有一说一,云服务器一般不需要关机,几乎用不到这个功能。