我在购买了一台装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