Linux (Centos 7) tar.gz 自定义目录安装mysql - 精华版

1. 安装环境

操作系统:Centos 7

1.1 删除 mysql 数据库

find / -name mysql
find / -name mysqld

1.1.1 删除所有与 mysql 数据库关联的目录,注意如果是python关联模块为mysql,别乱删除

rm -rf 所有关联的目录(文件夹)

特别是(如果存在的话)

rm -rf /etc/init.d/mysqld

1.2 强制停止 mysql 服务进程

ps -ef |grep mysqld
kill -9 pid编号
ps -ef |grep mysql
kill -9 pid编号

2. 安装mysql 依赖 (yum包安装)

安装msyql 依赖shell 命令:

yum -y install libaio
yum -y install numactl

如果报错:-bash: /usr/bin/yum: /usr/bin/python: 坏的解释器: 没有那个文件或目录

请查看路径 /usr/bin/yum 文件

在这里插入图片描述

ll /usr/bin/python

在这里插入图片描述
有可能是软连接问题,导致/usr/bin/yum 文件获取不到 /usr/bin/python 这个python 解释器
修正软连接:

 ln -s /usr/local/bin/python3.7 /usr/bin/python

如果使用命令ll /usr/bin/python,发现还是红色显示的,那么有可能是pythonx.x 已经被你改变位置,或者被删除了,可以用另外版本的python解释器,做为软连接。
比如 ln -s /usr/bin/python3.6 /usr/bin/python 这样就不用了改动 /usr/bin/yum 文件了

如果还是报错 yum 文件问题,如 File "/usr/bin/yum", line 30 except KeyboardInterrupt, e: ^ SyntaxError: inv
那就不好办了,这个是版本问题,之前安装 yum 时,默认是匹配 python2.x 版本的,而现在笔者是 python3.x版本,python2.x和python3.x版本的语法变化挺多的,不兼容,所以出现这个问题。

解决方法如下:

将软连接改回去python2.x版本

ln -s /usr/bin/python2.7 /usr/bin/python

尝试过想要升级 python2 为 python3 版本,记录如下:

官网yum安装包地址
重装yum教程链接

Centos 7版本 yum下载(重装yum教程链接里面的地址有问题,笔者将下载链接重新弄好了,如下所示)

wget http://mirror.centos.org/centos/7/os/x86_64/Packages/yum-3.4.3-168.el7.centos.noarch.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm

但是最后笔者发现yum 目前好像就只支持 python2.x版本,所以没法,只能改软连接为 python2.x版本的

3. 判断有无mysql用户

shell命令:

id msyql

没有则创建msyql用户

shell命令:

groupadd mysql
useradd -r -g mysql mysql

4. 下载mysql tar.gz 安装包

安装包下载链接:MySQL Community Downloads

在这里插入图片描述
在这里插入图片描述
右键 download ,选择 复制链接地址

(或者使用迅雷下载,或者是浏览器下载,然后将安装包上传,winSCP了解下)

cd /home/work/

下载tar.gz安装包

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz

解压 tar.gz 安装包

tar -zxvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz

改名

mv mysql-5.7.23-linux-glibc2.12-x86_64/ mysql/

进入该mysql安装文件内

cd mysql/

4.1 创建相应目录规范化

旧版有 bug 的命令:

在 mysql 安装目录内,创建 data、log、tmp 三个文件夹

mkdir -p {data,log,tmp}

-------------------------------------- 重点! 重点! 重点!---------------------------------------------

新版修改好 bug 的命令:

上面的三个data、log、tmp目录创建命令修改为如下命令:

只创建 logtmp 两个文件夹就好了。(data 文件夹最好不要在一开始就建立,交给初始化mysql时的命令,来建立,否则会由于已经存在了 data文件夹,导致无法安装各种 mysql 服务依赖插件,最终无法启动 mysql 服务)

mkdir -p {log,tmp}

分配文件权限,不然有可能会报错

chown -R mysql:mysql  /home/work/mysql

5. 定义 /etc/my.cnf

查看有无/etc/my.cnf文件,没有则创建,当然这里笔者没弄过,感觉是之前留下来的文件,如果已经存在了该文件,那么只需要修改里面的配置就好了,如果没有后面可能需要在初始化 mysql数据库时,需要添加相应的 basedir 和 datadir log-error等参数。
/etc/my.cnf文件内的配置和初始化mysql时的参数配置是对应的

这个文件最为关键,自定义目录mysql安装 精华版安装的核心在于其配置

5.1 默认 /etc/my.cnf 文件存在

先配置好该文件,才对mysql安装文件进行初始化命令。

vi /etc/my.cnf

其配置文件模板,如下:

参考my.ini 配置链接:my.ini文件参数中文注释

[mysqld]
#user=mysql
port=3306
basedir=/home/work/mysql
datadir=/home/work/mysql/data
socket=/home/work/mysql/mysql.sock
tmpdir=/home/work/mysql/tmp
# 数据库默认字符集编码 urf8 国内通常为 utf8mb4_general_ci
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
init-connect='SET NAMES utf8mb4'
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#skip-grant-tables
plugin-load-add=validate_password.so    #在mysql启动时载入插件
validate-password=FORCE_PLUS_PERMANENT   #为阻止该插件在运行时被删除,设置为永久强制使用
# 弱密码策略永久生效
validate_password_length=6
validate_password_policy=0
# 
explicit_defaults_for_timestamp=true

[mysqld_safe]
# mysqld 服务启动日志
log-error=/home/work/mysql/log/mysqld.log
pid-file=/home/work/mysql/mysqld.pid

[mysql]
#设置mysql客户端默认字符集utf8
default-character-set=utf8mb4

[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
socket=/home/work/mysql/mysql.sock
default-character-set=utf8mb4

修改后保存退出。

cd 到 /home/work/mysql/ 路径下输入如下命令,初始化 mysql 数据库,最好最好不要按照下面命令去初始化,否则,安装到后面会出现mysqld 服务无法启动的问题。最好带上 --basedir=/home/work/mysql --datadir=/home/work/mysql/data
因为只有这样初始化mysql数据库时,会自动安装各种mysql的配置依赖插件,后面服务才不会缺少某种插件导致无法启动问题。

./bin/mysqld --user=mysql

上面的命令,修改为:(路径请指定更改为自己的mysql安装路径

./bin/mysqld --user=mysql --initialize --basedir=/home/work/mysql --datadir=/home/work/mysql/data

5.1.1 有可能出现未正确初始化mysql 导致的 mysql 服务无法正常启动问题

如果出现 mysql 服务启动日志内,出现下面的错误,那么请删除 data 文件夹然后重新初始化 mysql,命令为上方的 mysql 初始化命令

  1. Table 'mysql.plugin' doesn't exist

5.2 关于配置 my.cnf 配置文件,用于调试mysql数据库,如何调试理解 Starting MySQL. ERROR! The server quit without updating PID file

[mysqld_safe]
log-error=/home/work/mysql/log/mysqld.log
pid-file=/home/work/mysql/mysqld.pid

在my.cnf配置文件内,配置相应需求的参数,那么如果配置出问题,那么又该如何调试,重点在于 /home/work/mysql/log/mysqld.log这个路径是笔者的mysql 服务启动日志文件路径,自行替换),如果 mysql 服务启动时出现错误 Starting MySQL. ERROR! The server quit without updating PID file, 那么便可以在此文件内,查找问题,因为mysql 服务启动,此日志为 mysql 服务启动日志文件。

6. 配置mysql服务

cd /home/work/mysql/support-files

复制到开机启动服务文件目录内

cp mysql.server /etc/init.d/mysqld

7. 修改 /etc/init.d/mysqld 配置文件

vi /etc/init.d/mysqld

默认的安装路径:(如果按上面的my.cnf配置文件模板去配置的话,就按这个默认安装的配置

basedir=/home/work/mysql
bindir=/home/work/mysql/bin
datadir=/home/work/mysql/data
sbindir=/home/work/mysql/bin
libexecdir=/home/work/mysql/bin

笔者的安装路径:(env/路径下安装是笔者的个人喜好安装路径,下面的安装,差不多和默认安装一样,只不过多了一个env/的文件夹路径)

basedir=/home/work/env/mysql
bindir=/home/work/env/mysql/bin
datadir=/home/work/env/mysql/data
sbindir=/home/work/env/mysql/bin
libexecdir=/home/work/env/mysql/bin

原文件内容:

在这里插入图片描述

修改后内容:(笔者的个人路径配置,默认安装则将 env/ 目录删除

在这里插入图片描述

7.1 特别修改

7.1.1 补充说明

下面的配置是笔者以前找到的方法,但其实仍是一个粗略的方法。假如 启动 mysqld 服务时,会报错下列错误,那么下面的 7.1.2 的粗略方法完全是乱来的。

Starting MySQL. ERROR! The server quit without updating PID file (/home/work/env/mysql/mysqld.pid).

7.1.2 粗略方法

可能会启动不了,如果一直是用 root 用户安装 mysql 的话,所以需要修改一下,用户登录为 root

vi /etc/init.d/mysqld

增加 --user=root

在这里插入图片描述
具体内容看下方报错集锦 第 4 号

验证登录

如果是默认安装的话,记得把 env/ 目录删除了

ln -s /home/work/mysql/bin/mysql /usr/bin/mysql

笔者的软连接:

ln -s /home/work/env/mysql/bin/mysql /usr/bin/mysql

shell 命令:

mysql -uroot -p

输入设置的弱密码 123456


有可能报错,安装mysql 时的报错解决方法集锦

1. 查看Step9.修改 /etc/init.d/mysqld 配置文件

2. ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists

3. 自定义目录安装mysql 报错集锦mysqld_safe error: log-error Please use --explicit_defaults_for_ --initialize speci

4. 启动mysql服务时一直提示ERROR The server quit without updating PID file

5. ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’

6. Centos7-tar包自定义安装mysql -ERROR 2002/ERROR 1045/ERROR 1054/ERROR 1290/ERROR 1820/ERROR 1819/ERROR 1193

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
好的,你可以按照以下步骤在CentOS安装mysql-8.tar.gz版本的MySQL: 1. 首先,下载mysql-8.tar.gz包,可以使用以下命令在终端或命令行工具中进行下载: ``` wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.25-linux-glibc2.17-x86_64.tar.gz ``` 注意:以上下载地址是mysql-8.0.25版本的下载地址,如果需要安装其他版本的MySQL,请修改下载地址。 2. 下载完成后,解压mysql-8.tar.gz包,可以使用以下命令进行解压: ``` tar -zxvf mysql-8.0.25-linux-glibc2.17-x86_64.tar.gz ``` 3. 将解压后的mysql-8.0.25-linux-glibc2.17-x86_64目录移动到/usr/local目录下: ``` mv mysql-8.0.25-linux-glibc2.17-x86_64 /usr/local/mysql ``` 4. 进入/usr/local/mysql目录,执行以下命令初始化MySQL: ``` cd /usr/local/mysql bin/mysqld --initialize --user=mysql ``` 5. 修改MySQL配置文件/etc/my.cnf,添加以下内容: ``` [mysqld] basedir=/usr/local/mysql datadir=/usr/local/mysql/data socket=/var/lib/mysql/mysql.sock log-error=/var/log/mysql/error.log pid-file=/var/run/mysql/mysql.pid ``` 注意:以上配置文件中的参数可以根据你的需要进行修改。 6. 创建MySQL运行所需的目录: ``` mkdir /var/run/mysql mkdir /var/log/mysql chown -R mysql:mysql /var/run/mysql chown -R mysql:mysql /var/log/mysql ``` 7. 启动MySQL服务: ``` bin/mysqld_safe --user=mysql & ``` 8. 设置root用户密码: ``` bin/mysql_secure_installation ``` 按照提示,设置root用户密码。 9. 远程连接MySQL: ``` bin/mysql -u root -p ``` 输入密码后,即可进入MySQL命令行界面。 至此,你已经成功在CentOS安装mysql-8.tar.gz版本的MySQL

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值