centos7或 8(rocky linux 8)安装MySql5.7

本文详细介绍了在CentOS系统中如何卸载并重新安装Mysql的过程,包括停止服务、删除相关包、安装新的rpm源、选择版本、解决安装问题、设置权限、修改配置文件以及数据目录的位置,最后还提到了字符集的调整和启动服务时可能遇到的问题及解决方法。

一、卸载MySql

卸载之前关闭所有mysql服务

systemctl stop mysqld

查看进程,还存在的话,直接kill

ps -ef | grep mysql

1.首先查看已安装的mysql

rpm -qa | grep -i mysql

2.逐个卸载掉

rpm -e mysql-community-client-5.7.41-1.el7.x86_64
rpm -e mysql-community-server-5.7.41-1.el7.x86_64
rpm -e mysql80-community-release-el7-3.noarch
rpm -e mysql-community-common-5.7.41-1.el7.x86_64
rpm -e mysql-community-libs-5.7.41-1.el7.x86_64

3. 卸载其他相关文件

find / -name mysql -exec rm -rf {} \;

 二、安装MySql

1.安装mysql的rpm源

centOS8中的yum库默认的是mariaDB,我们需要下载mysql80-community-release-el7-3.noarch,里面包含了5.6,5.7,8.0等版本。

wget http://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

安装mysql的rmp

rpm -ivh mysql80-community-release-el7-3.noarch.rpm

查看将要安装的mysql相关文件

yum repolist all | grep mysql

 默认情况下mysql80-community是启用的,mysql57-community是禁用的,用以下命令改变将要安装的版本

yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community

如果出现yum-config-manager: command not found,安装yum的utils工具即可

yum -y install yum-utils

安装完再执行上一步

2.安装MySql

yum -y install mysql-community-server

如果遇到Error: Unable to find a match: mysql-community-server
先执行以下命令,关闭当前的MariaDB,再执行上面的安装命令

yum module disable mysql 

解决CentOS yum安装Mysql8提示“公钥尚未安装”或“密钥已安装,但是不适用于此软件包”的问题

gpg --export -a 3a79bd29 > 3a79bd29.asc
 
rpm --import 3a79bd29.asc
 
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

再次执行安装

yum -y install mysql-community-server

安装完毕,查看MySql版本

 启动MySql

systemctl start mysqld

查看MySql状态

systemctl status mysqld

接下来是进入数据库,先查看数据库root用户的初始密码

grep "password" /var/log/mysqld.log

如果提示没有/var/log/mysqld.log或者sock之类的文件,重启服务器即可
通过以下命令进入数据库

mysql -uroot -p

//记得修改自己的账户

ALTER USER 'root'@'localhost' IDENTIFIED BY 'yjft@32Rdfff'; 

//允许root能被远程访问

grant all privileges on *.* to 'root'@'%' identified by 'yjft@32Rdfff' with grant option;

//修改成功后刷新权限

flush privileges; 

//查看端口
 

netstat -an|grep 3306

//-显示数据库

show databases; 


// -进入库  

use mysql;       

select user, host from user;

   

//重启服务

service mysqld restart

//弄完之后用Navicat测试连接,如果能连接上就是成功了,如若不能,那就可能是防火墙限制了

firewall-cmd --list-all 

//开放3306端口

firewall-cmd --permanent --add-port=3306/tcp

//重启防火墙

service firewalld restart


//加入开机启动:

systemctl enable mysqld
systemctl daemon-reload


在/etc/my.cnf中对表的名称是大小写敏感配置【注意:设置后,原有的汇报大小写表都找不到,新建表才可以】,该参数修改会导致之前大写存储的表将无法识别,需要特殊处理【想要删除,可改回lower_case_table_names=0后进行删除】。

lower_case_table_names = 1

//重启生效

service mysqld restart

//验证

show variables like 'lower_case_table_names';


//字符集修改验证

show variables like "%character%";

在/etc./my.cnf对该配置文件进行修改

character_set_server=utf8

特别提醒:

建议在Linux上安装了Mysql后,就立刻修改其字符编码以绝后患!

更改 MySQL5.7 数据目录位置

home目录下建立data目录

mkdir -p /home/mysql & cd /home/mysql/


 

mv /var/lib/mysql /home/mysql/

把MySQL服务进程停掉

mysqladmin -u root -p shutdown
Enter password:

把/var/lib/mysql整个目录移到/home/mysql

mv /var/lib/mysql /home/mysql/
//或者
cp -R /var/lib/mysql /home/mysql/  

//这样就把MySQL的数据文件移动到了/home/mysql下

 设置/home/mysql/下mysql文件夹的属主和权限

chown -R mysql:mysql /home/mysql
ls
ll
chown -R mysql:mysql /home/mysql
ll

修改配置文件/etc/my.cnf

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html

[mysql]
# 修改默认字符集
default-character-set = utf8
socket=/home/mysql/mysql/mysql.sock

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/home/mysql/mysql
socket=/home/mysql/mysql/mysql.sock

# 1 不区分大小写 0区分(默认)
lower_case_table_names = 1
character-set-server=utf8


# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

log-error=/home/mysql/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

重新启动MySQL服务

service mysqld start

 重载所有修改过的配置文件

systemctl daemon-reload

启动mysql 报错

service mysqld start
Redirecting to /bin/systemctl start mysqld.service
Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.

分析错误信息

journalctl -xe

Linux7启动MySQL失败_解决Linux-Centos7启动Mysql服务失败丢失mysql.sock问题_Eric Q的博客-CSDN博客

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值