阿里云centos7安装mysql,废话不多说直接撸代码:
一、安装mysql
1、下载RPM
wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
2、安装RPM包
rpm -ivh mysql80-community-release-el7-1.noarch.rpm
3、修改 MySQL 的repo源,使MySQL8.0可用
使用 vim 编辑
vi /etc/yum.repos.d/mysql-community.repo
找到 [mysql80-community] 确保 enabled=1
修改,保存并退出。
4、安装 mysql-server
yum install mysql-server
开始下载并安装 MySQL,中间会有几次询问你,一路 yes 即可,等待直到完成。
5、修改 MySQL 的访问权限
chown -R root:root /var/lib/mysql
6、重启 MySQL 服务
service mysqld restart
至此 MySQL8.0 的安装就算完成了
二、重置mysql8.0密码
1、查看自动生成的密码
安装完成后 MySQL会给我们自动生成一个随机密码
查看命令如下:
grep 'temporary password' /var/log/mysqld.log
因为自动的生成的密码无法直接使用,也不便于我们记忆,所以我们要修改密码。
2、配置文件 MySQL 免密码登录
编辑 MySQL 的配置文件
vim /etc/my.cnf
在 pid 开头的下面一行加入下面这句
skip-grant-tables
保存并退出。
3、重启 MySQL 服务
service mysqld restart
4、免密码登录到 MySQL 上
mysql -u root -p
- 提示输入密码时直接敲回车。
5、选择 mysql 数据库
use mysql;
因为 mysql 数据库中存储了一张 MySQL 用户的 user 表
6、在 mysql 数据库的 user 表中查看当前 root 用户的相关信息
select host, user, authentication_string, plugin from user;
执行完上面的命令后会显示一个表格
表格中有以下信息:
host: 允许用户登录的 ip ‘位置’ % 表示可以远程;
user: 当前数据库的用户名;
authentication_string: 用户密码(在mysql 5.7.9以后废弃了password字段和password()函数);
plugin: 密码加密方式;
7、将默认的 root 密码置空
use mysql;
update user set authentication_string='' where user='root';
8、退出 mysql命令行
quit
9、删除 /etc/my.cnf 文件最后的 skip-grant-tables
vim /etc/my.cnf
删除 skip-grant-tables 并保存退出。
10、重启 MySQL 服务
service mysqld restart
11.重新登录到 MySQL 上
mysql -u root -p
提示输入密码时直接敲回车,因为我们刚才已经将密码置为空了。
12、使用 ALTER 修改 root 用户密码
ALTER user 'root'@'localhost' IDENTIFIED BY 'Xpf123@';
其中 Xpf123@ 为你设置的新密码,注意这个密码如果设置的比较简单,例如 123456 等等,会设置不成功,它会提示你设置的密码太简单,最好设置成大写字母、数字、符号的组合。
执行完之后会提示你 OK 的话,就代表修改成功了,至此重置密码也就算是完了,你可以使用新设置的密码去登录试试。
三、远程客户端访问
因为 MySQL 安装完成后只支持 localhost 访问,我们必须设置一下才可以远程访问
1、登录MySQL
mysql -u root -p
输入您的密码
2、选择 mysql 数据库
use mysql;
因为 mysql 数据库中存储了用户信息的 user 表。
3、在 mysql 数据库的 user 表中查看当前 root 用户的相关信息
select host, user, authentication_string, plugin from user;
执行完上面的命令后会显示一个表格
查看表格中 root 用户的 host,默认应该显示的 localhost,只支持本地访问,不允许远程访问。
4、授权 root 用户的所有权限并设置远程访问
update host='%' where user='root';
5、刷新权限
所有操作后,应执行
flush privileges;
6、查看 root 用户的 host
use mysql;
select host, user, authentication_string, plugin from user;
你会发现 root 用户的 host 已经变成 %,说明我们的修改已经成功,可以远程访问了。
7、然后你测试还是不能通过,这是应为阿里云的安全防火墙给拦截了
到此就可以远程访问了