接上篇:讲mysql的停止和卸载:
网上已经有很多的例子了,这里我就是演示一下:
1:centos7环境下:
1):停止mysql5.7.23运行,在根目录下,输入命令:service mysqld start
2):停止运行,命令是:service mysqld stop
3):重启命令:service mysqld restart
[root@localhost ~]# service mysqld start
Starting MySQL SUCCESS!
[root@localhost ~]# 2020-12-06T01:09:45.952028Z mysqld_safe A mysqld process already exists
[root@localhost ~]# service mysqld stop
Shutting down MySQL.. SUCCESS!
[root@localhost ~]# service mysqld restart
ERROR! MySQL server PID file could not be found!
Starting MySQL. SUCCESS!
[root@localhost ~]# service mysqld status
SUCCESS! MySQL running (9088)
[root@localhost ~]#
2:查看mysql的配置文件,根目录下,输入指令:cat /etc/my.cnf
[root@localhost ~]# cat /etc/my.cnf
[mysqld]
# 设置3306端口
port=65530
wait_timeout=86400
# 设置mysql的安装目录
basedir=/usr/local/mysql57/mysql-5.7.23-linux
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql57/data # 此处同上
pid-file=/usr/local/mysql57/data/mysqld.id
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
#ONLY_FULL_GROUP_BY,
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=65530
default-character-set=utf8
[root@localhost ~]#
3:卸载,删除前请先关闭数据库运行:
两种方法:
方法1:查看mysql安装,在根目录下,输入指令:rpm -qa|grep -i mysql,然后使用命令删除:rpm -ev --nodeps,因为我们用的是免安装的方式安装的,因此这个方法不适用;这个方法适合卸载tomcat和java环境,截图演示一下:
方法2:先把所有的mysql相关的目录都找出来,然后一个一个删除;
执行命令:find / -name mysql
[root@localhost ~]# find /-name mysql
find: ‘/-name’: 没有那个文件或目录
find: ‘mysql’: 没有那个文件或目录
[root@localhost ~]# find /- name mysql
find: ‘/-’: 没有那个文件或目录
find: ‘name’: 没有那个文件或目录
find: ‘mysql’: 没有那个文件或目录
[root@localhost ~]# find / -name mysql ###这个命令,上面的是错误的示范
/run/lock/subsys/mysql
/etc/selinux/targeted/active/modules/100/mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/bin/mysql
/usr/lib64/mysql
/usr/local/mysql57/mysql-5.7.23-linux/bin/mysql
/usr/local/mysql57/mysql-5.7.23-linux/include/mysql
/usr/local/mysql57/data/mysql
[root@localhost ~]#
把查找出的目录删除,命令:rm -rf 上面查出的文件夹
etc/my.cnf 如果存在的话手动删除,这样mysql就卸载完成了。
[root@localhost ~]# service mysqld stop
Shutting down MySQL.. SUCCESS!
[root@localhost ~]# rm -rf /run/lock/subsys/mysql
[root@localhost ~]# rm -rf /etc/selinux/targeted/active/modules/100/mysql
[root@localhost ~]# rm -rf /etc/selinux/targeted/active/modules/100/mysql
[root@localhost ~]# rm -rf /var/lib/mysql
[root@localhost ~]# rm -rf /usr/bin/mysql
[root@localhost ~]# rm -rf /usr/lib64/mysql
[root@localhost ~]# rm -rf /usr/local/mysql57
[root@localhost ~]# service mysqld start
/etc/init.d/mysqld: line 239: my_print_defaults: command not found
/etc/init.d/mysqld: line 259: cd: /usr/local/mysql57/mysql-5.7.23-linux: No such file or directory
Starting MySQL ERROR! Couldn't find MySQL server (/usr/local/mysql57/mysql-5.7.23-linux/bin/mysqld_safe)
[root@localhost ~]# rm -rf /etc/my.cnf
[root@localhost ~]#
重新尝试启动数据库,报错,提示无法启动mysql server信息如下:
[root@localhost ~]# service mysqld start
/etc/init.d/mysqld: line 239: my_print_defaults: command not found
/etc/init.d/mysqld: line 259: cd: /usr/local/mysql57/mysql-5.7.23-linux: No such file or directory
Starting MySQL ERROR! Couldn't find MySQL server (/usr/local/mysql57/mysql-5.7.23-linux/bin/mysqld_safe)
[root@localhost ~]#
不过我们发现一个问题,Starting MySQL ERROR! Couldn't find MySQL server (/usr/local/mysql57/mysql-5.7.23-linux/bin/mysqld_safe) 当尝试启动时,系统还是会去找/usr/local/mysql57/mysql-5.7.23-linux目录下的文件,肯定时是还有一个地方没有删除;
回想一下安装过程,在/etc/init.d下还有一个文件mysqld,需要删除:
[root@localhost ~]# service mysqld start
Redirecting to /bin/systemctl start mysqld.service
Failed to start mysqld.service: Unit not found.
[root@localhost ~]#
完成!