本文介绍: 查看有无/etc/my.cnf文件没有创建,当然这里笔者没弄过,感觉是之前留下来的文件,如果已经存在了该文件,那么只需要修改里面配置就好了,如果没有后面可能需要初始化 mysql数据库时,需要添加相应的 basedir 和 datadir logerror参数。文件内的配置初始化mysql时的参数配置对应的这个文件最为关键,自定义目录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 logerror参数
/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

原文地址:https://blog.csdn.net/qq_42701659/article/details/127529735

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_10785.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注