Centos(Linux)安装/重装MySQL8.0及设置允许远程连接
centos7下重装MYSQL
前言:由于我在腾讯云上的MySQL被黑客黑了(直接开放了服务器所有端口,而且MySQL允许任何IP远程连接),所以不得不重装一波MySQL
附被黑客黑的图:
(还好只是自己玩的站,数据也不是很多。。)
卸载原有MySQL
- 如果还没有安装MySQL的服务器可以直接跳过这一步
- 执行 yum remove mysql mysql-server mysql-libs mysql-server
- 执行 rm -rf /var/lib/mysql
- 执行 rpm -qa | grep mysql
- 将第三步找出来的RPM包,执行 yum remove 包名进行卸载
全部完成之后,你就彻底卸载了MySQL啦
安装新版MySQL
- 选择自己需要安装的版本,我们可以在mysql官方包网址选择我们需要的包,本次我选择的是(mysql80-community-release-el7-2.noarch.rpm)
- 执行 wget http://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
- 下载完成后,执行 yum localinstall mysql80-community-release-el7-2.noarch.rpm来安装下载的包
- 执行 sudo yum install mysql-server安装MySQL服务
- 接下来就是等待下载完成,中途需要输下y
- 安装完成后执行mysql可能会出现 ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2) 这样的错误,这是由于文件权限导致的,我们执行 sudo chown -R root:root /var/lib/mysql来解决 (权限改为当前用户)
需要注意的是
,MySQL8.0的初始密码和传统不一样了,需要执行grep ‘temporary password’ /var/log/mysqld.log来查看root用户的初始密码
建议立即修改初始密码
执行ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘your-password’ 来修改密码
其他
允许用户远程连接MySQL
- 考虑到使用navicat等工具比较方便,所以还是开放远程连接
- 连接MySQL,执行 use mysql
- 执行 select host,user from user
- 执行 create user ‘root’@‘你需要的IP’ identified by ‘你的密码’ 来添加白名单,最好IP别直接加’%’,我就是血的教训
- 执行 grant all on *.* to ‘root’@‘你的IP’; 来进行授权 ,*.*代表所有库的所有表权限
- 别忘了执行 flush privileges来刷新权限
体验新版MySQL的特性吧