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-..>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(点击即可下载),这里的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即可。但是有一说一,云服务器一般不需要关机,几乎用不到这个功能。

你可能感兴趣的:(linux,mysql,webview)