一.仓库安装
1.1、下载rpm包
[root@localhost ~]# cd /etc/yum.repos.d
[root@localhost yum.repos.d]# rpm -i https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm
可以在以下网址中找到下载地址:https://dev.mysql.com/downloads/file/?id=511985
还可以在以下地址找到适合版本的rpm包
https://repo.mysql.com/
还可以手动配置yum源,baseurl指向国内镜像源地址,比如清华、中科大。
/etc/yum.repos.d/mysql.repo
[mysql]
name=mysql5.7
baseurl=http://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-x86_64/
gpgcheck=0
1.2、挂载
[root@localhost ~]# mount /dev/sr0 /mnt
1.3、安装mysql
[root@localhost ~]# dnf install -y mysql-server
1.4、启动mysql服务
[root@localhost ~]# systemctl start mysqld
1.5、查看临时密码
[root@localhost ~]# grep password /var/log/mysqld.log
红色框框里面的都是密码。分号也是。
1.6、登录mysql
[root@localhost ~]# mysql -uroot -p
现在还不能使用MySQL命令,因为需要重置密码。
二.本地安装
适用于网络不方面的场景。
2.1、复制链接
网址:https://dev.mysql.com/downloads/file/?id=514230
2.2、下载解压
[root@localhost ~]# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.31-1.el9.x86_64.rpm-bundle.tar
[root@localhost ~]# tar xvf mysql-8.0.31-1.el9.x86_64.rpm-bundle.tar
2.3、安装需要的包
[root@localhost ~]# dnf localinstall mysql-community-server-8.0.31-1.el9.x86_64.rpm
黄色箭头的都需要安装。
这些包都不用删掉。以后可能还会用到。可以创一个目录专门来放。
其中:
mysql-community-client 客户端
mysql-community-devel 开发库
mysql-community-common 服务端和客户端的公共文件
mysql-community-embedded 嵌入式
mysql-community-server 服务端
mysql-community-test 测试组件
mysql-community-libs 共享库
mysql-community-libs-compat MySQL之前版本的共享兼容库
2.4、启动服务
[root@localhost ~]systemctl start mysqld
2.5、登录mysql
查看临时密码:
[root@localhost ~]grep password /var/log/mysqld.log
登录mysql:
[root@localhost ~]mysql -uroot -p
三.容器安装
3.1、安装docker
安装需要的安装包:
[root@localhost ~]# yum install -y yum-utils
设置阿里镜像仓库:
[root@localhost ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
安装docker
[root@localhost ~]# yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
开启docker服务:
[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl status docker
查看docker版本是否已经安装好了:
[root@localhost ~]# docker version
测试docker是否能用:
[root@localhost ~]# docker run hello-world
3.2、run镜像
[root@localhost ~]# docker run --name mysqltest -e MYSQL_ROOT_PASSWORD=123456 -d mysql
注意密码是123456
3.3、登录mysql
[root@localhost ~]# docker ps
[root@localhost ~]# rpm -qa | grep bash-com*
[root@localhost ~]# docker exec -it mysqltest /bin/bash
四.源码安装
4.1、复制源码链接
网址:https://dev.mysql.com/downloads/mysql/?spm=a2c6h.12873639.article-detail.6.68e61a14I0qJan
4.2、添加组,用户
[root@localhost mysql]# groupadd mysql
[root@localhost mysql]# useradd -r -g mysql -s /bin/false mysql
如果之前下载过mysql,会提示已存在。
4.3、下载解压源码
[root@localhost ~]# mkdir mysql
[root@localhost ~]# chmod 777 mysql/
[root@localhost ~]# cd mysql/
[root@localhost mysql]# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-8.0.31.tar.gz
[root@localhost mysql]# tar xvf mysql-boost-8.0.31.tar.gz
解压完成:(如果解压有问题就重新下载再解压)
4.4、cmake编译mysql
[root@localhost mysql]# cd mysql-8.0.31/
[root@localhost mysql-8.0.31]# mkdir bld
[root@localhost mysql-8.0.31]# cd bld
[root@localhost bld]# cmake …
如果提示cmake命令不存在根据提示下载。
安装好cmake之后。继续cmake编译:
[root@localhost bld]# cmake …
这里会遇到很多问题需要耐心一点:
第一种:没有编译器。
解决办法:安装gcc
[root@localhost bld]# dnf install -y gcc*
第二种:需要boost。
解决办法:有boost,只需要cmake的时候指定路径
[root@localhost bld]# cmake … -DWITH_BOOST=…/boost/boost_1_77_0/
注意是两个点点。不知道为什么我打的是两个点点。但是显示的是三个点点。在接下来的步骤当中cmake的时候都需要这样指定目录的cmake。
第三种:没有openssl
解决办法:安装openssl
[root@localhost bld]#dnf install openssl-devel
安装成功后继续指定路径的cmake
[root@localhost bld]# cmake … -DWITH_BOOST=…/boost/boost_1_77_0/
第四种:还需要一些东西。
解决办法:根据提示安装
[root@localhost bld]# dnf install ncurses-devel -y
安装成功后继续指定路径的cmake
[root@localhost bld]# cmake … -DWITH_BOOST=…/boost/boost_1_77_0/
第五种:没有RPC
解决办法:安装
[root@localhost bld]# yum install libtirpc-devel
提示说没有libtirpc-devel。
按以下方式继续下载:
[root@localhost bld]# yum install https://dl.rockylinux.org/pub/rocky/9/devel/x86_64/os/Packages/l/libtirpc-devel-1.3.3-0.el9.x86_64.rpm
发现提示说
error: Failed dependencies:
libtirpc(x86-64) = 1.3.3-0.el9 is needed by libtirpc-devel-1.3.3-0.el9.x86_64
解决办法:下载libtirpc-1.3.3-0.el9.x86_64.rpm:
[root@localhost bld]# yum install https://dl.rockylinux.org/pub/rocky/9/devel/x86_64/os/Packages/l/libtirpc-1.3.3-0.el9.x86_64.rpm
继续cmake。
又出现问题了。
第六种:没有rpcgen
解决办法:安装rpcgen
[root@localhost bld]# yum install rpcgen
继续cmake。
提示说Generating done。说明已经差不多了。但是往上翻会发现。提示了有很多需要安装的。最好还是都安装一下。安装不了就算了。
[root@localhost bld]# yum install SASL
[root@localhost bld]# yum install LDAP
[root@localhost bld]# yum install bison
[root@localhost bld]# yum install libudev-devel
到这里cmake就完成了。cmake遇到什么问题。就根据提示安装解决。
4.5、编译安装
在终端里面make。
make的时间很久。需要等两个小时左右。
4.6、按照官网的步骤进行
# Preconfiguration setup
$> groupadd mysql
$> useradd -r -g mysql -s /bin/false mysql
# Beginning of source-build specific instructions
$> tar zxvf mysql-VERSION.tar.gz
$> cd mysql-VERSION
$> mkdir bld
$> cd bld
$> cmake ..
$> make
$> make install
# End of source-build specific instructions
# Postinstallation setup
$> cd /usr/local/mysql
$> mkdir mysql-files
$> chown mysql:mysql mysql-files
$> chmod 750 mysql-files
$> bin/mysqld --initialize --user=mysql
$> bin/mysql_ssl_rsa_setup
$> bin/mysqld_safe --user=mysql &
# Next command is optional
$> cp support-files/mysql.server /etc/init.d/mysql.server
网址:
https://dev.mysql.com/doc/refman/8.0/en/installing-source-distribution.html
但是。我没有做成功。服务启动不起来。就看各位的了。
五.多实例安装
这里用shell脚本实现的
#/bin/bash
mv mysql-5.7.27-linux-glibc2.12-x86_64 /usr/local/mysql
mkdir /usr/local/mysql/data
cd /usr/local/mysql/data
mkdir {3307,3308,3309,3310}
groupadd mysql
useradd -r -g mysql mysql
cd /usr/local/mysql/bin/
for i in {3307,3308,3309,3310}
do
./mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/$i/ --user=mysql
done
for j in {3307,3308,3309,3310}
do
cat > /usr/local/mysql/data/$j/my.cnf << EOF
[client]
port=$j
socket=/usr/local/mysql/data/$j/mysql.sock
default_character_set=utf8
[mysqld]
port=$j
socket=/usr/local/mysql/data/$j/mysql.sock
datadir=/usr/local/mysql/data/$j
log-error=/usr/local/mysql/data/$j/error.log
pid-file=/usr/local/mysql/data/$j/mysql.pid
character_set_server=utf8
lower_case_table_names=1
autocommit=1
EOF
done
cd /usr/local/mysql/bin/
for k in {3307,3308,3309,3310}
do
./mysqld_safe --defaults-file=/usr/local/mysql/data/$k/my.cnf &
sleep 3
done
六.二进制安装
环境 centos 7.9 mysql 5.7.14 二进制包:
6.1 下载并上传二进制包
官网地址:https://downloads.mysql.com/archives/community/
6.2 创建用户和用户组
groupadd -r mysql
useradd mysql -r -g mysql -c "MySQL Server" -s /bin/false
-c<备注> 加上备注文字。备注文字会保存在passwd的备注栏位中。
6.3解压,软链接
tar xf mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz -C /usr/local
ln -sv /usr/local/mysql-5.7.14-linux-glibc2.5-x86_64 /usr/local/mysql
6.4 初始化数据库
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data
之前初始化mysql数据库命令 mysql_install_db 从MySQL 5.7.6 开始废弃,使用 mysqld 初始化数据库。
–initialize 会在日志里打印出一个随机密码。
–initialize-insecure 不会产生随机密码,第一次登陆数据库使用空密码。
6.5 提供配置文件和服务启动脚本
配置文件:
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
vim /etc/my.cnf
/etc/my.cnf
服务脚本:
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
#添加系统服务,并设置开机自启动
chkconfig --add mysqld
chkconfig mysqld on
①目录 /etc/init.d/ 中包含许多系统服务的启动和停止脚本。
②mysql.server是mysql安装目录support-files下的一个文件,也是一个启动Shell脚本,脚本中会去调用mysqld_safe脚本。
③chkconfig 命令用于检查,设置系统的各种服务。chkconfig是用于管理SysVinit系统的服务,而systemctl是用于管理systemd系统的服务。
chkconfig命令在CentOS 6及之前的版本中使用,而systemctl命令在CentOS 7及之后的版本中使用。两个命令都可以用来设置服务在系统启动时自动启动。
6.6启动mysql
/usr/local/mysql/bin/mysqld_safe --user=mysql &
6.7 连接测试
6.8 配置环境变量
vim /etc/profile.d/mysql.sh
source /etc/profile
mysql.sh 文件内容如下:
6.9 补充总结
mysql的日志
①Mysql不提供my-default.cnf文件的版本
官网说:从5.7.18开始不在二进制包中提供my-default.cnf文件。
②创建软链接后,发现链接是红色并且闪烁,说明这个是个无效的链接,检查自己的链接的文件名之类的是否正确。
③一定要注意版本,可能各个版本安装的过程,以及使用的文件是不一样的。
④二进制安装和源码安装的区别:
二进制安装是直接使用预编译好的二进制文件进行安装,而源码安装是将源代码下载下来,通过编译和安装过程来完成安装。
七.卸载:
[root@localhost ~]# rpm -qa | grep mysql 查看mysql
[root@localhost ~]# dnf remove mysql-server -y
[root@localhost ~]# rpm -e mysql80-community-release
[root@localhost ~]# rm -rf /var/lib/mysql/
[root@localhost ~]# rm -rf /var/log/mysqld.log
=========================================================================
补充:
mysql文档地址:
https://dev.mysql.com/doc/refman/
mysql 之前的版本地址
https://downloads.mysql.com/archives/community/