centos 离线安装mysql

此片参考博客:

https://blog.youkuaiyun.com/fengxiaolu311/article/details/130845274

根据本身环境 调整了先后顺序

一、删除已安装的mysql文件及配置

1. 删除mysql文件

[root@wxclient02 etc]#  find / -name mysql
/run/lock/subsys/mysql
/root/mysql
/var/log/mysql
/usr/local/mysql
/usr/local/mysql/bin/mysql
/usr/local/mysql/include/mysql
/usr/local/mysql/data/mysql
[root@wxclient02 etc]# rm -rf /run/lock/subsys/mysql 
[root@wxclient02 etc]# rm -rf /var/log/mysql
[root@wxclient02 etc]# rm -rf /usr/local/mysql

2.删除Mysql 配置

rm -rf /etc/my.cnf
# 删除 /etc/init.d/ 下跟MySQL有关的服务,包括mysql、mysqld文件
rm -rf /etc/init.d/mysql
rm -rf /etc/init.d/mysqld

3.删除Mysql用户及用户组

 [root@wxclient02 etc]#  userdel mysql

二、安装mysql

1. 下载安装包

MySQL下载官网:
MySQL :: Download MySQL Community Server (Archived Versions)

2.上传安装包 并解压

tar -zxvf mysql-5.7.41-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.41-linux-glibc2.12-x86_64 /usr/local/mysql
cd /usr/local/mysql

3.添加用户组mysql和用户mysql,并将其添加到mysql用户组中

groupadd mysql
useradd -r -g mysql mysql

useradd -r 参数表示mysql用户是系统用户,不可用于登录系统。
useradd -g 参数表示把mysql用户添加到mysql用户组中。

4.检查是否安装了 libaio

rpm -qa | grep libaio
#如果没有的话,使用下面命令安装
yum install libaio

5.配置 my.cnf 文件

touch /etc/my.cnf
chmod +x /etc/my.cnf

vim /etc/my.cnf,添加以下内容

[mysqld]
port=3306
 
# 安装目录
basedir=/usr/local/mysql
# 数据存放目录
datadir=/usr/local/mysql/data
 
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
 
# 允许最大连接数
max_connections=200
 
# 服务端使用的字符集
character-set-server=utf8
collation-server=utf8_general_ci

# 解决group by问题
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
# 表名忽略大小写
lower_case_table_names=1

[client]
default-character-set=utf8

[mysqld_safe]
log-error=/var/log/mysql/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

6.创建mysql、data、logs文件夹

mkdir /usr/local/mysql/data
mkdir -p /var/log/mysql
mkdir -p /var/lib/mysql
touch /var/log/mysql/error.log

7.初始化 mysqld 生成初始化密码

cd /usr/local/mysql
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

或者修改配置文件 vim /etc/my.cnf ,给 mysqld 项增加 skip-grant-tables 跳过登录验证

[mysqld]
skip-grant-tables

8.mysql设置开机启动

cd /usr/local/mysql
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld

修改 mysqld 文件,在 $bindir/mysqld_safe 后面加上 --user=mysql

vim /etc/rc.d/init.d/mysqld

将 mysqld 服务加入到系统服务

chkconfig --add mysqld
chkconfig mysqld on  # 设置开机自启
service mysqld start  # 启动mysql

因为 mysqld 不是本地服务,是我们后加的,所以想要设置开机启动务不能用 systemctl enable mysqld systemctl 命令只能操作正常安装在系统的本地服务,所以要通过 chkconfig 命令来实现开机启动

9.配置环境变量

打开 /etc/profile 配置文件,添加以下内容:

# mysql环境变量

export PATH=$PATH:/usr/local/mysql/bin

执行命令

source /etc/profile
echo $PATH  # 校验是否成功

10.使用初始化的密码,首次登录

mysql -uroot -p

mysql> use mysql;

11.期间报错合集

a.初始化数据库时报错
./bin/mysqld: error while loading shared libraries: libnuma.so.1:
 cannot open shared object file: No such file or directory
# 需安装 libnuma.so.1,因为装的mysql是64位的,包也需要64位的
yum -y install numactl.x86_64

b.登录时报错

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

alter user 'root'@'localhost' identified by '123456';
# 允许远程访问
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;
c.登录不进去

mysql -uroot -p

Enter password:

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

find / -name mysql.sock
输出: /var/lib/mysql/mysql.sock
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zbqice007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值