赞
踩
操作系统:Centos 7
find / -name mysql
find / -name mysqld
rm -rf 所有关联的目录(文件夹)
特别是(如果存在的话)
rm -rf /etc/init.d/mysqld
ps -ef |grep mysqld
kill -9 pid编号
ps -ef |grep mysql
kill -9 pid编号
安装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 版本,记录如下:
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版本的
shell命令:
id msyql
没有则创建msyql用户
shell命令:
groupadd mysql
useradd -r -g mysql mysql
安装包下载链接: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/
旧版有 bug 的命令:
在 mysql 安装目录内,创建 data、log、tmp 三个文件夹
mkdir -p {data,log,tmp}
-------------------------------------- 重点! 重点! 重点!---------------------------------------------
新版修改好 bug 的命令:
上面的三个data、log、tmp目录创建命令修改为如下命令:
只创建 log
、tmp
两个文件夹就好了。(data 文件夹最好不要在一开始就建立,交给初始化mysql时的命令,来建立,否则会由于已经存在了 data文件夹,导致无法安装各种 mysql 服务依赖插件,最终无法启动 mysql 服务)
mkdir -p {log,tmp}
分配文件权限,不然有可能会报错
chown -R mysql:mysql /home/work/mysql
查看有无/etc/my.cnf文件,没有则创建,当然这里笔者没弄过,感觉是之前留下来的文件,如果已经存在了该文件,那么只需要修改里面的配置就好了,如果没有后面可能需要在初始化 mysql数据库时,需要添加相应的 basedir 和 datadir log-error等参数。
/etc/my.cnf
文件内的配置和初始化mysql时的参数配置是对应的
这个文件最为关键,自定义目录mysql安装 精华版安装的核心在于其配置
先配置好该文件,才对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
如果出现 mysql 服务启动日志内,出现下面的错误,那么请删除 data 文件夹然后重新初始化 mysql,命令为上方的 mysql 初始化命令
Table 'mysql.plugin' doesn't exist
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 服务启动日志文件。
cd /home/work/mysql/support-files
复制到开机启动服务文件目录内
cp mysql.server /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/
目录删除)
下面的配置是笔者以前找到的方法,但其实仍是一个粗略的方法。假如 启动 mysqld 服务时,会报错下列错误,那么下面的 7.1.2 的粗略方法完全是乱来的。
Starting MySQL. ERROR! The server quit without updating PID file (/home/work/env/mysql/mysqld.pid).
可能会启动不了,如果一直是用 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
1. 查看Step9.修改 /etc/init.d/mysqld 配置文件
2. ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists
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’
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。