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

被折叠的 条评论
为什么被折叠?



