1、首先需要安装repo源
CentOS 7的yum源中默认是没有mysql的,所以,为了解决这个问题我们首先下载安装mysql的repo源。
依次执行以下命令:
# wget http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm
# rpm -ivh mysql57-community-release-el7-7.noarch.rpm
安装之后会获得/etc/yum.repos.d/mysql-community.repo和/etc/yum.repos.d/mysql-community-source.repo两个源,可以去相应的路径下查看一下。
2、第二步才是正式的安装MySQL
依次执行以下命令:
# yum install mysql-server
# yum install mysql-devel
# yum install mysql
3、检查安装的MySQL
输入命令:
# rpm -qa|grep -i mysql
会查看到安装的软件,如下:
4、查看MySQL的常用命令:
# service mysqld status 查看mysql当前的状态
# service mysqld stop 停止mysql
# service mysqld restart 重启mysql
# service mysqld start 启动mysql
5、设置MySQL的登陆密码
(1)在/etc/my.cnf文件中添加skip-grant-tables 作用:添加该语句的作用是可以让我们在服务器上登录MySQL是免密码登录。
(2)添加完成需要重启MySQL服务:命令:service mysqld restart
(3)登陆MySQL ,# mysql -u root
(4)登陆进MySQL,依次执行如下命令:
mysql>use mysql;
mysql>update mysql.user set authentication_string=password('密码') where user='root'; 更新密码
mysql>flush privileges; 刷新权限
mysql>exit; 退出
(5)当修改完密码需要将第一步免密登陆注释掉或者删除;即在/etc/my.cnf文件中注释或者删除skip-grant-tables。
6、远程连接服务器上的MySQL
(1)
查看mysql监听IP和端口是否正常。
使用命令:netstat -anpt
监听得地址如果是:::3306或者是0.0.0.0:3306,表示监听所有IP地址,这监听状态是正常。若出现127.0.0.0:3306,说明监听的本地地址,需要在mysql配置文件中将bind-address选项设置为bind-address = 0.0.0.0,重启mysql。
(2)查看MySQL远程访问的权限是否正确
本地远程连接服务器,进入到MySQL中,输入命令:
SELECT user, host from mysql.user; //查看当前用户的权限
%表示允许所有机器访问,若host为127.0.0.1/localhost,那么这个用户就只能本机访问,则需要将host改为%,执行语句为:
update user set host='%' where user='root';
执行操作完毕记得刷新权限并退出后重启MySQL
(3)最后记得在自己的阿里云账户上
控制台-安全组-配置规则;添加3306入口规则。
(4)若以上操作还不能正常连接则
使用tcpdump在服务器端抓一下3306端口,看是否有数据包,排查以下网络原因。
在服务上输入抓包命令:tcpdump port 3306
然后远程连接mysql数据库,看一下服务端是否有数据包。
注意:
若以上操作都正确,但是在连接时报1862错误提示密码过期,则需要重新修改密码,如若已经修改过密码还是报1862错误,则需要:
把password_expired 改成不过期,今日MySQL,执行一项语句:
> update user set password_expired='N' where user='root';
> flush privileges;
> quit
此时,载次远程连接输入密码就正常了。