CentOS7环境对MySQL5.7的卸载及手动安装(非yum方式)
一、卸载
1、卸载mysql相关组件
查看是否已安装了mysql数据库:
[root@localhost /]# rpm -qa | grep mysql
按照显示结果,逐一卸载已安装的mysql组件。
其中的 mysql80-community-release-el7-5.noarch 是yum的一个repo源,无需删除。
[root@localhost /]# yum -y remove mysql-community-common-5.7.38-1.el7.x86_64
2、删除mysql目录及文件
查找目录列表:
[root@localhost /]# find / -name mysql
逐一删除:
[root@localhost /]# rm -rf /var/lib/mysql
3、删除mysql配置文件 :/etc/my.cnf
[root@localhost /]# rm -rf /etc/my.cnf
4、删除mysql日志文件:/var/log/mysqld.log
[root@localhost /]# rm -rf /var/log/mysqld.log
5、删除mysql用户组
[root@localhost /]# userdel mysql [root@localhost /]# groupdel mysql
二、安装(CentOS)
1、获取mysql5.7二进制文件:
官网地址:https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz
阿里镜像:https://mirrors.aliyun.com/mysql/MySQL-5.7/mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz
推荐使用镜像地址,官网地址实在是太慢了
[root@localhost /]# cd /usr/local [root@localhost local]# wget https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz [root@localhost local]# tar -zxvf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz [root@localhost local]# mv mysql-5.7.37-linux-glibc2.12-x86_64 mysql
2、添加用户和组:
[root@localhost local]# groupadd mysql [root@localhost local]# useradd -r -g mysql -s /bin/false mysql
确认创建的用户和组信息:
[root@localhost local]# cat /etc/group | grep mysql [root@localhost local]# cat /etc/passwd | grep mysql
3、创建数据目录:data
[root@localhost local]# cd mysql [root@localhost mysql]# mkdir data
4、修改目录权限
[root@localhost mysql]# chown -R mysql:mysql ./
5、初始化安装mysql数据库
[root@localhost mysql]# ./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
如果执行上面的初始化命令时出错,就先安装依赖后再进行初始化:
# Redhat yum install -y libaio # Debian #apt install -y libaio1
注意图中红框里的字符串,这是默认的root密码,需要粘贴到安全位置暂时保存起来,过会要用到。
6、初始化 /etc/my.cnf
可根据实际情况自定义配置。
7、创建 mysql 的运行控制脚本(service)
[root@localhost mysql]# cp ./support-files/mysql.server /etc/init.d/mysqld [root@localhost mysql]# vi /etc/init.d/mysqld
将其中的 basedir 和 datadir 修改为实际路径
8、设置开机启动
[root@localhost mysql]# chkconfig --add mysqld
9、配置环境变量
[root@localhost mysql]# vi /etc/profile
在末尾添加:
export PATH=$PATH:/usr/local/mysql/bin
立即生效:
[root@localhost mysql]# source /etc/profile
10、启动 mysql
[root@localhost mysql]# service mysqld start
11、登录 mysql
[root@localhost mysql]# mysql -uroot -p
将之前保存的root初始化密码粘贴进来,即可登录。
12、修改root密码
mysql > alter user 'root'@'localhost' identified by '123456'; mysql > flush privileges;
13、配置 root 允许远程登录
mysql > use mysql; mysql > update user set user.Host='%' where user.User='root'; mysql > flush privileges;
14、mysql的停止、重启、查看运行状态
[root@localhost mysql]# service mysqld stop [root@localhost mysql]# service mysqld restart [root@localhost mysql]# service mysqld status
三、在Ubuntu中的安装差异
创建 mysql 的运行控制脚本(service)
vi /etc/systemd/system/mysqld.service
初始化以下内容:
[Unit] Description=MySQL 5.7 Community Server After=syslog.target network.target [Install] WantedBy=multi-user.target [Service] User=mysql Group=mysql #Type=forking ExecStart=/home/my/tools/mysql57/bin/mysqld --user=mysql --datadir=/home/my/tools/mysql57/data ExecReload=/bin/kill -HUP $MAINPID ExecStop=/bin/kill -TERM $MAINPID Restart=on-failure RestartSec=5 PrivateTmp=true
注意其中的 ExecStart 和 datadir 要替换成实际路径!
然后执行下面的命令刷新服务:
systemctl daemon-reload
之后就可以通过 systemctl 正常操作mysql的启动和停止了:
# 查看mysql服务状态 systemctl status mysqld # 启动服务 systemctl start mysqld #停止服务 systemctl stop mysqld
四、/etc/my.cnf示例
[mysqld] #bind-address=127.0.0.1 #port=3306 socket=/home/my/tools/mysql57/mysqld.sock datadir=/home/my/tools/mysql57/data character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci default-storage-engine=InnoDB log-error=/home/my/tools/mysql57/error.log lc-messages-dir=/home/my/tools/mysql57/share explicit_defaults_for_timestamp=1 secure-file-priv=/home/my/tools/mysql57/dataio [client] default-character-set=utf8mb4 socket=/home/my/tools/mysql57/mysqld.sock
版权声明: 本文为博主 网无忌 原创文章,欢迎转载,但请务必标注原文链接。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
2021-06-26 JavaScript中子函数访问外部变量的方法