阿里云centos自带mysql那些事

我在购买了一台装centos系统的阿里云服务器,发现上面已经为我安装好了MySql数据库。

1.阿里云centOS自带mysql装在哪?

一开始你可能没发现,如何发现呢?如下指令:

rpm -qa |grep mysql

结果如下:
[root@iZ2zee5k72y8t2ep1of2pfZ ~]# rpm -qa |grep mysql
mysql-libs-5.1.73-7.el6.x86_64
[root@iZ2zee5k72y8t2ep1of2pfZ ~]#

可见,系统已经有了,如果没有结果说明没装,如果装了,那么如何找到其目录呢?

这样这样做:

# find / -name mysql

得到结果如下:
/usr/local/mysql
/usr/local/mysql/include/mysql
/usr/local/mysql/bin/mysql
/usr/share/mysql
/usr/lib64/mysql
/data/mysql
/data/mysql/mysql
/var/lock/subsys/mysql
/var/spool/mail/mysql

可见,阿里云服务器中将mysql装再来/usr/local目录下。

2.阿里云centOS自带mysql等不进去,怎么办?

说道这个有点坑,在mysql5.6之后的版本将在第一次运行mysql是产生一个随机密码。文件名.mysql_secret中。通常在/root/.mysql_secret 下
可参考这篇文章
http://blog.csdn.net/it_faquir/article/details/50850302

可是你会发现并没有,那么好吧,试试看,用户名:root, 密码:空密码、root、admin、123546,都不行,怎么登都进去,那怎么办?
那只能暴力点了。如下方法
首先移动到根目录

cd /etc

然后用vi打开配置文件

vi my.cnf

使用hjkl(左 下 上 右)移动光标
找到[mysqld]的段,使光标停留在段中任意处
按下o(进入插入模式并从新的一行开始输入)
使用键盘输入

skip-grant-tables

按下键盘的冒号“:”(返回底行模式),并输入wq(表示保存并退出)按回车。
关于vi命令更多指令请百度,这里只写了用到的,请严格操作不要按错
重启mysql,在终端输入

service mysqld restart

重启后配置生效,就在也不用密码了,相对于越过了认证,登录用户

mysql -u root -p

遇到密码直接按回车
登录后在mysql界面下,继续如下语句,进行密码修改

use mysql
update user set password=password("123") where user="root";

最后保存更改

flush privileges;(刷新权限)

exit;

再次用vi打开配置文件

vi my.cnf

将之前的skip-grant-tables删除即可。
“:wq”保存

最后再重启下

service mysqld restart

OK,搞定,可以登录了。

3.远程连接阿里云centOS自带mysql

直接在上面操作,发现太难用了,你可能想用可视化工具,那怎么办呢?远程连接呗。试试
你发现连了半天,就是连不上。
通常报这个错误
C:\Users\Administrator>mysql -uroot -h106.211.216.191 -p
Enter password: ***

ERROR 2003 (HY000): Can’t connect to MySQL server on ‘106.211.216.191’ (10060)

检查下什么原因

1.检查连接的远程ip及端口是否正确,以及用户名和密码的正确性。

2.检查root账户是否限定了连接的ip地址

如下操作:
登陆Mysql数据库后,接着如下指令:

use mysql
select user,host from user; 

得到结果:
+——+———–+
| user | host |
+——+———–+
| root | % |
| root | 127.0.0.1 |
+——+———–+
2 rows in set (0.00 sec)

发现root 对应的host其中一个为%,说明没问题,也就是说所有的外网都可以通过root这账户进行登录。
如果不是%,可进行如下设置:

mysql>update user set host = '%' where user ='root'; 

mysql>flush privileges; 

成功后,再次执行select语句,可以看到root的host变成%了。说明这一步OK了。

3.如果还不行,检查网关。

默认情况下阿里云的centos防火墙不允许3306这个端口。
设置防火墙允许3306端口

vi /etc/sysconfig/iptables

向里面添加

-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

(注意添加在-A RH-Firewall-1-INPUT -j REJECT –reject-with icmp-host-prohibited之前,否则可能导致规则不生效)

wq保存退出后。

重启防火墙service iptables restart

ok,再试试。
会出现两个情况,1.成功了;2.失败了。

失败了怎么办,这样是坑。继续往下看。

4.检查阿里云服务器的安全组

进入阿里云服务器的后台管理界面。

选择云服务器ECS——》网络和安全——》安全组
这里写图片描述

打开后找到你对应的服务器,如下实例
这里写图片描述

点击 配置规则

进入后,可以看到多个端口,即这些端口外网都是可以进行远程访问的端口。看看是否有3306这个端口
这里写图片描述

如果没有需要添加安全规则,右上角有个按钮。
进行相应操作即可。如下添加mysql的示例:
这里写图片描述
点击保存即可。

好了这时再试试是否可已连上。如果还不行,你另找办法吧。

可参考如下链接:
https://yq.aliyun.com/articles/43344

猜你喜欢

转载自blog.csdn.net/it_faquir/article/details/75195118