阿里云ubuntu安装mysql 和外网访问踩坑

1. 如果已经现在安装,需要完全删除,我使用的包管理器安装,删除命令如下
 删除mysql的数据文件
    sudo rm /var/lib/mysql/ -R
    
    删除mysql的配置文件
    sudo rm /etc/mysql/ -R
    (这两步非常重要,百度上很多文章都没有,如果是改完了密码还好,没改重装依然是系统自定账号密码)
    
    自动卸载mysql(包括server和client)
    sudo apt-get autoremove mysql* --purge
    sudo apt-get remove apparmor
    (有时候自动卸载并没有卸载完成,我的有一次就就卸载失败了,建议执行两次)
    
    然后在终端中查看MySQL的依赖项:dpkg --list|grep mysql
    (这一步即使没有显示也要进行下面的删除)
    
    卸载: sudo apt-get remove dbconfig-mysql
    卸载:sudo apt-get remove mysql-client
    卸载:sudo apt-get remove mysql-client-5.7
    卸载:sudo apt-get remove mysql-client-core-5.7
    再次执行自动卸载:sudo apt-get autoremove mysql* --purge
    
    查看MySQL的剩余依赖项:dpkg --list|grep mysql
    (这一步即使没有显示也要进行下面的删除)
    
    卸载:sudo apt-get remove php7.0-mysql
    
    清除残留数据:dpkg -l|grep ^rc|awk ‘{print$2}’|sudo xargs dpkg -P
    
    再次查看MySQL的剩余依赖项:dpkg --list|grep mysql
    
    至此已经没有了MySQL的依赖项,彻底删除!
    
2. 重新安装
   
 安装:
   sudo apt-get --purge remove mysql-server mysql-common mysql-client
   sudo apt-get install mysql-server mysql-common mysql-client
   启动一下试试
   sudo /etc/init.d/mysql restart
   重启
   service mysql restart
   本地使用mysql 进行尝试
3. mysql 的一些配置
修改root 账号的密码
   alter user'root'@'localhost' identified by 'newpassword';
   newpassword 就是要修改的密码
   
4. 配置安全组规则
  
   阿里云为了用户考虑,必须得配置安全组规则,配置很简单,入方向,打开默认的数据库 3306端口就行
  
5. 链接
   ```
   这个时候,数据库正常启动的话,是可以进行链接的,使用数据库链接工具进行链接
   使用ssh 加数据库的账户名密码(地址写 127.0.0.1)
   ```
6. 问题
   ```
   为什么上面只能使用ssh 链接?
   因为直接使用ip 端口 账户密码不能链接
   本地尝试 telnet ip 3306
   发现访问拒绝
   ```
7. 排查
   ```
   可能会造成的这个的原因汇总
   1. 检查mysql是否启动
   2. 检查防火墙开启
   3. 检查本机3306端口是否处于监听状态
   4. 检查阿里云控制台是否开启了安全限制
   5. 检查mysql用户能否在远程进行登录
   6. mysql 的 bind-address 设置为 127.0.0.1
   ```
8. 逐个排查和解决
   ```
      1. 第1,3,4 三个可以排除,因为刚安装的可以访问,安全组也进行配置了,可以简单验证一下
   查看mysql端口号 mysql> SHOW GLOBAL VARIABLES LIKE 'PORT'; telent 3306 断口拒绝,不只是网络问题

      查看服务 ps -ef | grep mysql 
      查看3306 端口 netstat -tlanp | grep 3306 
      安全组直接配置就行
      2. 查看防火墙
      查看已经开放的端口:
      firewall-cmd --list-ports
      开启端口3306
      firewall-cmd --zone=public --add-port=3306/tcp --permanent
      重启防火墙
      firewall-cmd --reload
   这个我的是已经打开了这个的,也排除
      3.  检查mysql用户能否在远程进行登录
      这个是查看mysql 中user表的host ,如果是localhost 直接改成 % 
         再次尝试,依然是不行,那就只有最后一个了
      4. 要找到bind-address的设置, 需要找到mysql的配置文件
   $ sudo find / -name my.cnf
   
   这个时候就能看到所有的配置相关的文件, 我看到的文件中有这么一段描述
   
   ‘’’
   The MariaDB/MySQL tools read configuration files in the following order:
   
   “/etc/mysql/mariadb.cnf” (this file) to set global defaults,
   “/etc/mysql/conf.d/.cnf" to set global options.
   "/etc/mysql/mariadb.conf.d/.cnf” to set MariaDB-only options.
   “~/.my.cnf” to set user-specific options.
   ‘’’
   大意是根据根据 1,2,3,4的优先级来判断,那么就根据这4个文件寻找一下,
   最后在 vi /etc/mysql/mariadb.conf.d/50-server.cnf 这个文件中找到了 bind-address 127.0.0.1 修改之后, 就完成了
      
   ```
9. 总结
   折腾了一天,参考了很多的博客,也记录一下,给以后出现这样问题的提供一个思路。
   参考blog
https://blog.csdn.net/weixin_45525272/article/details/107774348
https://blog.csdn.net/qq_29247839/article/details/110071112
https://blog.csdn.net/CSDNLiuMing/article/details/90236877
https://www.cnblogs.com/ziroro/p/9479869.html
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值