当前位置:   article > 正文

MySQL在Linux上的四种安装方式_linux安装mysql

linux安装mysql

目录

前言

一、仓库安装

二、本地安装

三、容器安装

四、源码安装


前言

博主的配置信息:

Windows版本:Win10

VMware虚拟机版本:Vmware Workstation Pro 17

Linux版本:Red Hat Enterprise Linux 9.1

MySQL版本:MySQL Community Server 8.0.32

保证Linux的正常联网以及配置yum仓库。

可以在MySQL官网地址:https://www.mysql.com/ 上获取到正规的MySQL。

MySQL 常见版本:

  • MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。
  • MySQL Enterprise Edition 企业版本,需付费,可以试用 30 天。
  • MySQL Cluster 集群版,开源免费。可将几个 MySQL Server 封装成一个 Server。
  • MySQL Cluster CGE 高级集群版,需付费

MySQL数据库存在多种版本,不同的版本在不同的平台上(OS,也就是操作系统上)安装方式可能有所不同,因此安装时最好参照官方文档进行安装。https://dev.mysql.com/doc/

下面记录了博主在Linux上通过仓库安装、本地安装、容器安装、源码安装四种不同的方式安装MySQL的过程:

一、仓库安装

仓库安装就是在官方仓库或本地仓库、网络仓库中,用yum方式安装。推荐使用官方仓库。博主认为仓库安装相比其他安装方式来说是最方便的。

获取MySQL仓库的网站:https://repo.mysql.com/

  1. [root@forDB ~]# cat /etc/redhat-release
  2. Red Hat Enterprise Linux release 9.1 (Plow)
  3. [root@forDB ~]# rpm -ivh https://repo.mysql.com/mysql80-community-release-el9-1.noarch.rpm
  4. [root@forDB ~]# ll /etc/yum.repos.d/
  5. total 20
  6. -rw-r--r--. 1 root root 218 Feb 7 20:40 aliyum-9.repo
  7. -rw-r--r--. 1 root root 951 Jul 6 2022 mysql-community-debuginfo.repo
  8. -rw-r--r--. 1 root root 827 Jul 6 2022 mysql-community.repo
  9. -rw-r--r--. 1 root root 871 Jul 6 2022 mysql-community-source.repo
  10. -rw-r--r--. 1 root root 358 Feb 7 20:41 redhat.repo
  11. [root@forDB ~]# yum install mysql-server -y
  12. [root@forDB ~]# rpm -qa | grep mysql
  13. mysql80-community-release-el9-1.noarch
  14. mysql-community-common-8.0.32-1.el9.x86_64
  15. mysql-community-client-plugins-8.0.32-1.el9.x86_64
  16. mysql-community-libs-8.0.32-1.el9.x86_64
  17. mysql-community-client-8.0.32-1.el9.x86_64
  18. mysql-community-icu-data-files-8.0.32-1.el9.x86_64
  19. mysql-community-server-8.0.32-1.el9.x86_64
  20. [root@forDB ~]# systemctl start mysqld
  21. [root@forDB ~]# systemctl status mysqld
  22. # MySQL8.0.32版本第一次登录需要临时密码,在mysqld.log文件中
  23. [root@forDB ~]# grep password /var/log/mysqld.log
  24. 2023-02-09T12:46:59.105801Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: ;/pZjo)lV8>B
  25. [root@forDB ~]# mysql -uroot -p';/pZjo)lV8>B'
  26. # 登录之后必须先修改用户密码,不然无法正常使用mysql。默认密码策略要求密码至少包含一个大写字母、一个小写字母、一位数字和一个特殊字符,并且密码总长度至少为8个字符。
  27. mysql> ALTER USER root@localhost IDENTIFIED BY 'Admin123!';
  28. # 此时就可以正常使用mysql了
  29. mysql> show databases;
  30. +--------------------+
  31. | Database |
  32. +--------------------+
  33. | information_schema |
  34. | mysql |
  35. | performance_schema |
  36. | sys |
  37. +--------------------+
  38. 4 rows in set (0.00 sec)

卸载MySQL:

  1. [root@forDB ~]# yum remove mysql-server -y
  2. [root@forDB ~]# rpm -qa | grep mysql
  3. mysql80-community-release-el9-1.noarch
  4. [root@forDB ~]# yum remove mysql80-community-release.noarch -y
  5. # 删除相关文件,以防再次安装产生冲突
  6. [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/ 中获取对应操作系统的捆绑包(这不能在Linux中下载,只能先下载到Windows上再传到Linux上)

  1. [root@forDB ~]# mkdir mysql
  2. [root@forDB ~]# cd mysql/
  3. [root@forDB mysql]# wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.32-1.el9.x86_64.rpm-bundle.tar
  4. [root@forDB mysql]# tar xvf mysql-8.0.32-1.el9.x86_64.rpm-bundle.tar
  5. [root@forDB mysql]# rpm -ivh mysql-community-server-8.0.32-1.el9.x86_64.rpm \
  6. > mysql-community-client-8.0.32-1.el9.x86_64.rpm \
  7. > mysql-community-common-8.0.32-1.el9.x86_64.rpm \
  8. > mysql-community-icu-data-files-8.0.32-1.el9.x86_64.rpm \
  9. > mysql-community-client-plugins-8.0.32-1.el9.x86_64.rpm \
  10. > mysql-community-libs-8.0.32-1.el9.x86_64.rpm
  11. [root@forDB mysql]# systemctl start mysqld.service
  12. [root@forDB mysql]# systemctl status mysqld.service
  13. [root@forDB mysql]# grep password /var/log/mysqld.log
  14. 2023-02-09T13:52:16.691395Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: d+41ucpK_)IN
  15. [root@forDB mysql]# mysql -uroot -p
  16. Enter password:
  17. mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Admin123!';
  18. mysql> show databases;
  19. mysql> exit

卸载MySQL:

  1. [root@forDB mysql]# rpm -qa | grep mysql
  2. mysql-community-client-plugins-8.0.32-1.el9.x86_64
  3. mysql-community-common-8.0.32-1.el9.x86_64
  4. mysql-community-libs-8.0.32-1.el9.x86_64
  5. mysql-community-client-8.0.32-1.el9.x86_64
  6. mysql-community-icu-data-files-8.0.32-1.el9.x86_64
  7. mysql-community-server-8.0.32-1.el9.x86_64
  8. [root@forDB mysql]# rpm -evh mysql-community-client-plugins \
  9. > mysql-community-common \
  10. > mysql-community-libs \
  11. > mysql-community-client \
  12. > mysql-community-icu-data-files \
  13. > mysql-community-server
  14. [root@forDB mysql]# rm -rf /var/log/mysqld.log /var/lib/mysql/

本地安装的缺点就是安装时的依赖很烦人,卸载时也比较麻烦。我的评价是不如仓库安装。

三、容器安装

容器安装方式首先要安装容器,再在容器上安装MySQL。

  1. #删除之前的容器
  2. [root@forDB ~]# yum remove docker \
  3. docker-client \
  4. docker-client-latest \
  5. docker-common \
  6. docker-latest \
  7. docker-latest-logrotate \
  8. docker-logrotate \
  9. docker-engine
  10. #安装容器的依赖包
  11. [root@forDB ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
  12. #添加阿里云的容器仓库
  13. [root@forDB ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  14. #更改仓库文件中的下载网站为阿里云的网站,因为国内的网站会快一些
  15. [root@forDB ~]# sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
  16. #安装docker-ce,这里要用--allowerasing选项来替换rhel9中冲突的软件包
  17. [root@forDB ~]# yum install docker-ce --allowerasing -y
  18. [root@forDB ~]# systemctl start docker
  19. [root@forDB ~]# systemctl status docker
  20. [root@forDB ~]# docker version
  21. #测试docker能否正常运行
  22. [root@forDB ~]# docker run hello-world
  23. #安装mysql
  24. [root@forDB ~]# docker run --name mysqltest -e MYSQL_ROOT_PASSWORD=123456 -d mysql
  25. #查看容器信息
  26. [root@forDB ~]# docker ps
  27. #为mysqltest建立一个bash接口
  28. [root@forDB ~]# docker exec -it mysqltest /bin/bash
  29. #登录测试
  30. bash-4.4# mysql -uroot -p
  31. Enter password:
  32. mysql> show databases;
  33. +--------------------+
  34. | Database |
  35. +--------------------+
  36. | information_schema |
  37. | mysql |
  38. | performance_schema |
  39. | sys |
  40. +--------------------+
  41. 4 rows in set (0.00 sec)
  42. mysql> exit
  43. Bye
  44. bash-4.4# exit
  45. exit
  46. [root@forDB ~]#

登录时也可以用主机直接连容器的MySQL:

  1. #安装一个MySQL的客户端
  2. [root@forDB ~]# yum install mysql -y
  3. #查看容器的ip
  4. [root@forDB ~]# docker inspect mysqltest
  5. ...
  6. "IPAddress": "172.17.0.2",
  7. ...
  8. #连接容器的MySQL
  9. [root@forDB ~]# mysql -uroot -p123456 -h 172.17.0.2
  10. mysql>

四、源码安装

源码安装最为费时费力,但用源码安装的软件是最适合本机器的。

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

也可在官网手动下载压缩包,再传到Linux上:

https://dev.mysql.com/downloads/mysql/

  1. [root@server ~]# wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-boost-8.0.32.tar.gz
  2. #添加mysql系统用户和组
  3. [root@server ~]# groupadd mysql
  4. [root@server ~]# useradd -r -g mysql -s /bin/false mysql
  5. #解压解包,生成了mysql-8.0.32的文件,这就是源码包的所有内容
  6. [root@server ~]# tar xvf mysql-boost-8.0.32.tar.gz
  7. #安装编译器
  8. [root@server ~]# yum install gcc gcc-c++ cmake -y
  9. #安装编译过程中需要的库
  10. [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
  11. [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
  12. #创建一个编译目录
  13. [root@server ~]# cd mysql-8.0.32/
  14. [root@server mysql-8.0.32]# mkdir bld
  15. [root@server mysql-8.0.32]# cd bld
  16. #准备编译
  17. [root@server bld]# cmake .. -DWITH_BOOST=../boost/boost_1_77_0
  18. #开始编译(建议将虚拟机内存调整为至少4G,以提高编译速度)
  19. [root@server bld]# make ########该过程很久,大概两三个小时,请耐心等待
  20. #编译完成后,开始安装
  21. [root@server bld]# make install
  22. #安装好的文件在/usr/local/mysql中
  23. [root@server bld]# cd /usr/local/mysql/
  24. #创建一个存储数据文件的目录
  25. [root@server mysql]# mkdir mysql-files
  26. #修改所属者和所属组
  27. [root@server mysql]# chown mysql:mysql mysql-files/
  28. #修改权限
  29. [root@server mysql]# chmod 750 mysql-files/
  30. #初始化数据库(临时密码在最后的输出中:dU/sA5uleFrk)
  31. [root@server mysql]# ./bin/mysqld --initialize --user=mysql
  32. 2023-02-10T14:59:13.708471Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: dU/sA5uleFrk
  33. #开启数据库的ssl加密功能
  34. [root@server mysql]# ./bin/mysql_ssl_rsa_setup
  35. #启动mysqld服务
  36. [root@server mysql]# ./bin/mysqld_safe --user=mysql & #mysqld_safe防止误杀mysql服务,&表示后台运行
  37. #用初始化产生的临时密码登录mysql
  38. [root@server mysql]# ./bin/mysql -uroot -pdU/sA5uleFrk
  39. mysql>
  40. #更改密码
  41. mysql> ALTER USER root@localhost IDENTIFIED BY 'Admin123!';
  42. mysql> exit
  43. 大功告成!
  1. #停止mysql服务
  2. [root@server mysql]# ./bin/mysqladmin -uroot -pAdmin123! shutdown
  1. #若想用systemctl命令快捷启动mysql,可以操作如下:
  2. [root@server mysql]# cp support-files/mysql.server /etc/init.d/mysql.server
  3. (若没有init.d文件,可以yum install chkconfig -y,就有了)
  4. [root@server mysql]# systemctl daemon-reload
  5. [root@server mysql]# systemctl start mysql
  6. [root@server mysql]# systemctl status mysql
  7. [root@server mysql]# systemctl stop mysql

over~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/165700
推荐阅读
相关标签
  

闽ICP备14008679号