Centos7彻底卸载mysql以及通过yum安装mysql的步骤
一、彻底卸载mysql
- 查看时候有安装的mysql:
rpm -qa | grep -i mysql // 查看命令1`
yum list install mysql* // 查看命令2
2. 卸载mysql的安装包:(使用root用户删除)
yum remove mysql mysql-server mysql-libs compat-mysql51
yum remove mysql-community-release
//使用yum remove 安装包名 删除所有的安装包(建议使用第一种的查询方式之后删除)
rpm -e --nodeps mysql-community-libs-5.7.22-1.el7.x86_64
rpm -e –nodeps mysql57-community-release-el7-11.noarch
- 删除残留的mysql目录或文件:
查询mysql的安装目录
whereis mysql //方法一
find / -name mysql //方法二(使用root用户查询,否则权限不够)
此处除了opt目录下的,其余的目录都删除。
删除查询出来的目录:
rm -rf /etc/logrotate.d/mysql
rm -rf /var lib/mysql
rm -rf /usr/bin/mysql
rm -rf /usr/lib64/mysql
...
- 删除mysql配置文件:
rm –rf /usr/my.cnf
rm -rf /root/.mysql_sercret
- 删除mysql开机自动服务:
systemctl disable mysqld.server
二、安装mysql
- 下载并安装mysql的yum源:
在/opt/module/
目录下创建新的目录下载yum源以及安装yum源
mkdir mysql
cd mysql
wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm // 下载mysql yum源
rpm -ivh mysql57-community-release-el7-11.noarch.rpm // 安装yum源
- 安装mysql:
安装mysql
yum install mysql-community-server
安装mysql成功
3. 首次启动mysql:
我们需要修改/etc/my.cnf
文件,在[mysqld]后面任意一行添加skip-grant-tables
用来跳过密码验证的过程。(此处我后来将其注释掉了)
之后保存文档并退出:wq
。
之后我们启动mysql:
首次启动mysql,我们不需要使用密码。
4. 修改密码:
修改密码步骤:
use mysql;
update mysql.user set password=password('root') where user='root'; //此方法会报错
update mysql.user set authentication_string=password('root') where user='root'; //正确方法
使用此方法会报错,提示ERROR 1054 (42S22): Unknown column ‘password’ in ‘field list’,原来是mysql数据库下已经没有password这个字段了,password字段改成了
authentication_string
所以更改语句替换为update mysql.user set authentication_string=password(‘root’) where user=‘root’ ;即可
此处修改密码如果报错:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before
表示密码过于简单,所以我们需要修改mysql的密码设置(此处需要在最开始的时候设置,就是在
/etc/my.cnf
配置文件中没有添加skip-grant-tables
之前使用。)
- mysql5.6是密码为空直接进入数据库的,但是mysql5.7就需要初始密码
cat /var/log/mysqld.log | grep password
- 然后执行 mysql -uroot -p ,输入上面的到的密码进入,用该密码登录后,必须马上修改新的密码,不然会报如下错误:
mysql> use mysql; ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
3.如果你想要设置一个简单的测试密码的话,比如设置为123456,会提示这个错误,报错的意思就是你的密码不符合要求
mysql> alter user 'root'@'localhost' identified by '123456'; ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
必须修改两个全局参数:
修改validate_password_policy参数的值mysql> set global validate_password_policy=0; Query OK, 0 rows affected (0.00 sec)
修改validate_password_length(密码长度)参数,默认为8,我们修改为1
mysql> set global validate_password_length=1; Query OK, 0 rows affected (0.00 sec)
- 完成之后再次执行修改密码语句即可成功
mysql> alter user 'root'@'localhost' identified by '123456'; Query OK, 0 rows affected (0.00 sec)
- 修改mysql配置文件:
编辑my.cnf文件删掉skip-grant-tables 这一行,然后重启MySQL
systemctl start mysqld.server
否则MySQL仍能免密码登录。
- 再次登录mysql:
然后输入密码即可登录mysql数据库(先开启mysql服务systemctl start mysqld
)