mysql有多种安装方式,这里讲下其中3种最简单的安装方式。
一. 目前我用过的安装方式
源码编译安装
rpm包安装
yum源安装
docker安装
k8s使用yaml安装
k8s使用helm安装
二. 推荐安装方式
1. rpm 安装
使用rpm安装是最简单的主机安装方式,没有网络依赖性,即使是内网也能快速方便的安装起来。
mysql rpm包的下载地址 :https://dev.mysql.com/downloads/mysql/
下载完后将安装包上传到服务器中。
按照依赖关系依次安装rpm包 依赖关系依次为common→libs→client→server
# 执行的安装命令
rpm -ivh mysql-community-common-5.7.22-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.22-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.22-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.22-1.el7.x86_64.rpm
可能遇到的问题
在安装 mysql-community-libs-5.7.22-1.el7.x86_64.rpm 时有可能会报错:mysql依赖错误
[root@nfs_client tools]# rpm -ivh mysql-community-libs-5.7.22-1.el7.x86_64.rpm
warning: mysql-community-libs-5.7.22-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
mysql-community-common(x86-64) >= 5.7.9 is needed by mysql-community-libs-5.7.22-1.el7.x86_64
mariadb-libs is obsoleted by mysql-community-libs-5.7.22-1.el7.x86_64
# 解决:清除yum里所有mysql依赖包
[root@nfs_client tools]# rpm -qa|grep mysql
[root@nfs_client tools]# yum remove mysql-libs
#net-tools 被 mysql-community-server-5.7.26-1.el7.x86_64 需要
yum install net-tools
安装成功后的初始化密码
# 查看初始化密码
grep 'temporary password' /var/log/mysqld.log
之后修改密码即可
alter user root@localhost identified by 'gX_1234568';
2. yum 源安装
使用yum安装有网络依赖性,内网没法这样安装
配置mysqlyum源
# 这里的版本可以根据需要更改
# 也可以直接在yum源配置文件中更改
yum install -y https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
配置安装流程
=>检查子运行库
yum repolist enabled | grep "mysql.*-community.*"
=》查看所以版本库
yum repolist all | grep mysql
=》选择特定的版本库
shell> sudo yum-config-manager --disable mysql57-community
shell> sudo yum-config-manager --enable mysql56-community
==> 进行安装
yum install mysql mysql-devel mysql-server mysql-utilities
==》查找已经安装的mysql 的rpm 信息 -l 查看安装路径
rpm -qa | grep -i mysql
rpm -qal | grep -i mysql
3.docker 安装
docker 的优点是容器化,将安装和运行放在了容器中(可以同一个机器部署多个mysql),缺点是配置要麻烦一些,有些调试也会复杂,安装只有pull 镜像时需要网络(也可以上传镜像就不要网络了)
# 首先要拉镜像(这里是通过网络直接拉取)
docker pull mysql
# 这里持久化文件映射到了下面的目录,
mkdir -p /app/mysql_runner/conf
# 这部分是为了将mysql配置文件从镜像中拿出来。
docker run -d -e MYSQL_ROOT_PASSWORD=vic123 --name mysql-test mysql
docker cp mysql-test:/etc/mysql/my.cnf /app/mysql_runner/conf
docker cp mysql-test:/etc/mysql/conf.d /app/mysql_runner/conf
docker stop mysql-test
docker rm mysql-test
# 将镜像实例化 这里将password改为自己要设置的密码即可
docker run -d -p 3306:3306 --privileged=true \
-v /etc/localtime:/etc/localtime \
-v /app/mysql_runner/mysql:/var/lib/mysql \
-v /app/mysql_runner/mysql-files:/var/lib/mysql-files \
-v /app/mysql_runner/log:/var/log/mysql \
-v /app/mysql_runner/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=password --name mysql8 mysql
从容器中进入mysql(其实容器外mysql已经监听在了3306端口,如果在外面装一个mysql-client 也可以从外部进入mysql)(从外面进入mysql还需要建一个监听ip为%的账号,否则会被账号拦住)
# 进入容器
docker exec -it mysql8 bash
# 从容器中登录mysql
mysql -uroot -ppassword