Centos完全卸载Mysql及重新安装
1. 查看mysql安装了哪些东西
[root@localhost ~]# rpm -qa |grep -i mysql
mysql-community-common-5.7.20-1.el7.x86_64
mysql-community-client-5.7.20-1.el7.x86_64
mysql57-community-release-el7-11.noarch
mysql-community-libs-5.7.20-1.el7.x86_64
mysql-community-server-5.7.20-1.el7.x86_64
2. 开始卸载
[root@localhost ~]# yum remove mysql-community-common-5.7.20-1.el7.x86_64
[root@localhost ~]# yum remove mysql-community-client-5.7.20-1.el7.x86_64
[root@localhost ~]# yum remove mysql57-community-release-el7-11.noarch
[root@localhost ~]# yum remove mysql-community-libs-5.7.20-1.el7.x86_64
[root@localhost ~]# yum removemysql-community-server-5.7.20-1.el7.x86_64
3. 查看是否卸载完成
4. 查找mysql相关目录
[root@localhost ~]# find / -name mysql
/etc/selinux/targeted/active/modules/100/mysql
/usr/lib64/mysql
/usr/share/mysql
5. 删除相关目录
[root@localhost ~]# rm -rf /etc/selinux/targeted/active/modules/100/mysql
[root@localhost ~]# rm -rf /usr/lib64/mysql
[root@localhost ~]# rm -rf /usr/share/mysql
6. 删除mysqld的配置文件/etc/my.cnf
[root@localhost ~]# rm -rf /etc/my.cnf
7. 删除日志文件mysqld.log
注意: 如果不删除这个文件,会导致新安装的mysql无法生存新密码,导致无法登陆
[root@localhost ~]# rm -rf /var/log/mysqld.log
8. 重新安装mysql
# 推荐国内使用阿里源镜像速度很快 (使用官方链接下载速度很慢)
一. 设置阿里云的源
1. 下载wget
[root@localhost ~]# yum install wget -y
2. echo 备份当前的yum源
[root@localhost ~]# mv /etc/yum.repos.d /etc/yum.repos.d.backup4comex
3. echo 新建空的yum源设置目录
[root@localhost ~]# mkdir /etc/yum.repos.d
4. echo 下载阿里云的yum源配置(根据系统版本,修改CentOS-后面的数值)
[root@localhost ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
5. 重建缓存
[root@localhost ~]# yum clean all
[root@localhost ~]# yum makecache
二. 安装MySQL
1. 下载mysql的repo源
[root@localhost ~]# wget https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm
2. 安装mysql-community-release-el7-5.noarch.rpm包
[root@localhost ~]# sudo rpm -ivh mysql-community-release-el7-11.noarch.rpm
'''
安装这个包后,会获得两个mysql的yum repo源
/etc/yum.repos.d/mysql-community.repo
/etc/yum.repos.d/mysql-community-source.repo
'''
3. 安装mysql
[root@localhost ~]# yum install mysql-server
[root@localhost ~]# yum install mysql-devel
[root@localhost ~]# yum install mysql
# 查看安装成功的mysql相关资源
[root@localhost ~]# rpm -qa | grep -i mysql
'''
根据提示安装就可以了,不过安装完成后没有密码,需要重置密码
如果此时提示关于 mariadb的错误,则是因为系统中装了mariadb我们需要卸载掉mariadb
查看系统是否安装mariadb
'''
[root@localhost ~]# rpm -qa | grep mariadb
# 如果显示有安装的信息,则卸载
[root@localhost ~]# rpm -ev 此处填写上一步里面的列表 --nodeps
# 完成后再次执行
[root@localhost ~]# yum install mysql-server
4. 服务开关操作(执行其中之一就可以)
[root@localhost ~]# service mysqld status 查看mysql当前的状态
[root@localhost ~]# systemctl status mysqld
[root@localhost ~]# service mysqld stop 停止mysql
[root@localhost ~]# systemctl stop mysqld
[root@localhost ~]# service mysqld restart 重启mysql
[root@localhost ~]# systemctl restart mysqld
[root@localhost ~]# service mysqld start 启动mysql
[root@localhost ~]# systemctl start mysqld
5. 设置MySQL开机启动
[root@localhost ~]# systemctl enable mysqld
6. 启动MySQL服务进程
[root@localhost ~]# systemctl start mysqld
或者
[root@localhost ~]# service mysqld start
9. 无法登录问题解决
1. 添加 skip-grant-tables
a. 在/etc/my.cnf文件中添加 skip-grant-tables 保存退出
b. 然后直接输入mysql,不需要带任何登录参数直接回车就可以登陆上数据库
注意:skip-grant-tables放到了文件最后
skip-grant-tables的作用就是跳过了mysql的用户验证
2.重启mysql
[root@localhost ~]# service mysqld restart
# 重启之后我们直接输入mysql即可进入mysql数据库,因为我们已经跳过了mysql数据库的用户验证
[root@localhost ~]# mysql -uroot
# 进入数据库之后执行下面的命令
mysql> use mysql;
mysql> show tables;
mysql> select user,authentication_string from user;
mysql> update mysql.user set password=password('your password') where user='root';
mysql> flush privileges;
mysql> exit
3. 恢复/etc/my.cnf文件
恢复/etc/my.cnf,将skip-grant-tables删除或者注释掉
4. 重启mysql,service mysqld restart
到此为止我们就解决了mysql安装之后登录不知道密码的问题
10. 重置密码
# 重置密码问题
安装完mysql之后,登陆以后,不管运行任何命令,总是提示这个错误:
You must reset your password using ALTER USER statement before executing this statement
# 解决办法
mysql> SET PASSWORD = PASSWORD('your new password');
mysql> ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
mysql> flush privileges;
# 注意
这里要注意的是your new password 必须包含数字,字母包含大小写,标点符号。不然是不能通过的
完成以上三步退出再登,使用新设置的密码就行了,以上除了 your new password 需要修改成新密码外,其他原样输入即可
11. 解决远程客户端无法连接MySQL数据库
1. 创建新的安全组规则,对外开放3306端口访问授权
2. 在本机登入mysql后
更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称'%'
# 以权限用户root登录
mysql> mysql -uroot -p
# 选择mysql库
mysql> use mysql;
# 查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称)
mysql> select host,user from user;
# 修改host值(以通配符%的内容增加主机/IP地址),当然也可以直接增加IP地址
mysql> update user set host = '%' where user ='root';
# 刷新MySQL的系统权限相关表
mysql> flush privileges;
重新查看user表
mysql> select host,user from user;
3. 重起mysql服务即可完成
[root@localhost ~]# service mysqld restart