CentOS7 卸载与安装mysql,开远程访问权限

接了个任务,在公司的服务器上安装mysql,并允许远程登录。在这里做一下记录,以便后续使用。

首先查看当前机器上是否有安装mysql,在命令行中输入:mysql --version,如果有显示在这里插入图片描述
则代表当前安装的是 mysql5.6.44 的版本。

注意,如果是8.0以后的版本,远程权限设置略有不同

一、卸载

1、卸载掉安装的部分

首先执行查看命令,看一下已经安装的:

[root@localhost ~]# rpm -qa |grep -i mysql

在这里插入图片描述

2、执行卸载命令

[root@localhost ~]# yum remove mysql-community mysql-community-server mysql-community-libs mysql-community-common mysql-community-client mysql-community-release

再进行一遍检查:rpm -qa |grep -i mysql,确定安装部分已完全卸载掉。

3、清理剩余文件

3.1 查看mysql文件目录:
[root@localhost ~]# find / -name mysql

在这里插入图片描述
将这些文件全部删除。

3.2 删除掉安装日志文件:
[root@localhost ~]# rm -f /var/log/mysqld.log

否则下次你会找不到安装密码的。

3.3 删除历史记录:
[root@localhost ~]# rm -rf /var/lib/mysql 

这一条极其重要,如果你安装后发现在/var/log/mysqld.log没有密码的话,就执行这一句吧!然后重启mysql(systemctl restart mysqld)

二、安装

由于最新版本的linux系统开始,默认的是Mariadb,而不是mysql,所以需要先去mysql的官方库里下载mysql的repo源,然后再执行安装操作。

1、下载mysql的repo源,并安装

下载mysql的repo源
[root@localhost ~]# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

再执行安装命令
[root@localhost ~]# rpm -ivh mysql-community-release-el7-5.noarch.rpm

2、安装mysql

[root@localhost ~]# yum install mysql-server
根据步骤安装就可以了,不过安装完成后,没有密码,需要重置密码。安装后再次查看mysql

3、登录

[root@localhost ~]# mysql -u root
首次登录时会报出错误,原因是/var/lib/mysql的访问权限问题。下面的命令把/var/lib/mysql的拥有者改为root用户:
[root@localhost ~]# chown root /var/lib/mysql
再次执行登录数据库命令:mysql -u root 即可登入数据库。

小技巧:
MySQL5.7加强了root用户的安全性,因此在第一次安装后会初始化一个随机密码,以下为查看初始随机密码的方式
命令: grep ‘temporary password’ /var/log/mysqld.log


如果这一步不行的话,可参考 https://www.cnblogs.com/kynewu/p/8995749.html ,使用skip-grant-tables 修改密码

4、修改安装时的默认随机密码

在第3步登入数据库的前提下

mysql> use mysql; 
mysql> update user set password=password('yourpassword') where user='root' and host='localhost'; 
mysql> flush privileges; 

即可将密码修改为yourpassword

也可以使用mysqladmin
格式:mysqladmin -u用户名 -p旧密码 password 新密码
例子:mysqladmin -uroot -p123456 password 123

5、设置mysql允许远程连接

基于安全考虑root账户一般只能本地访问,没有远程访问的权限的,因此当程序跟数据库不在同一台服务器上时,我们需要开启mysql的远程访问权限。下面是 5.0版本的 基本的步骤 如果是8.0版本的请看5.3

5.1、登录到mysql中,为root进行远程访问的授权,执行下面的命令:
 mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";

如果是需要授权给某个ip,则只需要将命令中的%换成对应的ip地址即可,如:
GRANT ALL PRIVILEGES ON . TO root@“172.168.2.135” IDENTIFIED BY “root”;
最后的 “root” 代表你给这些地址分配的远程登录密码。

5.2、重新加载权限

因为MySQL把权限都放在了cache中,所以在做完更改后需要重新加载。

mysql> flush privileges;
5.3 mysql 8.0版本以后的
CREATE USER 'root'@'%' IDENTIFIED BY 'yourpassword';  -- 创建用户
GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION;  -- 授权
flush privileges; -- 刷新权限

创建一个root用户,密码是yourpassword

以上。

猜你喜欢

转载自blog.csdn.net/u012140251/article/details/91491445