记录一下自己在阿里云安装mysql的过程和中间踩的一些坑
一、卸载之前版本的mysql
1.通过以下命令行,可以查看到之前安装的版本
rpm -qa | grep mysql
如果列表有内容,就表示之前安装过,需要进行删除,如果列表没内容,可以跳过卸载部分
2.删除之前安装的mysql
先停止之前的mysql服务service mysqld stop
使用命令行rpm -ev 包名
,删除上面列表中的包文件
rpm -ev mysql-community-client-plugins-8.0.22-1.el7.x86_64
如果提示依赖包错误,则使用以下命令尝试
rpm -ev mysql-community-client-plugins-8.0.22-1.el7.x86_64 --nodeps
如果提示错误:error: %preun(xxxxxx) scriptlet failed, exit status 1
则用以下命令尝试
rpm -ev --noscripts mysql-community-client-plugins-8.0.22-1.el7.x86_64
3.查找之前mysql的目录,并且删除文件和库
find / -name mysql
使用 rm -rf 文件名
命令行,删除之前的文件,如 rm -rf /var/spool/mail/mysql
注意:卸载后/etc/my.cnf不会删除,需要进行手工删除
rm -rf /etc/my.cnf
重复第一步,rpm -qa | grep mysql
再次查找机器是否安装mysql,如果没有结果,说明意见删除完成
二、安装mysql
1.创建安装目录
使用命令行,创建一个mysql的安装路径,根据个人习惯,一般会在 /usr/service 目录下
mkdir /usr/service/mysql
创建目录后,命令行进入指定文件夹
cd /usr/service/mysql
2.查找mysql链接
进入mysql官网下载地址,点击 MySQL Yum Repository,找到对应系统的版本,点击download,跳转页面后,找到No thanks, just start my download.,右键弹窗中,有个复制连接地址,这样就可以获取到mysql的yum安装地址。
3.下载安装mysql
1.下载
cd进入之前的安装目录,找到下载链接后,使用命令行下载mysql
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
2.安装
下载完成后,输入命令行 yum localinstall my
后可以按 tab 键即可自动补全,补全的就是刚刚下载的mysql包名,这两个文件名要一致。
yum localinstall mysql80-community-release-el7-3.noarch.rpm
安装过程中,会有一个输入询问,直接输入y就可以。安装过程等待一会儿,进度条走完后,命令行输入
yum install mysql-community-server
安装过程中,会再次出现一个输入询问,直接输入y就可以。出现以下截图样式,表示全部安装完成。
3.基本操作命令
启动
service mysqld start
停止service mysqld stop
重启service mysqld restart
查看状态service mysqld status
通过以上命令行,就可以操作MySQL,进行启停等操作
三、重置密码
- 开启免密码登陆 修改my.cnf文件 。命令行输入
vim /etc/my.cnf
,查看my.cnf文件,在mysqld模块下面添加:skip-grant-tables
保存退出。
2.重启服务器,让配置生效。service mysqld restart
3.登录mysql,命令行输入mysql -u root -p
,命令行会让输入密码,这里不输入,直接敲回车,就可以
4.修改全局设置,降低密码要求等级
mysql8.0以上版本修改密码方式与以前版本不同,密码格式要求至少包含了数字、字母及特殊字符三种,如果想跟以前一样设置常规密码,需要降低密码等级,如果计划设置复制密码,就可以跳过这一步。
查看8.0版本的变量名 SHOW VARIABLES LIKE 'validate_password%';
使用以下命令进行配置修改
set global validate_password.policy=0;
set global validate_password.length=1;
再次输入SHOW VARIABLES LIKE 'validate_password%';
会发现等级已经降低
5.修改密码
依次输入以下命令行,就可以修改密码,注意语句后面都要带;号
使用数据库
use mysql;
置空之前的密码update user set authentication_string='' where user='root';
刷新权限表flush privileges;
查看用户及hostselect user,host from user;
修改root 密码ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root@123';
退出mysql exit;
6.关闭免密登录
到这里,mysql修改密码已经完成,因为之前开启了免密登录,这时需要关闭此设置
命令行输入vim /etc/my.cnf
,查看my.cnf文件,删除之前添加的skip-grant-tables
保存退出。重启mysql。再次登录,这时就必须要输入密码了,输入之前设置的密码,就可以登录mysql。
四、允许远程访问
1.服务器放开3306端口
登录阿里云,找到ECS服务器,找到安全组,在安全组配置中,添加端口放行规则,端口范围:3306/3306,授权对象:0.0.0.0/0,其他默认就行
2.授权远程访问
放行端口后,使用navicat连接数据库报错:1130-host ... is not allowed to connect to this MySql server。这个报错,需要服务器运行mysql远程访问。
1.连接mysql
使用命令行 mysql -u root -p
连接mysql,输入之前设置的密码,就可以进入mysql
2.查看当前所有数据库:show databases;
3.进入mysql数据库:use mysql;
4.查看mysql数据库中所有的表: show tables;
5.修改user表中的Host。update user set Host='%' where User='root';
6.刷新权限表 flush privileges;
7.退出 exit;
这个时候使用navicat连接数据库就没问题了
注意 如果设置运行外网访问(执行update user set Host='%' where User='root';)后,重置或者修改密码时,需要将
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root@123';
要替换成ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root@123';
。如果需要查看'root'@'后面具体用什么,可以进入mysql数据库,之后use mysql;
使用,输入命令行select user,host from user;
来查看