目錄
引言
一、YUM
0、刪除已安裝的MySQL
#檢查MariaDB
刪除mariadb
#檢查MySQL
刪除MySQL
1、新增MySQL Yum Repository
下載MySQL來源
安裝MySQL來源
檢查是否安裝成功
2、選擇MySQL版本
查看目前MySQL Yum Repository中所有MySQL版本(每個版本在不同的子倉庫中)
切換版本
檢查目前啟用的MySQL倉庫
3、安裝MySQL
4、啟動MySQL
啟動
#看狀態
停止
重啟
5、修改密碼
初始密碼
修改預設密碼
6、允许root远程访问
7、设置编码为utf8
查看编码
设置编码
8、设置开机启动
二、RPM
0、删除已旧版本
1、下载MySQL安装包
2、安装MySQL
解压(解打包)
安装
3、设置
三、tar.gz
0、删除旧版本
1、下载
2、安装&配置:
依赖
创建mysql用户
解压并创建链接
创建mysql-files目录
初始化
启用SSL(非必须)
启动
设置环境变量
设置为服务
开机启动
四、源码安装
结束语
首頁 資料庫 mysql教程 CentOS安裝MySQL詳解

CentOS安裝MySQL詳解

Jun 18, 2019 pm 02:11 PM
centos mysql 安裝

CentOS安裝MySQL詳解

引言

最近某雲搞活動,買了個伺服器作為平時學習和測試用,新機器啥也沒有,一些常用軟體的安裝是免不了的,於是乎想著把安裝過程都詳細記錄下來,一是做個備忘,二是給有需要的同學作個參考。

Linux上安裝軟體常見的幾種方式:

  • 原始碼編譯

  • 壓縮包解壓縮(一般為tar. gz)

  • 編譯好的安裝套件(RPM、DPKG等)

  • 線上安裝(YUM、APT等)

以上幾種方式便捷性依次增加,但通用性依次下降,例如直接下載壓縮包進行解壓縮,這種方式一般需要自己做一些額外的配置工作,但只要掌握了方法,各個平台基本上都適用,YUM雖然簡單,但是平台受限,網路受限,必要的時候還需要增加一些特定YUM來源。

幾種安裝方式最好都能掌握,原則上能用簡單的就用簡單的:YUM>RPM>tar.gz>源

本文是介紹MySQL在CentOS上的安裝,主要步驟都是參考了MySQL官方文件:dev.mysql.com/doc/refman/…

為了測試不同安裝方式,反覆折騰了好幾次,裝了刪,刪了裝,每個步驟都是親測成功的,每條命令都是親自執行過的,可以放心使用

咱們閒話少說,書歸正傳(這閒話就不少了...)

一、YUM

0、刪除已安裝的MySQL

#檢查MariaDB
shell> rpm -qa|grep mariadb mariadb-server-5.5.60-1.el7_5.x86_64 mariadb-5.5.60-1.el7_5.x86_64 mariadb-libs-5.5.60-1.el7_5.x86_64
登入後複製
刪除mariadb

如果不存在(上面檢查結果回空)則跳過步驟

shell> rpm -e --nodeps mariadb-server shell> rpm -e --nodeps mariadb shell> rpm -e --nodeps mariadb-libs
登入後複製

其實yum方式安裝是可以不用刪除mariadb的,安裝MySQL會覆寫之前已存在的mariadb

#檢查MySQL
shell> rpm -qa|grep mysql
登入後複製
刪除MySQL

如果不存在(上面檢查結果回空)則跳過步驟

shell> rpm -e --nodeps xxx
登入後複製

1、新增MySQL Yum Repository

從CentOS 7開始,MariaDB成為Yum來源中預設的資料庫安裝套件。也就是說在CentOS 7以上的系統中使用yum安裝MySQL預設安裝的會是MariaDB(MySQL的一個分支)。如果想安裝官方MySQL版本,需要使用MySQL提供的Yum來源。

下載MySQL來源

官網位址:dev.mysql.com/downloads/r…

檢視系統版本:

shell> cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core)
登入後複製

選擇對應的版本進行下載,例如CentOS 7目前在官網查看最新Yum來源的下載位址為:dev.mysql.com/get/mysql80…

shell> wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
登入後複製
安裝MySQL來源
shell> sudo rpm -Uvh platform-and-version-specific-package-name.rpm
登入後複製

例如CentOS7目前最新MySQL來源安裝:

shell> sudo rpm -Uvh mysql80-community-release-el7-3.noarch.rpm
登入後複製
檢查是否安裝成功

執行成功後會在/etc/yum.repos.d /目錄下產生兩個repo檔案mysql-community.repomysql-community-source.repo

並且透過yum repolist可以看到mysql相關資源

shell> yum repolist enabled | grep "mysql.*-community.*" !mysql-connectors-community/x86_64 MySQL Connectors Community                108 !mysql-tools-community/x86_64      MySQL Tools Community                      90 !mysql80-community/x86_64          MySQL 8.0 Community Server                113
登入後複製

2、選擇MySQL版本

使用MySQL Yum Repository安裝MySQL,預設會選擇目前最新的穩定版本,例如透過上面的MySQL來源進行安裝的話,默安裝會選擇MySQL 8.0版本,如果就是想要安裝該版本,可以直接跳過此步驟,如果不是,例如我這裡希望安裝MySQL5.7版本,就需要「切換一下版本」:

查看目前MySQL Yum Repository中所有MySQL版本(每個版本在不同的子倉庫中)
shell> yum repolist all | grep mysql
登入後複製
切換版本
shell> sudo yum-config-manager --disable mysql80-community shell> sudo yum-config-manager --enable mysql57-community
登入後複製

除了使用yum-config-manager之外,還可以直接編輯/etc/yum.repos.d/mysql-community.repo檔案

enabled=0停用

[mysql80-community] name=MySQL 8.0 Community Server baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
登入後複製

enabled=1啟用

# Enable to use MySQL 5.7 [mysql57-community] name=MySQL 5.7 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
登入後複製
檢查目前啟用的MySQL倉庫
shell> yum repolist enabled | grep mysql
登入後複製

如果同時啟用了多個倉庫,安裝時會選擇最新版本

3、安裝MySQL

shell> sudo yum install mysql-community-server
登入後複製

此指令會安裝MySQL伺服器(mysql-community-server) 及其所需的依賴、相關元件,包括mysql-community-client、mysql-community-common、mysql-community-libs等

如果頻寬不夠,這個步驟時間會比較長,請耐心等待~

4、啟動MySQL

啟動
shell> sudo systemctl start mysqld.service
登入後複製

CentOS 6:

shell> sudo service mysqld start
登入後複製
#看狀態
shell> sudo systemctl status mysqld.service
登入後複製

CentOS 6:

shell> sudo service mysqld status
登入後複製
停止
shell> sudo systemctl stop mysqld.service
登入後複製

CentOS 6:

shell> sudo service mysqld stop
登入後複製
重啟
shell> sudo systemctl restart mysqld.service
登入後複製

CentOS 6:

shell> sudo service mysqld restart
登入後複製

5、修改密碼

初始密碼

MySQL第一次啟動後會建立超級管理員帳號root@localhost,初始密碼儲存在日誌檔案中:

shell> sudo grep 'temporary password' /var/log/mysqld.log
登入後複製
修改預設密碼
shell> mysql -uroot -p
登入後複製
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
登入後複製

出現上面的提示是因為密碼太簡單了,解決方法如下:

  1. 使用复杂密码,MySQL默认的密码策略是要包含数字、字母及特殊字符;

  2. 如果只是测试用,不想用那么复杂的密码,可以修改默认策略,即validate_password_policy(以及validate_password_length等相关参数),使其支持简单密码的设定,具体方法可以自行百度;

  3. 修改配置文件/etc/my.cnf,添加validate_password=OFF,保存并重启MySQL

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; Query OK, 0 rows affected (0.00 sec)
登入後複製

6、允许root远程访问

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; mysql> FLUSH PRIVILEGES;
登入後複製

7、设置编码为utf8

查看编码
mysql> SHOW VARIABLES LIKE 'character%';
登入後複製
设置编码

编辑/etc/my.cnf,[mysqld]节点增加以下代码:

[mysqld] collation-server=utf8_unicode_ci init-connect='SET NAMES utf8'
登入後複製

8、设置开机启动

shell> systemctl enable mysqld shell> systemctl daemon-reload
登入後複製

二、RPM

除安装过程外,其他步骤和yum方式安装相同,不再赘述

0、删除已旧版本

1、下载MySQL安装包

下载地址:dev.mysql.com/downloads/m…

选择对应的版本:

CentOS安裝MySQL詳解

shell> wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
登入後複製

2、安装MySQL

解压(解打包)
shell> tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar mysql-community-embedded-devel-5.7.26-1.el7.x86_64.rpm mysql-community-libs-5.7.26-1.el7.x86_64.rpm mysql-community-embedded-5.7.26-1.el7.x86_64.rpm mysql-community-test-5.7.26-1.el7.x86_64.rpm mysql-community-embedded-compat-5.7.26-1.el7.x86_64.rpm mysql-community-common-5.7.26-1.el7.x86_64.rpm mysql-community-devel-5.7.26-1.el7.x86_64.rpm mysql-community-client-5.7.26-1.el7.x86_64.rpm mysql-community-server-5.7.26-1.el7.x86_64.rpm
登入後複製

我们主要安装的是这四个(如果有需要也可以一并安装其它的):

mysql-community-libs-5.7.26-1.el7.x86_64.rpm mysql-community-common-5.7.26-1.el7.x86_64.rpm mysql-community-client-5.7.26-1.el7.x86_64.rpm mysql-community-server-5.7.26-1.el7.x86_64.rpm
登入後複製

如果不想下载rpm-bundle,官网也提供单独的rpm下载链接

安装

各rpm包是有依赖关系的,所以需要按照一定顺序进行安装,安装期间如果提示缺少哪些依赖也要先安装相应的包:

shell> rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm shell> rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm shell> rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm shell> rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm
登入後複製

还有一种简单的方式,可以自动处理各个包之间的依赖关系并自动下载缺少的依赖:

shell> yum install mysql-community-{server,client,common,libs}-*
登入後複製

注意:上面的yum install命令需要在tar解压之后的各个rpm包所在目录内执行,否则就变成yum方式安装了,需要配置MySQL的yum源并且速度很慢,还要当前机器支持外网访问

3、设置

三、tar.gz

0、删除旧版本

1、下载

下载地址:dev.mysql.com/downloads/m…

选择对应的版本:

CentOS安裝MySQL詳解

shell> wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
登入後複製

2、安装&配置:

依赖

MySQL依赖libaio库,如果没有先安装一下:

shell> yum install libaio
登入後複製
创建mysql用户

不需要登录的一个系统账号,启动MySQL服务时会使用该账号

shell> groupadd mysql shell> useradd -r -g mysql -s /bin/false mysql
登入後複製
解压并创建链接
shell> cd /usr/local shell> tar zxvf /path/to/mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz shell> ln -s mysql-5.7.26-linux-glibc2.12-x86_64/ mysql
登入後複製
创建mysql-files目录

这一步并不是必须的,可以设置secure_file_priv的值指向该目录(用于限制数据导入导出操作的目录)

shell> cd mysql shell> mkdir mysql-files shell> chown mysql:mysql mysql-files shell> chmod 750 mysql-files
登入後複製
初始化
shell> bin/mysqld --initialize --user=mysql
登入後複製

如果初始化时报错如下:

error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
登入後複製

是因为libnuma没有安装(或者默认安装的是32位),我们这里需要64位的:

shell> yum install numactl.x86_64
登入後複製

执行完后重新初始化即可 初始化成功后返回结果中有一行包含初始密码,第一次登录时要用到它:

A temporary password is generated for root@localhost: 8M0ary878s*U
登入後複製
启用SSL(非必须)
shell> bin/mysql_ssl_rsa_setup
登入後複製
启动
shell> bin/mysqld_safe --user=mysql &
登入後複製

查看进程可以看到一些默认参数,可以在配置文件中修改这些参数

shell> ps -ef | grep mysql root     14604 12719  0 00:03 pts/0    00:00:00 /bin/sh bin/mysqld_safe --user=mysql mysql    14674 14604  0 00:03 pts/0    00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=VM_2_24_centos.err --pid-file=VM_2_24_centos.pid
登入後複製
设置环境变量

避免每次执行mysql命令都要加上路径,在/etc/profile中添加:

export PATH=$PATH:/usr/local/mysql/bin
登入後複製
设置为服务
shell> cp support-files/mysql.server /etc/init.d/mysqld shell> service mysqld start|stop|restart|status
登入後複製
开机启动
shell> chkconfig --add mysqld shell> chkconfig --list mysqld mysqld          0:关 1:关 2:开 3:开 4:开 5:开 6:关
登入後複製

其他配置与yum、rpm相同,不再赘述

四、源码安装

就别费这个劲了吧...

结束语

我们不是Linux运维专家,也不是MySQL专家,生在这个年代也不知算是幸福还是不幸,线上的环境已经越来越少有人(主要指平时写代码的人)手动去搞这些数据库、中间件的安装配置了,为什么呢?因为各种云产品实在是太方便了呀,一般的公司也不会差这几个钱,既方便又稳定,何乐而不为呢~但是我们自己搞一搞用于自己测试还是必要的,而且还有不少公司的开发环境、测试环境偶尔还是需要手动搞一下的,当然,还有那些个自己搞机房的巨头们。

那我们既然不是专家,上面所写的内容如果有纰漏也是在所难免的,如果被看到了还希望能够及时批评指正~

更多MySQL相关技术文章,请访问MySQL教程栏目进行学习!

以上是CentOS安裝MySQL詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

MySQL的角色:Web應用程序中的數據庫 MySQL的角色:Web應用程序中的數據庫 Apr 17, 2025 am 12:23 AM

MySQL在Web應用中的主要作用是存儲和管理數據。 1.MySQL高效處理用戶信息、產品目錄和交易記錄等數據。 2.通過SQL查詢,開發者能從數據庫提取信息生成動態內容。 3.MySQL基於客戶端-服務器模型工作,確保查詢速度可接受。

centos關機命令行 centos關機命令行 Apr 14, 2025 pm 09:12 PM

CentOS 關機命令為 shutdown,語法為 shutdown [選項] 時間 [信息]。選項包括:-h 立即停止系統;-P 關機後關電源;-r 重新啟動;-t 等待時間。時間可指定為立即 (now)、分鐘數 ( minutes) 或特定時間 (hh:mm)。可添加信息在系統消息中顯示。

docker怎麼啟動mysql docker怎麼啟動mysql Apr 15, 2025 pm 12:09 PM

在 Docker 中啟動 MySQL 的過程包含以下步驟:拉取 MySQL 鏡像創建並啟動容器,設置根用戶密碼並映射端口驗證連接創建數據庫和用戶授予對數據庫的所有權限

laravel入門實例 laravel入門實例 Apr 18, 2025 pm 12:45 PM

Laravel 是一款 PHP 框架,用於輕鬆構建 Web 應用程序。它提供一系列強大的功能,包括:安裝: 使用 Composer 全局安裝 Laravel CLI,並在項目目錄中創建應用程序。路由: 在 routes/web.php 中定義 URL 和處理函數之間的關係。視圖: 在 resources/views 中創建視圖以呈現應用程序的界面。數據庫集成: 提供與 MySQL 等數據庫的開箱即用集成,並使用遷移來創建和修改表。模型和控制器: 模型表示數據庫實體,控制器處理 HTTP 請求。

centos7如何安裝mysql centos7如何安裝mysql Apr 14, 2025 pm 08:30 PM

優雅安裝 MySQL 的關鍵在於添加 MySQL 官方倉庫。具體步驟如下:下載 MySQL 官方 GPG 密鑰,防止釣魚攻擊。添加 MySQL 倉庫文件:rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm更新 yum 倉庫緩存:yum update安裝 MySQL:yum install mysql-server啟動 MySQL 服務:systemctl start mysqld設置開機自啟動

解決數據庫連接問題:使用minii/db庫的實際案例 解決數據庫連接問題:使用minii/db庫的實際案例 Apr 18, 2025 am 07:09 AM

在開發一個小型應用時,我遇到了一個棘手的問題:需要快速集成一個輕量級的數據庫操作庫。嘗試了多個庫後,我發現它們要么功能過多,要么兼容性不佳。最終,我找到了minii/db,這是一個基於Yii2的簡化版本,完美地解決了我的問題。

Centos停止維護2024 Centos停止維護2024 Apr 14, 2025 pm 08:39 PM

CentOS將於2024年停止維護,原因是其上游發行版RHEL 8已停止維護。該停更將影響CentOS 8系統,使其無法繼續接收更新。用戶應規劃遷移,建議選項包括CentOS Stream、AlmaLinux和Rocky Linux,以保持系統安全和穩定。

centos配置ip地址 centos配置ip地址 Apr 14, 2025 pm 09:06 PM

CentOS 中配置 IP 地址的步驟:查看當前網絡配置:ip addr編輯網絡配置文件:sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0更改 IP 地址:編輯 IPADDR= 行更改子網掩碼和網關(可選):編輯 NETMASK= 和 GATEWAY= 行重啟網絡服務:sudo systemctl restart network驗證 IP 地址:ip addr

See all articles