目錄
前言
一、倉庫安裝
二、本地安裝
三、容器安裝
四、源碼安裝
前言
博主的配置信息:
Windows版本:Win10
VMware虛擬機(jī)版本:Vmware Workstation Pro 17
Linux版本:Red Hat Enterprise Linux 9.1
MySQL版本:MySQL Community Server 8.0.32
保證Linux的正常聯(lián)網(wǎng)以及配置yum倉庫。
可以在MySQL官網(wǎng)地址:https://www.mysql.com/?上獲取到正規(guī)的MySQL。
MySQL 常見版本:
- MySQL Community Server 社區(qū)版本,開源免費(fèi),但不提供官方技術(shù)支持。
- MySQL Enterprise Edition 企業(yè)版本,需付費(fèi),可以試用 30 天。
- MySQL Cluster 集群版,開源免費(fèi)。可將幾個(gè) MySQL Server 封裝成一個(gè) Server。
- MySQL Cluster CGE 高級(jí)集群版,需付費(fèi)
MySQL數(shù)據(jù)庫存在多種版本,不同的版本在不同的平臺(tái)上(OS,也就是操作系統(tǒng)上)安裝方式可能有所不同,因此安裝時(shí)最好參照官方文檔進(jìn)行安裝。https://dev.mysql.com/doc/
下面記錄了博主在Linux上通過倉庫安裝、本地安裝、容器安裝、源碼安裝四種不同的方式安裝MySQL的過程:
一、倉庫安裝
倉庫安裝就是在官方倉庫或本地倉庫、網(wǎng)絡(luò)倉庫中,用yum方式安裝。推薦使用官方倉庫。博主認(rèn)為倉庫安裝相比其他安裝方式來說是最方便的。
獲取MySQL倉庫的網(wǎng)站:https://repo.mysql.com/
[root@forDB ~]# cat /etc/redhat-release
Red Hat Enterprise Linux release 9.1 (Plow)
[root@forDB ~]# rpm -ivh https://repo.mysql.com/mysql80-community-release-el9-1.noarch.rpm
[root@forDB ~]# ll /etc/yum.repos.d/
total 20
-rw-r--r--. 1 root root 218 Feb 7 20:40 aliyum-9.repo
-rw-r--r--. 1 root root 951 Jul 6 2022 mysql-community-debuginfo.repo
-rw-r--r--. 1 root root 827 Jul 6 2022 mysql-community.repo
-rw-r--r--. 1 root root 871 Jul 6 2022 mysql-community-source.repo
-rw-r--r--. 1 root root 358 Feb 7 20:41 redhat.repo
[root@forDB ~]# yum install mysql-server -y
[root@forDB ~]# rpm -qa | grep mysql
mysql80-community-release-el9-1.noarch
mysql-community-common-8.0.32-1.el9.x86_64
mysql-community-client-plugins-8.0.32-1.el9.x86_64
mysql-community-libs-8.0.32-1.el9.x86_64
mysql-community-client-8.0.32-1.el9.x86_64
mysql-community-icu-data-files-8.0.32-1.el9.x86_64
mysql-community-server-8.0.32-1.el9.x86_64
[root@forDB ~]# systemctl start mysqld
[root@forDB ~]# systemctl status mysqld
# MySQL8.0.32版本第一次登錄需要臨時(shí)密碼,在mysqld.log文件中
[root@forDB ~]# grep password /var/log/mysqld.log
2023-02-09T12:46:59.105801Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: ;/pZjo)lV8>B
[root@forDB ~]# mysql -uroot -p';/pZjo)lV8>B'
# 登錄之后必須先修改用戶密碼,不然無法正常使用mysql。默認(rèn)密碼策略要求密碼至少包含一個(gè)大寫字母、一個(gè)小寫字母、一位數(shù)字和一個(gè)特殊字符,并且密碼總長度至少為8個(gè)字符。
mysql> ALTER USER root@localhost IDENTIFIED BY 'Admin123!';
# 此時(shí)就可以正常使用mysql了
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
卸載MySQL:
[root@forDB ~]# yum remove mysql-server -y
[root@forDB ~]# rpm -qa | grep mysql
mysql80-community-release-el9-1.noarch
[root@forDB ~]# yum remove mysql80-community-release.noarch -y
# 刪除相關(guān)文件,以防再次安裝產(chǎn)生沖突
[root@forDB ~]# rm -rf /var/log/mysqld.log /var/lib/mysql/
二、本地安裝
本地安裝就是下載MySQL的捆綁包到本地,然后解包安裝。
捆綁包地址:https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.32-1.el9.x86_64.rpm-bundle.tar
或在 https://dev.mysql.com/downloads/mysql/ 中獲取對(duì)應(yīng)操作系統(tǒng)的捆綁包(這不能在Linux中下載,只能先下載到Windows上再傳到Linux上)
[root@forDB ~]# mkdir mysql
[root@forDB ~]# cd mysql/
[root@forDB mysql]# wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.32-1.el9.x86_64.rpm-bundle.tar
[root@forDB mysql]# tar xvf mysql-8.0.32-1.el9.x86_64.rpm-bundle.tar
[root@forDB mysql]# rpm -ivh mysql-community-server-8.0.32-1.el9.x86_64.rpm \
> mysql-community-client-8.0.32-1.el9.x86_64.rpm \
> mysql-community-common-8.0.32-1.el9.x86_64.rpm \
> mysql-community-icu-data-files-8.0.32-1.el9.x86_64.rpm \
> mysql-community-client-plugins-8.0.32-1.el9.x86_64.rpm \
> mysql-community-libs-8.0.32-1.el9.x86_64.rpm
[root@forDB mysql]# systemctl start mysqld.service
[root@forDB mysql]# systemctl status mysqld.service
[root@forDB mysql]# grep password /var/log/mysqld.log
2023-02-09T13:52:16.691395Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: d+41ucpK_)IN
[root@forDB mysql]# mysql -uroot -p
Enter password:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Admin123!';
mysql> show databases;
mysql> exit
卸載MySQL:
[root@forDB mysql]# rpm -qa | grep mysql
mysql-community-client-plugins-8.0.32-1.el9.x86_64
mysql-community-common-8.0.32-1.el9.x86_64
mysql-community-libs-8.0.32-1.el9.x86_64
mysql-community-client-8.0.32-1.el9.x86_64
mysql-community-icu-data-files-8.0.32-1.el9.x86_64
mysql-community-server-8.0.32-1.el9.x86_64
[root@forDB mysql]# rpm -evh mysql-community-client-plugins \
> mysql-community-common \
> mysql-community-libs \
> mysql-community-client \
> mysql-community-icu-data-files \
> mysql-community-server
[root@forDB mysql]# rm -rf /var/log/mysqld.log /var/lib/mysql/
本地安裝的缺點(diǎn)就是安裝時(shí)的依賴很煩人,卸載時(shí)也比較麻煩。我的評(píng)價(jià)是不如倉庫安裝。
三、容器安裝
容器安裝方式首先要安裝容器,再在容器上安裝MySQL。
#刪除之前的容器
[root@forDB ~]# yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
#安裝容器的依賴包
[root@forDB ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
#添加阿里云的容器倉庫
[root@forDB ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#更改倉庫文件中的下載網(wǎng)站為阿里云的網(wǎng)站,因?yàn)閲鴥?nèi)的網(wǎng)站會(huì)快一些
[root@forDB ~]# sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
#安裝docker-ce,這里要用--allowerasing選項(xiàng)來替換rhel9中沖突的軟件包
[root@forDB ~]# yum install docker-ce --allowerasing -y
[root@forDB ~]# systemctl start docker
[root@forDB ~]# systemctl status docker
[root@forDB ~]# docker version
#測(cè)試docker能否正常運(yùn)行
[root@forDB ~]# docker run hello-world
#安裝mysql
[root@forDB ~]# docker run --name mysqltest -e MYSQL_ROOT_PASSWORD=123456 -d mysql
#查看容器信息
[root@forDB ~]# docker ps
#為mysqltest建立一個(gè)bash接口
[root@forDB ~]# docker exec -it mysqltest /bin/bash
#登錄測(cè)試
bash-4.4# mysql -uroot -p
Enter password:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql> exit
Bye
bash-4.4# exit
exit
[root@forDB ~]#
登錄時(shí)也可以用主機(jī)直接連容器的MySQL:
#安裝一個(gè)MySQL的客戶端
[root@forDB ~]# yum install mysql -y
#查看容器的ip
[root@forDB ~]# docker inspect mysqltest
...
"IPAddress": "172.17.0.2",
...
#連接容器的MySQL
[root@forDB ~]# mysql -uroot -p123456 -h 172.17.0.2
mysql>
四、源碼安裝
源碼安裝最為費(fèi)時(shí)費(fèi)力,但用源碼安裝的軟件是最適合本機(jī)器的。
MySQL源碼安裝可以參考官方文檔:https://dev.mysql.com/doc/refman/8.0/en/installing-source-distribution.html
MySQL8.0.32源碼壓縮包地址:https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-boost-8.0.32.tar.gz
也可在官網(wǎng)手動(dòng)下載壓縮包,再傳到Linux上:
https://dev.mysql.com/downloads/mysql/
[root@server ~]# wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-boost-8.0.32.tar.gz
#添加mysql系統(tǒng)用戶和組
[root@server ~]# groupadd mysql
[root@server ~]# useradd -r -g mysql -s /bin/false mysql
#解壓解包,生成了mysql-8.0.32的文件,這就是源碼包的所有內(nèi)容
[root@server ~]# tar xvf mysql-boost-8.0.32.tar.gz
#安裝編譯器
[root@server ~]# yum install gcc gcc-c++ cmake -y
#安裝編譯過程中需要的庫
[root@server ~]# yum install gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-binutils openssl-devel ncurses-devel libtirpc-1.3.3-0.el9.x86_64 rpcgen git -y
[root@server ~]# rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/centos-stream/9-stream/CRB/x86_64/os/Packages/libtirpc-devel-1.3.3-0.el9.x86_64.rpm
#創(chuàng)建一個(gè)編譯目錄
[root@server ~]# cd mysql-8.0.32/
[root@server mysql-8.0.32]# mkdir bld
[root@server mysql-8.0.32]# cd bld
#準(zhǔn)備編譯
[root@server bld]# cmake .. -DWITH_BOOST=../boost/boost_1_77_0
#開始編譯(建議將虛擬機(jī)內(nèi)存調(diào)整為至少4G,以提高編譯速度)
[root@server bld]# make ########該過程很久,大概兩三個(gè)小時(shí),請(qǐng)耐心等待
#編譯完成后,開始安裝
[root@server bld]# make install
#安裝好的文件在/usr/local/mysql中
[root@server bld]# cd /usr/local/mysql/
#創(chuàng)建一個(gè)存儲(chǔ)數(shù)據(jù)文件的目錄
[root@server mysql]# mkdir mysql-files
#修改所屬者和所屬組
[root@server mysql]# chown mysql:mysql mysql-files/
#修改權(quán)限
[root@server mysql]# chmod 750 mysql-files/
#初始化數(shù)據(jù)庫(臨時(shí)密碼在最后的輸出中:dU/sA5uleFrk)
[root@server mysql]# ./bin/mysqld --initialize --user=mysql
2023-02-10T14:59:13.708471Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: dU/sA5uleFrk
#開啟數(shù)據(jù)庫的ssl加密功能
[root@server mysql]# ./bin/mysql_ssl_rsa_setup
#啟動(dòng)mysqld服務(wù)
[root@server mysql]# ./bin/mysqld_safe --user=mysql & #mysqld_safe防止誤殺mysql服務(wù),&表示后臺(tái)運(yùn)行
#用初始化產(chǎn)生的臨時(shí)密碼登錄mysql
[root@server mysql]# ./bin/mysql -uroot -pdU/sA5uleFrk
mysql>
#更改密碼
mysql> ALTER USER root@localhost IDENTIFIED BY 'Admin123!';
mysql> exit
大功告成!
#停止mysql服務(wù)
[root@server mysql]# ./bin/mysqladmin -uroot -pAdmin123! shutdown
#若想用systemctl命令快捷啟動(dòng)mysql,可以操作如下:
[root@server mysql]# cp support-files/mysql.server /etc/init.d/mysql.server
(若沒有init.d文件,可以yum install chkconfig -y,就有了)
[root@server mysql]# systemctl daemon-reload
[root@server mysql]# systemctl start mysql
[root@server mysql]# systemctl status mysql
[root@server mysql]# systemctl stop mysql
文章來源:http://www.zghlxwxcb.cn/news/detail-818563.html
over~文章來源地址http://www.zghlxwxcb.cn/news/detail-818563.html
到了這里,關(guān)于MySQL在Linux上的四種安裝方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!